PHP $_POST error Пожалуйста, помогите мне, я изучаю PHP

Я учу PHP. Вот исходный код.

<?php
$text = $_POST['text'];

echo $text;
?>

<form action="index.php" method="post">
<input type="text" name="text" />
    <input type="submit">
</form>

Вот результат. Я не знаю, где проблема.

Примечание: неопределенный индекс: текст в C:\xampp\htdocs\faisal\index.php в строке 2

5 ответов

Решение

Это означает, что нет ничего в $_POST['text'] - и не будет до тех пор, пока форма не будет отправлена. Вам нужно использовать isset() Проверять:

<?php
if(isset($_POST['text'])) {
    $text = $_POST['text'];

    echo $text;
}
?>

<form action="index.php" method="post">
<input type="text" name="text" />
    <input type="submit">
</form>

Когда вы впервые заходите на страницу, ваша специальная переменная "$_POST" пуста, поэтому вы получаете ошибку. Вам нужно проверить, есть ли что-нибудь там.

<?php
$text = '';
if(isset($_POST['text']))
{
  $text = $_POST['text'];
}

echo 'The value of text is: '. $text;
?>

<form action="index.php" method="post">
  <input type="text" name="text" />
  <input type="submit">
</form>

$_POST['text'] Заполняется только при отправке формы. Поэтому, когда страница загружается впервые, она не существует, и вы получаете эту ошибку. Чтобы компенсировать это, вам нужно проверить, что форма отправлена, прежде чем выполнять оставшуюся часть вашего PHP:

<?php
if ('POST' === $_SERVER['REQUEST_METHOD']) {
  $text = $_POST['text'];

  echo $text;
}
?>

<form action="index.php" method="post">
<input type="text" name="text" />
    <input type="submit">
</form>

Вы, вероятно, должны определить, была ли отправлена ​​форма или нет.

<?php
if (isset($_POST['text'])) {
    $text = $_POST['text'];
    echo $text;
}
?>

<form action="index.php" method="post">
<input type="text" name="text" />
    <input type="submit">
</form>

Альтернативно вы можете использовать $_SERVER['REQUEST_METHOD'],

if ($_SERVER['REQUEST_METHOD'] == 'POST') {...

Мы должны проверить, нажал ли пользователь на кнопку отправки или нет, если да, тогда мы должны установить переменную $test. Если мы не будем использовать метод isset(), мы всегда получим ошибку.

<?php
if(isset($_POST['submit']))
{
  $text = $_POST['text'];
  echo $text;
}
?>

<form action="index.php" method="post">
<input type="text" name="text" />
    <input type="submit" name="submit" value="submit">
</form>
Другие вопросы по тегам