未选中复选框时未定义的值

时间:2013-12-08 04:10:49

标签: php

我有这个注册码。我希望人们决定是否要将其添加到电子邮件列表服务器中。选中此框时代码会正确执行,但我得到:

  

注意:未定义的索引:第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());
    }

3 个答案:

答案 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']) {
....
}