我有一个脚本,用户可以在其中输入一些文本,查看并更改它。看起来这样:
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()
如果我使用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。