由于未知原因,$ _SERVER为空

时间:2016-01-11 16:08:47

标签: php iis ssl nginx dns

我的脚本安装在几个不同的服务器上(我无法访问它们),我遇到以下代码的问题。

$domain = $_SERVER['SERVER_NAME'];
$usersip = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];

由于我不打算解释(不相关)的原因,在我自己的系统上获取这两个值以及其他值是至关重要的。我在大多数服务器上使用CURL()fsockopen()成功收集了所有这些值,但其中一些让我头疼。

我不知道为什么少数这些服务器总是返回$domain$usersip的空值,但我可以找到所有其他值。很明显,这不是CURL()fsockopen()的问题,但服务器因未知原因无法确定$_SERVER['SERVER_NAME']$_SERVER['SERVER_ADDR']$_SERVER['LOCAL_ADDR']。事实上,我的脚本不可能安装在没有IP地址和域名的服务器上。

我做了很多研究,我有3个理论。

  1. 我在非SSL页面上发送CURL()fsockopen()的所有数据,但“源”页面正在运行SSL,但我有很多其他服务器,其中SSL针对非SSL连接运行正常,所以我不认为这也是它不起作用的原因,因为正如我上面所说,我可以找到除$domain$usersip <之外的所有值/ LI>
  2. Nginx和IIS弄乱了超全局变量$_SERVERexample 1example 2)仍然原因不明
  3. 服务器无法解析IP /域名的DNS问题。如果这确实是它无法正常工作的原因,那么这台服务器上的网站怎样才能正常运行?

0 个答案:

没有答案