2009-01-21 93 views
2

我我的配置页面上得到一个未定义的指标,它读取:SERVER_ADDR未定义指数

注意:未定义指数:SERVER_ADDR在INC /配置 .inc.php上线

关于如何解决这个问题的任何想法?我知道它的警告,但仍然希望得到它。我正在使用它来检查地址是否使用本地或远程配置设置。

我使用它在这方面:

if ($_SERVER['SERVER_ADDR'] == '127.0.0.1' || $_SERVER['SERVER_NAME'] == 'localhost') {   

} 

回答

3

如果您还没有这样做,请确保您正在使用数组$ _SERVER获得SERVER_ADDR,价值访问SERVER_ADDR设置始终其中是这个数组的一个元素。

$_SERVER['SERVER_ADDR']; 

如果这不起作用,这可能意味着您的服务器不提供该信息。

PHP.net

没有保证每个Web服务器将提供所有的信息;服务器可能会省略一些,或者提供这里没有列出的其他人。

希望有所帮助。

3

你试过getenv

getenv('SERVER_ADDR') 
+0

+1当你有`getenv()`时,`$ _SERVER`是一个坏主意。 – Xeoncross 2012-03-15 03:56:13

+0

getenv('SERVER_ADDR')感谢它的工作 – 2017-08-27 01:38:58

0

您似乎在IIS中寻找$_SERVER["SERVER_ADDR"]这是没有在那里定义。

尝试$_SERVER['HTTP_HOST']相反,它是只要你强迫HTTP 1.1

+0

我相信$ HTTP_SERVER_VARS已被弃用;应该使用$ _SERVER。 – Marc 2009-01-21 14:33:25

3

接受的答案是正确的,但要注意的是在Windows IIS 7(及以上,据我所知),您必须使用:的

$_SERVER['LOCAL_ADDR'] 

代替

$_SERVER['SERVER_ADDR']