我写了一个小小的检查,以便在表单成功验证时显示成功消息。但是我使用的支票不起作用。 $ _GET [' info']是什么并不重要,它只显示所有消息,除非$ _GET [' info]为空。所以即使在info = loggin时它也会显示所有三条消息。有什么帮助吗?
if(!empty($_GET['info'])){
if($_GET['info'] == "succes-paid");{
echo "<p class='succes'>De bestelling/inschrijving is succesvol verlopen.</p>";
}
if($_GET['info'] == "succes-register");{
echo "<p class='succes'>U werd succesvol geregistreerd.</p>";
}
if($_GET['info'] == "login");{
echo "<p class='succes'>U werd succesvol ingelogd.</p>";
}
}
答案 0 :(得分:2)
在每个if语句后面都有一个分号。分号意味着“完成声明”。因此,您的程序认为您已完成if,并且大括号中的所有内容都被视为与if语句分开的块。这就是为什么这些块总是在执行。
答案 1 :(得分:0)
这是因为if
条件之后的分号。
这一行实际上是两个陈述。第一个是带条件的if
,后跟一个'空'语句,以分号结束。第二个是复合语句(一组{ .. }
中的语句块。复合语句根本没有条件,因此它总是被执行。
if($_GET['info'] == "succes-paid") ; {echo 'x'}
condition with no statement -----^ ^ ^--------^-- compound statement without condition
\_The semi-colon that separates them.
你有三次这种情况,因此有三行输出。