PHPによるログイン管理
PHPによるログイン管理。ページを増やし過ぎないことを念頭にする。
$pwd = array( '1'=>'xxxxxxx', '2'=>'xxxxxxx', '3'=>'xxxxxxx', '4'=>'xxxxxxx', '5'=>'xxxxxxx', '7'=>'xxxxxxx', '9'=>'xxxxxxx', '12'=>'xxxxxxx', '14'=>'xxxxxxx', '17'=>'xxxxxxx', '18'=>'xxxxxxx', '21'=>'xxxxxxx', '26'=>'xxxxxxx' );
簡単に済ませたいので、ソースにパスワードを埋め込んだと仮定。
本来ならDBに保存しておいて、配列に読み込むとする。
キー値と値の連想配列にしておく。
// エラーメッセージ $errorMessage = ""; $UserId = htmlspecialchars($_POST["class"], ENT_QUOTES); $PassWd = htmlspecialchars($_POST["password"], ENT_QUOTES);
エラーメッセージの初期化とPOST変数のエスケープ。
// ログインボタンが押された場合 if (isset($_POST["login"])) { if ($pwd[$UserId] == $PassWd ) { // 認証成功 session_regenerate_id( true ); setcookie('class', $UserId, time()+3600*24*7);//現在時刻から1週間後 setcookie('pass', $PassWd, time()+3600*24*7);//現在時刻から1週間後 header("Location: main.html"); exit; } else { //認証失敗時はクッキーを削除 setcookie('class'); setcookie('pass'); $errorMessage = "<strong>パスワードが間違っています</strong>"; } }
ログインボタンが押されたならパスワードとユーザーIDのマッチングを行う。
成功ならセッション変数を再生成して、クッキーにユーザーIDとパスワードを設定。
HTML部では
<form id="loginForm" name="loginForm" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
自分自身を呼び出すように、サーバー変数$_SERVER['PHP_SELF']を使ってactionを設定する。
ボタンは
<input type="submit" id="login" name="login" value="ログイン">
メッセージ用のエリアとして用意しておく。
<div><?=$errorMessage?></div>