スタッフ登録修正

staff_edit.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
if(!isset($_POST['code'])||$_POST['code']==""){
print'<p>変更するスタッフが選択されていません。</p>';
print '<form>';
print '<input type="button" onClick="history.back"() value="戻る">';
print '</form>';
 exit();
}
$code = @$_POST['code'];
try {
$dsn = 'mysql:dbname=データベース名; host=ホスト名';
$user = 'ID';
$password = 'パスワード';
$dbh = new PDO($dsn,$user,$password);
$dbh -> query('SET NAMES UTF8');
$sql = 'SELECT name FROM mst_staff WHERE code=?';
$stmt = $dbh -> prepare($sql);
$date[] = $code;
$stmt -> execute($data);
$rec = $stmt -> fetch(PDO::FETCH_ASSOC);
$name = $rec['name'];
$dbh =null;
}catch (Exeption $e){
print 'ただいま障害により大変ご迷惑をおかけしております';
exit();
}
?>
<h1>スタッフ情報修正</h1>
<p>スタッフコード<br>
<?php
$code = htmlspecialchars($code,ENT_QUOTES);
$name = htmlspecialchars($name,ENT_QUOTES);
print $code;
?>
</p>
<form action="staff_edit_check.php" method="post">
<input type="hidden" name="code" id="code" size="20" value="<?php print $code; ?>">
<p>スタッフ名<br>
<input type="text" name="name" id="name" size="20" value="<?php print $name; ?>">
</p>
<p>パスワードを入力してください<br>(半角英数5文字以上12文字以内)</p>
<input type="password" name="password" id="password" size="20">
<p>パスワードをもう一度入力してください</p>
<input type="password" name="password2" id="password2" size="20">

<input type="button" onClick="history.back()" value="戻る">
<input type="submit" value="OK">
</form>
</div>
</body>
</html>

staff_edit_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);

$flg = true;
$_SESSION['code'] = $_POST['code'];
$_SESSION['name'] = $staff_name;
$_SESSION['password'] = $staff_password;
?>

<!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 'スタッフ名が入力されていません';
}else{
print 'スタッフ名';
print $staff_name;
print '<br>';
}
if($staff_password==""){
print 'パスワードが入力されていません。<br>';
}
if($staff_password !== $staff_password2){
print 'パスワードが一致しません';
}
$split = str_split($staff_password);
$len = count($split);
$mblen = mb_strlen($staff_password, "UTF-8");
if($len !== $mblen){
print '全角文字が含まれています。';
$flg = false;
}
if($len<8 || $len >12){
print 'パスワードは8文字以上、12文字以内の英数字で入力してください。<br>';
$flg = false;
}
if( $staff_name == '' || $staff_password == '' || $staff_password != $staff_password2 || $flg === false) {
print '<form>';
print '<input type="button" onclick="history.back()" value="戻る">';
print '</form>';
} else {
print '<form action="staff_edit_done.php">';
print '<br>';
print '<input type="button" onclick="history.back()" value="戻る">';
print '<input type="submit" value="OK">';
print '</form>';
}
?>
</div>
</body>
</html>

staff_edit_done.php

<?php
//セッションスタート
session_start();
$staff_name=htmlspecialchars($_SESSION['name'],ENT_QUOTES);
$staff_password = htmlspecialchars($_SESSION['password'],ENT_QUOTES);
$code = $_SESSION['code'];
?>

<!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=データベース名; host=ホスト名';
$user = 'ID';
$password = 'パスワード';
$dbh = new PDO( $dsn, $user, $password );
$dbh -> query( 'SET NAMES UTF8' );
$sql = 'UPDATE mst_staff SET name = ? , password = ? WHERE code = ?';
$stmt = $dbh -> prepare( $sql );
$data[] = $staff_name;
$data[] = $staff_password;
$data[] = $code;
$stmt -> execute( $data );
$dbh = null;
print $staff_name;
print 'さんを修正しました。<br>';
unset($_SESSION['name']);
unset($_SESSION['password']);
unset($_SESSION['code']);
}catch(Exception $e){
print 'ただいま障害により大変ご迷惑をおかけしております';
exit();
}
?>
<p><a href="staff_list.php">スタッフ一覧</a></p>
</div>
</body>
</html>

完成サイトはこちら
http://portfolio.tank.jp/staff/