我在以下三个网站上使用以下代码,这些网站都通过同一帐户托管:
$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
任何帮助表示感谢。
答案 0 :(得分:0)
您是否检查过phpinfo()调用的值?如果safe_mode
设置为on
,我认为您无法访问PHP_AUTH_*
服务器变量。好消息是安全模式在PHP 5.4中消失了,所以如果你可以升级那可能会处理事情。