PHP31(ログイン)
ブログ・PHPの勉強「ログイン」
ログイン
<!DOCTYPE HTML> <htmllang="ja"> <head> <metacharset="utf-8"> <title>ログイン</title> <linkrel="stylesheet"href="style.css"> </head> <body> <divid="container"> <h1>スタッフ・ログイン</h1> <formaction="02_check.php"method="post"> <p>スタッフコード</p> <p><inputtype="text"name="code"size="20" autofocus required></p> <p>パスワードを入力してください。</p> <p><inputtype="password"name="password"size="20" required></p> <inputtype="submit"value="確認画面へ"> </form> </div> </body> </html>
入力エラー
<?php try { $stcode = htmlspecialchars($_POST[ 'code' ]); $stpassword = htmlspecialchars($_POST[ 'password' ]); $dsn = 'mysql:dbname=shop; host=localhost'; $user = 'root'; $password = 'root'; $dbh = new PDO( $dsn, $user, $password ); $dbh -> query( 'SET NAMES UTF8' ); $sql = 'SELECT name FROM mst_staff WHERE code=? AND password=?'; $stmt = $dbh -> prepare( $sql ); $data = $stcode; $data = $stpassword; $stmt -> execute( $data ); $dbh = null; $rec = $stmt -> fetch( PDO::FETCH_ASSOC ); if( $rec == false ) { print <<<EOD <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>入力エラー</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <p class="notice">スタッフコードかパスワードが間違っています。</p> <p><a href="01_login.php">戻る</a></p> </div> </body> </html> EOD; }else{ session_start(); $_SESSION[ 'login' ] = 1; $_SESSION[ 'stcode' ] = $stcode; $_SESSION[ 'stname' ] = $rec[ 'name' ]; header('location:03_top.php'); } }catch( Exception $e ) { print 'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); }
ショップ管理メニュー
<?php session_start(); session_regenerate_id(true); if(isset($_SESSION['login'])==false){ print '<p>ログインされていません。</p>'; print '<p><a href="01_login.php">ログイン画面へ</a></p>'; exit(); } ?> <!DOCTYPE HTML> <htmllang="ja"> <head> <metacharset="utf-8"> <title>ショップ管理トップメニュー</title> <linkrel="stylesheet"href="style.css"> </head> <body> <divid="container"> <header> <h1>ショップ管理トップメニュー</h1> </header> <p><?php print $_SESSION['stname'].'さんがログイン中' ?></p> <p><ahref="../staff/staff_list.php">スタッフ管理</a></p> <p><ahref="../product/04_list.php">商品管理</a></p> <p><ahref="./04_logout.php">ログアウト</a></p> </div> </body> </html>
ログアウト
<?php $_SESSION=array(); if(isset($_COOKIE[session_name()])==true){ setcookie(session_name(),'',time()-42000,'/');} @session_destroy(); ?> <!DOCTYPE HTML> <htmllang="ja"> <head> <metacharset="utf-8"> <title>ショップ管理ログアウト</title> <linkrel="stylesheet"href="style.css"> </head> <body> <divid="container"> <header> <h1>ショップ管理ログアウト</h1> </header> <p>ログアウトしました。</p> <p><ahref="./01_login.php">ログイン画面へ</a></p> </div> </body> </html>