我正在博客中工作,我正在尝试处理注册表单的新闻通讯复选框...当用户标记复选框时我没有问题得到'是'作为结果我接受了数据库,但当用户离开复选框未选中时,我得到一个未定义的索引,只是无法继续使用寄存器,这是我到目前为止的代码
html表单
<form method="POST" action="process-register.php">
<input type="checkbox" name="newsletter" value="yes" />
</form>
//declared variable for the users input
$newsletter=$_POST['newsletter'];
//the condition for the checkbox
if(isset( $newsletter)){
$newsletter=="yes";
}else{
$newsletter=="no";
}
//then I insert the variable $newsletter through a prepared query...
答案 0 :(得分:0)
使用isset()
来查看该值是否完全提交。
答案 1 :(得分:0)
使用空检查。
if(!empty($_POST['newsletter'])){
}
答案 2 :(得分:0)
你在这里发生了一些事情。例如,您似乎正在使用==
进行分配(在您选中复选框的条件下),而您可能需要=
。但重要的是用默认值“no”定义你的变量,然后用发布的值覆盖它,如果已设置的话。
尝试
// set default value
$newsletter = "no";
// use posted variable if it's set
if (isset($_POST['newsletter'])) {
$newsletter = $_POST['newsletter'];
}
// then insert the variable $newsletter through a prepared query...