- ベストアンサー
認証について
下記、認証画面を作成しましたが、 「kokousr」DBに存在しないUSERID,USERPASSを入力しても、ログインできてしまいます。 存在しないUSERをログインさせないためには、どこを変更すればよろしいのでしょうか? よろしくお願いします。 <?php function chk_auth() { global $conn; global $uid; global $upass; if ($uid and $upass) { $sql = "SELECT * FROM kokousr where uid = '".cnv_sqlstr($uid)."'" ." and pass = '".cnv_sqlstr($upass)."'"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); $row = mysql_fetch_array($res, MYSQL_ASSOC); if (mysql_num_rows($res) >= 1) { return TRUE; } else { return FALSE; } } else { return FALSE; } } function gamen_log() { ?> <h2>ログイン画面</h2> <form method="post" action="./itiran.php"> <table border="1"> <tr> <td>ユーザID</td> <td><input type="text" name="uid"></td> </tr> <tr> <td>パスワード</td> <td><input type="password" name="upass"></td> </tr> </table> <input type="hidden" name="act" value="ent"> <input type="submit" name="sub" value="ログイン"> </form> <?php conndb(); if (!chk_auth()) { $act = "log"; } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=x-sjis"> <title>ログイン</title> </head> <body> <?php gamen_log(); ?> </body> </html>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
cnv_sqlstr() は標準関数でないので、内容を記述すべきです。想像はつきますが。 質問がいくつか。 まず、1.投稿しているソースと fromタグで指定している ./itiran.php は同じものですか。 2.$act="log"という行がありますが、その後この$actはどこで利用していますか。 3.念のため、phpとMySQLのバージョン
その他の回答 (1)
- moon_night
- ベストアンサー率32% (598/1831)
$sql を Printしてみて、 コンソール(プロンプト)から直接たたいてみればある程度の原因がわかるのでは?