[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 メーリングリストの案内