我有下面的代碼,我對都通過同一個賬戶託管三個站點使用:爲什麼不能正常使用簡單的PHP頭授權
$username = 'test';
$password = 'test';
If (!isset($_SERVER['PHP_AUTH_USER'])|| !isset($_SERVER ['PHP_AUTH_PW'])||
($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password)){
//send this if the user and pass arent correct
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic Realm= "mysite"');
exit('<h2> Go away Creep!!</h2> you need a username and password to enter this kingdom!!');
}
它的工作完全正常,直到我升級到較新的框幾天前。託管公司表示,一切都很好,服務器遷移也很順利,但這個腳本突然不起作用。我輸入適當的用戶並通過,對話框再次提示我爲用戶並通過。
什麼可能會改變,這將使這段代碼無法正常工作? htaccess中是否有某些東西可以影響它?服務器設置?新箱
PHP版本是5.2,但我可以升級到5.3
讚賞任何幫助。
var_dump($ _ SERVER),所以你可以看到你實際傳遞了什麼。 –
取決於SAPI。在CGI和FastCGI環境中,出於安全原因,PHP_AUTH_USER不會出現,Authorization:頭被壓縮。然後查看有關變通辦法的手動註釋。 – mario