我试图将用户输入的数据保存到网址的注释框中,这样如果用户刷新他们输入的数据仍然在表单中。 Bellow是一直反复出现的错误消息。 注意:未定义的索引:在第21行的/home/4199203/public_html/phone.php中发表评论
这是我正在使用的代码
<?php
if(isset($_GET['comment'])){
$RefillComment = $_GET['comment'];
}elseif(isset($_GET['name'])){
$RefillName = $_GET['name'];
}
if($_POST['comment'] !=""){
if($_POST['name'] !=""){
if(isset($_POST['comment'], $_POST['name'])){
$name = $_POST['name'];
$comment = $_POST['comment'];
echo"name = ".$name."";
echo"comment = ".$comment."";
}
}else{
if($_POST['name'] !=""){
header('location: phone.php?phone='.$Review_ID.'&name='.$_POST['name']);
die();
}else{
if($_POST['comment'] !=""){
header('location: phone.php?phone='.$Review_ID.'&comment'.$_POST['comment']);
die();
}
}
}
}
?>
这是表格
<form name="form1" <?php {echo 'action="'.'phone.php?phone='.$Review_ID.'"';}?> method="POST">
<colgroup>
<col widht="25%" style="vertical-align:top;"/>
<col widht="75%" style="vertical-align:top;"/>
</colgroup>
<table>
<tr>
<td><label for="name">Name</label></td>
<td><input type="text" name="name" <?php if(isset($_GET['name'])){echo 'value="'.$RefillName.'"';}?> /></td>
</tr>
<tr>
<td><label for="comment">Comment:</label></td>
<td><input type="comment" name="comment" <?php if(isset($_GET['comment'])){echo 'value="'.$RefillComment.'"';}?></textarea></td>
</tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Comment"></td></tr>
</table>
</form>
答案 0 :(得分:2)
在代码中使用数组密钥($_POST
)之前,需要先检查它是否已设置。
替换:
if($_POST['name'] !=""){
为:
if(isset($_POST['name']) && !empty($_POST['name'])){
和,替换:
if($_POST['comment'] !=""){
为:
if(isset($_POST['comment']) && !empty($_POST['comment'])){
这现在适合你吗?
答案 1 :(得分:0)
大多数时候awnser注意:未定义的索引是ISSET
总是使用isset,在帖子上获取,
我在你的代码中看到有时候你会使用它,有时你也不会。
它只是检查var是否设置..然后你必须检查var或post是否为空
//if post isset and its not empty
if (isset($_POST) && !empty($_POST)) {
//do this
}