スタッフ登録修正
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/