【发布时间】:2018-09-02 05:47:52
【问题描述】:
我使用这个函数和它的 Fine on Local 意味着当 $hexIpStr 存在函数时返回 false 否则返回 true,
但是当我在服务器上部署我的项目时,这个函数只返回真,
$arr 是二维数组。
function ipChecker($arr, $hexIp)
{
$hexIpStr = "HEX=" . $hexIp;
foreach ($arr as $members) {
if (in_array($hexIpStr, $members)) {
return false;
} else {
return true;
}
}
}
例如使用以下值调用该函数:
$hexIp = 'f528764d624db129b32c21fbca0cb8d6';
$arr = array(
0 => [
0 => 'FullName=mehdi',
1 => 'Email=test@gmail.com',
2 => 'IP=127.0.0.1',
3 => 'HEX=f528764d624db129b32c21fbca0cb8d6',
4 => '=>',
5 => 'Opinion=1 ',
],
1 => [
0 => '',
],
);
不,它不回答,因为它在服务器上很好,我得到了这个
全名=asd 电子邮件=kingblack5230@gmail.com IP=192.119.160.197 HEX=dd029394f038b0775138a23df8d9cddd => Opinion=1 and its right and i 使用此函数获取用户ip:
function GetRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;}
【问题讨论】:
-
本地返回了什么?如果返回true,只表示在数组
$members中没有找到保存数据的变量$hexIpStr。 -
不,唯一不同的是本地和服务器
-
您能否通过
var_dump($hexIpStr);和var_dump(members);检查$hexIpStr是否真的在数组members中找到。 -
你在服务器上做了
var_dump()吗? (不应该在本地完成,因为它在那里工作正常)。使用上面的代码,它返回 true 的唯一原因是$hexIpStr不存在于$members中。 -
把你的
$arr输出放在这里。
标签: php