我的转储变量出现在它们的页面上:
if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' OR '44.71.45.99') {
//blah blah
}else{
//blah
}
我知道这是错误的,但当我尝试…它在我的另一台电脑上工作。即使我知道这是错误的,它也没有提示我错误…
通常我这样写:
//this is correct
if(isset($a) or isset($b)){
}
是的,它应该是:
if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' or $_SERVER['REMOTE_ADDR'] == '44.71.45.99') ...
'or'(或'||')将布尔(true或false)表达式(例如使用'=='进行比较)组合在一起。在原始代码中,它将第二个IP字符串转换为布尔值(值为true),因此if语句将始终与匹配。
if (
$_SERVER['REMOTE_ADDR'] == '44.71.45.98'
OR
$_SERVER['REMOTE_ADDR'] == '44.71.45.99'
)
您的表达式不正确。应该是这样的:
if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' OR
$_SERVER['REMOTE_ADDR'] == '44.71.45.99')
或者99%的开发者是怎么做的:
if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' ||
$_SERVER['REMOTE_ADDR'] == '44.71.45.99')
我更喜欢使用ip数组(如果不止一个)
if(in_array($_SERVER['REMOTE_ADDR'], array('44.71.45.98', '44.71.45.99', etc))
这里需要使用逻辑或运算符..
你的代码应该是这样的…
if($_SERVER['REMOTE_ADDR'] == '44.71.45.98' || $_SERVER['REMOTE_ADDR'] == '44.71.45.99'){
code if condition is true..
}
else{
code if condition is false..
}
也可以这样做。
if($_SERVER['REMOTE_ADDR'] == '44.71.45.98' or $_SERVER['REMOTE_ADDR'] == '44.71.45.99')
这里我更喜欢使用||作为OR操作符。代码应该是:
if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' || $_SERVER['REMOTE_ADDR'] == '44.71.45.99')