1

我正在学习 PHP。这是源代码。

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

echo $text;
?>

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

这是结果。我不知道问题出在哪里。

注意:未定义的索引:第 2 行 C:\xampp\htdocs\faisal\index.php 中的文本

4

5 回答 5

4

这意味着在提交表单之前没有任何内容-而且$_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>
于 2014-02-10T19:41:21.790 回答
4

当您第一次进入页面时,您的特殊变量“$_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>
于 2014-02-10T19:41:48.383 回答
3

$_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>
于 2014-02-10T19:42:05.053 回答
2

您可能必须确定表格是否已提交。

<?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') {...
于 2014-02-10T19:42:30.807 回答
0

我们必须检查用户是否点击了提交按钮,如果是,那么我们必须设置 $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>
于 2014-02-10T19:48:33.497 回答