这里有什么问题:
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip; // 217.16.137.74
if (strpos($url, 'localhost') == true || strpos($ip, '217.16.') == true) {
return;
}else{
write();
}
所以我在远程服务器上,我的IP是217.16.137.74
。
上述脚本未按预期取消,但执行了write()
功能。
答案 0 :(得分:2)
你应该使用
strpos($ip, '217.16.') !== false
使用严格比较!==
以上检查$ip
(堆栈)中搜索到的字符串( needle )是否不存在。
为什么代码失败:
strpos
会返回搜索到的文本的位置(从0开始),如果找不到文本,则返回false
。
由于$ip
以217.16.
开头,然后strpos
返回0
,当使用宽松比较false
$.ajax({
type: "POST",
url: 'http://localhost/tracker/functions.php',
dataType: 'text',
data: {
name: "John Doe",
age: "19"
},
success: function (obj, textstatus) {
console.log(textstatus);
},
error: function (xhr, status, error) {
console.log(xhr, status, error);
}
});
>