2006年7月 8日

[PHP-users 29661] Re:sessionを使った認証フォームに関して

山下です。

こんなんでどうでしょう。
色々と私好みに直している部分がありますが・・・

まず、MySQL側(ユーザー名をユニークに)
ALTER TABLE `usr_tb` ADD UNIQUE `username` (`username`)

auth.inc.php
require_once("dbconn.inc.php");
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username != "" || $password != "") {
$username = addslashes(trim($username));
$password = addslashes(trim($password));

$sql = "SELECT * FROM usr_tb WHERE username = '$username'";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);

if ($rows == 1) {
$pass = mysql_result($result, 0, "passwd");
$nick = mysql_result($result, 0, "nick");

if ($pass == $password) {
$_SESSION['username'] = $username;
$_SESSION['nick'] = $nick;
} else {
$Err = "IDまたはパスワードに誤りがあります。";
}
} else {
$Err = "IDまたはパスワードに誤りがあります。";
}
} else {
$Err = "認証が必要です。ユーザー名とパスワードを入力して下さい。";
}

// 未エラー、$_SESSION['username'] が未登録の場合
if ($Err != "" && $_SESSION['username'] == "") {
authform($Err);
}

function authform($Err) {
echo $Err;
echo <<


ユーザ名

パスワード



EOC;
exit;
}
?>


みなさんのご指摘通りに、他にも色々と調べてみてはどうでしょう。

--
山下

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2006年7月 8日 11:52
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39180
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。