【问题标题】:What's wrong with my way of using filter_input? [duplicate]我使用 filter_input 的方式有什么问题? [复制]
【发布时间】:2017-01-18 16:08:15
【问题描述】:

我被告知我应该使用 filter_input 而不是直接访问 $_SERVER

所以我做了这个简单的 2 行代码

    echo "filter:input " . filter_input(INPUT_SERVER,'REMOTE_ADDR');
    echo "SERVER:" .$_SERVER['REMOTE_ADDR'] ; 

非常简单。我希望它们都产生完全相同的东西。

这就是我得到的

过滤器:输入服务器:202.80.212.17

显然 filter_input(INPUT_SERVER,'REMOTE_ADDR') 产生空字符串。

为什么?

【问题讨论】:

  • 您使用的是哪个 php 版本?同时,您可以随时使用filter_input($_SERVER['REMOTE_ADDR']) 来实现相同的目的。
  • 复制与否 这个问题的答案太棒了
  • Jim Thio 再次出击,哈哈。通过不查看是否已经回答了问题,然后基本上对标记为重复的问题发布“谁在乎”回复来表示对 Stacks 的蔑视。

标签: php


【解决方案1】:

这是旧版本 php 中的一个错误。您可以使用

echo "filter:input " . filter_input(INPUT_ENV, 'REMOTE_ADDR', FILTER_VALIDATE_IP);

或者使用

echo "filter:input " . filter_input($_SERVER['REMOTE_ADDR']);

【讨论】:

  • filter_input(INPUT_ENV 在我的调试环境中不起作用。它至少应该显示 ::1。我猜我又回到了 REMOTE_ADDR
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
  • 2011-03-31
  • 1970-01-01
  • 2013-02-01
  • 2017-04-30
相关资源
最近更新 更多