[PHP-users 32407] IE7でBasic認証が動作しない

中澤朋孝 nakazawatomotaka @ gmail.com
2007年 7月 10日 (火) 11:24:43 JST


はじめまして、なかじゃ、と申します。

ここで質問するのが適当かどうかわかりませんが、ご存知の方いらっしゃいましたら
お力をお貸しください。
または、適当なところへ誘導してください。

IE6から閲覧すると問題なく動作していたBasic認証が、IE7からの閲覧では動作しません。
FireFoxからも問題ありません。

具体的には、存在するユーザ名、パスワードを入力すると再度ログインダイアログが表示され、
ユーザ名のところには
ドメイン名\ユーザ名
が表示されます。
ドメイン名を削除してもそのままにしても結果は同じで3回失敗したところでエラーの画面が表示。

ソースは

<?php
function CheckPassword($user, $pass) {
	$db_connect = mssql_connect("xxxxx","xxxxx","xxxxx");
	mssql_select_db("xxx",$db_connect);
	$query = "SELECT * FROM account WHERE id = '".$user."' and password =
'".$pass."';";
	$result = mssql_query($query, $db_connect);
	if(mssql_rows_affected($db_connect) == 0)
	{
		return false;
	}
	return true;
}

// HTTP認証
//if (!isset($_SERVER['PHP_AUTH_USER'])) {
if (!CheckPassword($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
	header("WWW-Authenticate: Basic realm=\"xxxxxxxxxxxx\"");
	header("HTTP/1.0 401 Unauthorized");
	exit;
}else{
	if (!CheckPassword($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
		header("WWW-Authenticate: Basic realm=\"$http_title\"");
		header("HTTP/1.0 401 Unauthorized");
		exit;
	}
}
?>

サーバの環境も必要でしたら調査して記載します。

よろしくお願いいたします。


PHP-users メーリングリストの案内