为什么简单的PHP标头授权不起作用

时间:2011-11-28 19:25:08

标签: 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

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您是否检查过phpinfo()调用的值?如果safe_mode设置为on,我认为您无法访问PHP_AUTH_*服务器变量。好消息是安全模式在PHP 5.4中消失了,所以如果你可以升级那可能会处理事情。