加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP的filter_input()在外部主机上剥离$_SERVER数据,但在localhos

发布时间:2020-12-13 17:47:38 所属栏目:PHP教程 来源:网络整理
导读:我正在运行一个apache2服务器,我在那里进行localhost测试( PHP 5.5),但我的托管服务提供商有PHP 5.3.我不知道这是否是一个问题,但我提到以防万一. 我的问题是: 我想要注意几个$_SERVER变量,但filter_input()函数由于某种原因返回false,但仅在我的主机服务器
我正在运行一个apache2服务器,我在那里进行localhost测试( PHP 5.5),但我的托管服务提供商有PHP 5.3.我不知道这是否是一个问题,但我提到以防万一.

我的问题是:
我想要注意几个$_SERVER变量,但filter_input()函数由于某种原因返回false,但仅在我的主机服务器上.它在localhost上运行正常.

回声验证预期输出:

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,但在我的localhost上按预期工作.

我猜测主机上有一些配置参数设置不同.知道哪一个?或者还有什么可能是什么问题?
谢谢.

解决方法

我有同样的问题,我将无法告诉你为什么它返回一个空字符串/ FALSE但是对我来说使用INPUT_ENV而不是INPUT_SERVER确实有效并返回与$_SERVER [‘REMOTE_ADDR’]相同的IP地址. HTTP_USER_AGENT也是如此.简短的例子:

$REMOTE_ADDR = filter_input(INPUT_ENV,FILTER_VALIDATE_IP);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读