如何正确处理PHP未定义索引



我有一个脚本,用户可以在其中输入一些文本,查看并更改它。看起来这样:

if(isset($_POST['change']))
{
    $text = $_POST['text'];
    echo"
    <form method='post' action='datei.php'>
    <p>You wrote: $text</p>
    <input name='text' type='hidden' size='21' value='$text'>
    <input name='submit' type='submit' value='Change'>
    </form>";
}else
{
    $text = $_POST['text'];
    echo"
    <form method='post' action='datei.php'>
    <p>Write some additional Information</p>
    <input name='text' type='text' size='21' value='$text'>
    <input name='change' type='submit' value='View'>
    </form>";
 }

第一次加载页面时,我会得到以下通知

Notice: Undefined index: text in ...

我找到了两个解决方案如何解决问题:

  1. 忽略通知
  2. 使用isset()

如果我使用isset,我将不得不将两行从上方更改为:

 if(isset($_POST['text']))$text = $_POST['text'];

<input name='text' type='text' size='21' value='"; if(isset($_POST['text'])) echo $text; echo"'>

由于我的原始表单具有20个输入字段,因此在编辑代码时,代码不那么可读,并且更喜欢erros。有什么更好的方法可以解决我目前错过的通知吗?

首先确保在使用它们之前定义所有变量,例如

$text = false;

加上,检查设置变量始终是一个好习惯。更不用说您不应该直接使用$ _ post。

最新更新