2009-01-21 95 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']