2012-09-24 64 views
6

我試圖更新我的VPS的PHP版本,但它沒有工作,我的提供商也沒有幫助我,所以我將它降級到以前的版本。

我現在正在使用PHP 5.2.17(cli)。在這個版本中一切正常。

由於此升級和降級,變量$_SERVER['PHP_AUTH_USER']爲空。 (在php.ini中,register_globals是'開',$_SERVER['PHP_SELF']正常工作)。

它問我正確的我的用戶名和密碼,我成功連接,但我需要使用$_SERVER['PHP_AUTH_USER']

我試過$_SERVER['PHP_AUTH_USER']$_SERVER['AUTH_USER'],$_SERVER['REMOTE_USER']堅果沒有工作。 (但我從來沒有得到任何錯誤,只是一個空值...)

回答

12

我終於找到了答案多虧了 'mbinette'。

在我的PHP配置中,PHP 5的處理程序是CGI,這種類型的身份驗證不適用於PHP CGI。所以我將它改爲了suPHP(這應該是APACHE上的默認設置)。

Find here一個解釋使用CGI和PHP_AUTH的方式的帖子,但我試過了,它不工作。

Find here一些關於PHP處理程序解釋

+0

很高興你找到解決方案!我真的沒有任何其他的想法,它可能是什麼(我曾經有過的唯一問題是因爲安全模式)..!乾杯! – mbinette

+0

謝謝你的幫助! – BastienSander

+0

鏈接不起作用 –

3

安全模式激活?這可能是你的問題......

自PHP 4.3.0起,爲了防止有人編寫腳本 它揭示了一個頁面,通過一個 傳統外部機制認證的PHP_AUTH密碼如果啓用了該特定頁面的外部認證並啓用了安全模式,變量將不會被設置爲 。無論如何,REMOTE_USER都可以用來識別 經過外部驗證的用戶。因此,您可以使用 $ _SERVER ['REMOTE_USER']。

來源:http://php.net/manual/en/features.http-auth.php

+0

在我的php.ini文件,我有:safe_mode設置=關 – BastienSander

+0

你確定的問題來自PHP? (而不是像這樣:http://stackoverflow.com/questions/5037046/serverphp-auth-user-empty?)。另外,你能確保error_reporting處於打開狀態,並且在此之前沒有發生任何錯誤嗎? – mbinette

+0

error_reporting = E_ALL&〜E_NOTICE和display_errors = on – BastienSander

相關問題