请注意,我刚开始学习php。我已经完成了几个不同的多天教程,现在我正在尝试自己写一个小的邮件列表脚本。我确信,这是一个非常简单的问题/答案,但是我没想办法解决这个问题的方法在谷歌上发现任何结果。
我有一个名为“htemail”的复选框,当我将其发送到脚本时,我有这个代码:
if(!$_POST['htemail']){
$usehtml = 0;
}else{
$usehtml = 1;
}
echo($usehtml);
如果选中该复选框,则返回1,但如果不是,则会收到以下错误:
注意:未定义的索引:htemail in C:\ WAMP \ WWW \邮件 第7行的list \ createUser.php调用 Stack #TimeMemoryFunctionLocation 10.0004673576 {main}().. \ createUser.php:0 0。
我想做的第一件事就是向后翻转代码,以便首先检查支票的存在(我不确定为什么我认为这会有所帮助)
提前感谢您的任何答案。
答案 0 :(得分:4)
如果未检查,浏览器可能不会包含在帖子数据中。使用函数isset
进行检查。如果未设置,则表示未进行检查,反之则不然,如果设置,则可能仍为假。
if(isset($_POST['htemail']) && $_POST['htemail'] == "Value"){ //where "Value" is the
//same string given in the HTML form, as value attribute the the checkbox input
$usehtml = 1;
}else{
$usehtml = 0;
}
作为isset
的替代方案,您可以使用array_key_exists
答案 1 :(得分:2)
你想要的是检测数组成员的存在,然后检查它的内容:
$usehtml = 0;
if (isset($_POST['htemail']) && strtolower($_POST['htemail']) == 'yes'){
$usehtml = 1;
}
echo($usehtml);
isset()
检查以确保数组成员存在,在这种情况下,您可以检查以确保该值的计算结果为您所需的值。
此外,上面我已经将评估命令默认为值(0),如果存在另一个变量,则更改为另一个值。这样做和if / else语句之间确实没有太大区别,但我认为阅读和理解起来更清晰。