我只是修复了一些表单验证,我似乎有一个非常奇怪的问题。
$newsletter = $_POST['newsletter']; // value 0 or 1 is passed from form, as "value"
// input type is radiobuttens
然后我有一个非常简单的
if ($newsletter != "0" || $newsletter != "1") {
$error_message .= 'Invalid newsletter?<br />';
}
它没有通过这个?我试过了:
if ($newsletter != 0 || $newsletter != 1) {
也没有通过,但就我所知,
将字符串与int进行比较答案 0 :(得分:1)
您必须将语句更改为&&
if ($newsletter != "0" && $newsletter != "1") {
这将检查它既不是0也不是1.
答案 1 :(得分:0)
如果是“0”,则不是“1”。如果它是“1”,则不是“0”。所以它总是要么不是零,要么不是一个。没有任何价值可以通过该测试。
如果它不等于“1”且它也不等于“0”,则只想返回错误。
答案 2 :(得分:0)
回答评论,您可以这样做:
if(!$newsletter) { $error_message .= 'Invalid newsletter?<br />'; }
答案 3 :(得分:0)
您需要进行AND
比较。我假设您要确保只将值0或1传递给脚本。
if ($newsletter != "0" && $newsletter != "1") {
$error_message .= 'Invalid newsletter?<br />';
}
从0!= 1 OR
条件的任何一方都是真的。所以这总是过去了。