当我启用下面的代码导致我的代码崩溃时,我遇到了问题。我无法弄清楚崩溃的位置,但我知道如果我注释掉这部分它将允许代码运行,只是没有在表单的其他部分运行检查。
if (empty($_POST["SCreq"])) {{
$SCreqERR = "SC requires a Yes or No answer";
} else {
$SCreq = test_input($_POST["SCreq"]);}
// elseif($SCreq = "Yes"; $Email=False)
// $EmailERR = "Email is required for SC"
// elseif ($SCreq = "Yes"; $emaildist1 = "")
// $emaildist1ERR = "First Email Distrobution Group required with SC"
// else {
// $emaildist1 = test_input($_POST["emaildist1"])
}}
任何帮助都会非常感激,我有一切名字,一切都是正确的。
答案 0 :(得分:1)
双引号基本上会在“if”块中启动一个新块。所以,你的代码可以这样编写:
if (empty($_POST["SCreq"])) {
{
$SCreqERR = "SC requires a Yes or No answer";
}
else {
$SCreq = test_input($_POST["SCreq"]);
}
}}
不仅括号不平衡(关闭括号比开括号更多),“else”也在“if”块内部开始。删除“if”中的{},即可获得
if (empty($_POST["SCreq"])) {
else {
$SCreq = test_input($_POST["SCreq"]);
}
}}
无效(“else”必须直接在“if”块之后,而不是在其中)。
使用适当的缩进来快速捕捉这些错误。在每个“{”之后,开始一个新行,并更多地缩进代码。在每个“}”之后,开始一个新行,并缩进。在每个块之后,您需要处于与之前相同的缩进级别,否则您将有额外的“{”或“}”。您可以手动执行此操作,也可以让一个好的编辑器为您执行此操作。这种代码使用适当的缩进,并且有效:
if (empty($_POST["SCreq"])) {
$SCreqERR = "SC requires a Yes or No answer";
}
else {
$SCreq = test_input($_POST["SCreq"]);
}
答案 1 :(得分:0)
使用IDE帮助检查事物是否正确嵌套。尽管如此,很难说出事情,但...... {{
。另外,错误日志!
我假设您查看了文档? http://php.net/manual/en/control-structures.elseif.php
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
答案 2 :(得分:-2)
elseif($SCreq == "Yes" && $Email == False)
$EmailERR = "Email is required for SC";
elseif ($SCreq == "Yes" && $emaildist1 == "")
$emaildist1ERR = "First Email Distrobution Group required with SC";
else {
$emaildist1 = test_input($_POST["emaildist1"]);}
条件测试是==
多个AND条件放&&。
用;
结束你的陈述