我正在运行 apache2 服务器,在其中进行本地主机测试(PHP 5.5),但我的托管提供商有 PHP 5.3。我不知道这是否是一个问题,但我提一下以防万一。
我的问题是这样的:
我试图记下几个 $_SERVER 变量,但是filter_input()
函数由于某种原因返回 false,但仅在我的主机服务器上。它在本地主机上运行良好。
回显验证预期输出:
echo $_SERVER['HTTP_USER_AGENT'];
echo $_SERVER['REMOTE_ADDR'];
按预期返回:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36
90.10.160.140 (Not the actual address)
但是当我使用过滤器时(即使没有指定过滤器/选项!),两者都是空白的:
filter_input(INPUT_SERVER,'HTTP_USER_AGENT',FILTER_SANITIZE_ENCODED,FILTER_FLAG_STRIP_LOW);
filter_input(INPUT_SERVER,'REMOTE_ADDR',FILTER_VALIDATE_IP);
filter_input(INPUT_SERVER,'HTTP_USER_AGENT');
filter_input(INPUT_SERVER,'REMOTE_ADDR');
在我的托管提供商上执行时,上述所有内容都返回空字符串/FALSE,但在我的本地主机上按预期工作。
我猜测主机上的一些配置参数设置不同。知道是哪一个吗?或者可能还有什么问题?
谢谢。