支援訓練 80日目


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;
}