AUTHのフォーム認証で認証されない原因がわかりません
AUTHを使いフォーム認証を試みていますが、
AUTH_WRONG_LOGINが返ってきます。
なぜ、認証されないのか原因が全くわかりません。
(単純入力ミス、パスワードのmd5による暗証値等の登録ミスではありません。)
以下がコードですが、コードに不適当な個所があればご指摘いただければと思います。
また、コードに問題がないようであれば、原因として何が考えられるか助言
をいただければと思っています。
(1)認証フォーム
<html>
<head>
<title>ログインページ</title>
</head>
<body>
<form method="POST" action="<?php> print($_SERVER['PHP_SELF']) ?>">
<table border="0">
<tr>
<th align="right">ユーザID:</th>
<td><input type="text" name="username" size="15" maxlength="20" /></td>
</tr>
<tr>
<th align="right">パスワード:</th>
<td><input type="password" name="password" size="15" maxlength="20" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="ログイン" />
</td>
</tr>
</table>
<font color="red"><?php print($err); ?></font>
</form>
</body>
</html>
(2)認証コード
<?php
function loginFunction($usr,$status){
switch($status){
case AUTH_IDLED :
case AUTH_EXPIRED :
$err='ログイン期限が切れています。再ログインしてください';break;
case AUTH_WRONG_LOGIN :
$err='ユーザID/パスワードが間違っています。';break;
case AUTH_METHOD_NOT_SUPPORTED :
$err='認証方法が未サポート';break;
}
require_once('loginForm.php');
}
$params=array(
'dsn'=>'uri:file://XXXXX\XXXX.dsn',
'table'=>'login',
'usernamecol'=>'username',
'passwordcol'=>'password',
'db_fields'=>'*');
$myAuth=new Auth('DB', $params, 'loginFunction');
$myAuth->start();
if(!$myAuth->getAuth()){
exit();
}
?>
.htaccessを使用し、認証コードが逐次実行されるようにしています。
[PHP使用環境]
PHP=5.1.6
OS=Windows2000 PRO
webserver=apatch2.0
[DB環境(リモートサーバ)]
DB=MS SQL Server2000
OS=Windows2003 server R2
説明不足等がありましたら、ご指摘ください。
お礼
シャーペンで刺したような傷だけでも、修理出したほうがよさそうですね。 内側に指紋認証があればいいのですけどね。 回答ありがとうございました。