支援訓練 80日目
- [演習]まとめ(3)
index.html
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>おいしい野菜農園</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <head> <h1>スタッフ追加</h1> </head> <section id="form"> <form action="staff_add_check.php" method="post" id="staff"> <p><label for="name">スタッフ名を入力してください。</label><br> <input type="text" name="name" id="name" size="30" autofocus required></p> <p><label for="password">パスワードを入力してください。</label><br> <input type="password" name="password" id="password" size="10" required></p> <p><label for="passoword2">パスワードをもう一度入力してください。</label><br> <input type="password" name="password2" id="password2" size="10" required></p> <input type="submit" value="確認画面へ"> </form> </section> </div><!-- container --> </body> </html>
staf_add_check.php
<?php // フォームデータが空の場合は処理終了 if(empty($_POST)) { print '処理終了'; exit; } //セッションの開始 session_start(); $staff_name = htmlspecialchars($_POST['name'], ENT_QUOTES); $staff_password = htmlspecialchars($_POST['password'], ENT_QUOTES); $staff_password2 = htmlspecialchars($_POST['password2'],ENT_QUOTES); $_SESSION['name'] = $staff_name; $_SESSION['password'] = $staff_password; $_SESSION['password2'] = $staff_password2; ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>入力確認画面:おいしい野菜農園</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <?php if ($staff_name == '') { print 'スタッフ名が入力されていません。<br>'; } else { print 'スタッフ名 : '; print $staff_name; print '<br>'; } if ($staff_password == '') { print 'パスワードが入力されていません。<br>'; } if ($staff_password !=$staff_password2) { print 'パスワードが一致しません。<br>'; } if ($staff_name == '' || $staff_password == '' || $staff_password != $staff_password2) { print '<form>'; print '<input type="button" onClick="history.back()" value="戻る">'; print '</form>'; } else { $staff_password = crypt($staff_password); print '<form action="staff_add_done.php">'; print '<br>'; print '<input type="button" onClick="history.back()" value="戻る">'; print '<input type="submit" value="OK">'; print '</form>'; } ?> </div><!-- container --> </body> </html>
staff_add_done.php
<?php ob_start(); //セッションの開始 session_start(); $staff_name = htmlspecialchars($_SESSION['name'], ENT_QUOTES); $staff_password = htmlspecialchars($_SESSION['password'], ENT_QUOTES); ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>入力確認画面:おいしい野菜農園</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <?php try { $dsn = 'mysql:dbname=shop; host=localhost'; $user = 'root'; $password = 'root'; $dbh = new PDO($dsn, $user, $password); $dbh->query('SET NAMES UTF8'); $sql = 'INSERT INTO mst_staff(name, password) VALUES(?, ?)'; $stmt = $dbh -> prepare($sql); $data[] =$staff_name; $data[] = $staff_password; $stmt->execute($data); $dbh = null; print $staff_name; print 'さんを追加しました。<br>'; } catch (Exception $e) { print 'ただいま障害により大変ご迷惑をおかけしております。'; exit(); } // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } ob_end_flush(); // 最終的に、セッションを破壊する session_destroy(); ?> <p><a href="staff_list.php">スタッフ一覧</a></p> </div> <!-- container --> </body> </html>
staff_list.php
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>スタッフ一覧:おいしい野菜農園</title> <link rel="stylesheet" href="style.css" </head> <body> <div id="container"> <?php try { $dsn = 'mysql:dbname=shop; host=localhost'; $user = 'root'; $password = 'root'; $dbh = new PDO($dsn, $user, $password); $dbh->query('SET NAMES UTF8'); $sql = 'SELECT * FROM mst_staff WHERE 1'; $stmt = $dbh -> prepare($sql); $stmt -> execute(); $dbh = null; print '<h1>スタッフ一覧</h1>'; print '<form action="staff_edit.php" method="post">'; while(1) { $rec = $stmt -> fetch(PDO::FETCH_ASSOC); if($rec == false) { break; } print '<input type="radio" name="staff_code" id="staff_code" value="' . $rec['code'] .'">'; print $rec['name']; print '<br>'; } print '<input type="submit" value="修正">'; print '</form>'; } catch(Exeption $e) { print 'ただいま障害により大変ご迷惑をおかけしております。'; exit(); } ?> </div><!-- container --> </body> </html>
@charset "UTF-8"; body, h1, p, form, header, section { margin: 0; padding: 0; } body { font-size: 16px; font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; } #container { width: 480px; margin: 50px auto; background-color: #FFF; padding: 10px 20px 16px 20px; border-left: 6px solid #8CC9B5; box-shadow: 0 0 3px #999; } h1 { font-size: 20px; margin-bottom: 20px; } form#staff { width: 400px; width: 400px; } form p { margin-bottom: 10px; }