我有一个脚本,用户可以在其中输入一些文本,查看并更改它。它看起来像是:
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 ...
我找到了两种解决问题的方法:
如果我使用isset,我必须从上面改为两行:
if(isset($_POST['text']))$text = $_POST['text'];
和
<input name='text' type='text' size='21' value='"; if(isset($_POST['text'])) echo $text; echo"'>
由于我的原始表单有超过20个输入字段,因此在编辑代码时,这会使代码更不易读,也更容易出错。有没有更好的方法来解决我目前错过的通知?
答案 0 :(得分:1)
首先确保在使用之前定义所有变量,例如
$text = false;
另外,检查变量是否设置始终是一个好习惯。更不用说你不应该直接使用$ _POST。