问题描述
|
请注意,我才刚刚开始学习PHP。我经历了一些不同的为期多天的教程,现在我正尝试自己编写一个小的邮件列表脚本。我敢肯定,这是一个非常简单的问题/答案,但是我没有办法弄清楚该问题的措辞不会对Google产生任何影响。
我有一个名为\“ htemail \”的复选框,当我将其发送到脚本时,我具有以下代码:
if(!$_POST[\'htemail\']){
$usehtml = 0;
}else{
$usehtml = 1;
}
echo($usehtml);
如果选中此复选框,则返回1,但如果不是,则会出现以下错误:
注意:未定义的索引:htemail在
C:\\ wamp \\ www \\ mailing
第7行的list \\ createuser.PHP调用
堆栈#TimeMemoryFunctionLocation
10.0004673576 {main}().. \\ createuser.PHP:0 0。
我想做的第一件事是将代码向后翻转,以便它首先检查检查的存在(我不确定为什么我认为这会有所帮助)
预先感谢您的任何答案。
解决方法
如果未选中,则浏览器可能不包含在帖子数据中。使用功能ѭ1进行检查。如果未设置,则表示未选中;反之,则为true;如果设置,则可能仍为false。
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;
}
作为“ 1”的替代,您可以使用array_key_exists
, 您要检测的是数组成员的存在,然后检查其内容:
$usehtml = 0;
if (isset($_POST[\'htemail\']) && strtolower($_POST[\'htemail\']) == \'yes\'){
$usehtml = 1;
}
echo($usehtml);
isset()
检查以确保数组成员存在,在这种情况下,您可以检查以确保该值计算为所需的值。
此外,在上面,我已命令评估默认为默认值(0),然后如果存在另一个变量,则更改为另一个值。这样做与if / else语句之间确实没有太大区别,但是我认为阅读和理解起来更简洁。