如何正确处理php undefined index

时间:2014-02-02 12:44:02

标签: php post

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

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()
  3. 如果我使用isset,我必须从上面改为两行:

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

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

    由于我的原始表单有超过20个输入字段,因此在编辑代码时,这会使代码更不易读,也更容易出错。有没有更好的方法来解决我目前错过的通知?

1 个答案:

答案 0 :(得分:1)

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

$text = false;

另外,检查变量是否设置始终是一个好习惯。更不用说你不应该直接使用$ _POST。