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>