我有这个注册码。我希望人们决定是否要将其添加到电子邮件列表服务器中。选中此框时代码会正确执行,但我得到:
注意:未定义的索引:第21行的C:\ xampp \ htdocs \ website \ register.php中的maillist
取消选中此框时。下面是代码。我不擅长编程,所以请假装回答时我很傻。感谢。
<tr><td>Add me to your listserve:</td><td><input type="checkbox" name="maillist"> </td></tr>
$name=mysql_real_escape_string($_POST['name']);
$dob=mysql_real_escape_string($_POST['dob']);
$loginid=mysql_real_escape_string($_POST['loginid']);
$password=mysql_real_escape_string($_POST['password']);
$emailaddress=mysql_real_escape_string($_POST['emailaddress']);
$description=mysql_real_escape_string($_POST['description']);
$maillist=$_POST['maillist'];
mysql_query("INSERT INTO demographics values('$name','$dob','$loginid','$password','$description')") or DIE(mysql_error());
if($maillist==true){
mysql_query("INSERT INTO maillist values('$name','$emailaddress')") or DIE(mysql_error());
}
答案 0 :(得分:3)
HTML表单不会为未选中的复选框创建POST变量。您需要检查变量是否存在以确定是否已检查:
$maillist = isset($_POST['maillist']);
答案 1 :(得分:0)
如果取消选中您的复选框,则不会设置maillist
。在使用它之前检查$_POST['maillist']
是否有后置阵列。
$maillist=isset($_POST['maillist']) ? $_POST['maillist'] : '';
答案 2 :(得分:0)
您必须检查变量是否已设置:
<input type="checkbox" name="maillist" value= true>
if(isset($_REQUEST['maillist']) {
....
}