前提
気付けばプロ並みphpという教材の復習としてなるべく本書を見ないようにしながらスタッフの追加画面を作成しています。
staff_add.phpからname, pass, pass2を受け取ってstaff_add_checkに受け渡すというふうなものを作ろうとしたのですが、どうにもうまく行きません。
どなたか問題箇所や修正した方が良い箇所を教えていただけると嬉しいです。
実現したいこと
スタッフ名を受け取り、パスワードとパスワード2が一致しているか確かめる。
発生している問題・エラーメッセージ
スタッフ名が受け取れていない。
パスワードとパスワード2がどうしても一致せず、もう一度入力してくださいと表示されてしまう。
該当のソースコード
staff_add.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> スタッフの追加<br> <form action="staff_add_check.php" method="post"> スタッフ名を入力してください。<br> <input type="text" name="name"> <br> パスワードを入力してください。<br> <input type="password" name="pass"> <br> パスワードをもう一度入力してください。<br> <input type="password" name="pass2"> <br> <input type="button" onclick='history.back()' value='戻る'> <input type="submit" value="OK"> </form> </body> </html> staff_add_check.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <?php $staff_name = filter_input(INPUT_POST, 'name'); $staff_pass = filter_input(INPUT_POST, 'pass'); $staff_pass2 = filter_input(INPUT_POST, 'pass2'); $staff_name = htmlspecialchars($staff_name, ENT_QUOTES, 'UTF-8'); $staff_pass = htmlspecialchars($staff_pass, ENT_QUOTES, 'UTF-8'); $staff_pass2 = htmlspecialchars($staff_pass2, ENT_QUOTES, 'UTF-8'); if ($staff_name = '') { echo 'スタッフ名が入力されて居ません'; } else { echo 'スタッフ名 <br>'; echo $staff_name; echo '<br>'; } if ($staff_pass = '') { echo 'パスワードを入力してください'; } if ($staff_pass != $staff_pass2) { echo 'パスワードが一致しません'; } if($staff_name = '' || $staff_pass = '' || $staff_pass != $staff_pass2) { echo '<form>'; echo '<input type="button" onclick="history.back()" value="戻る">'; echo '</form>'; echo $staff_name; echo $staff_pass; echo $staff_pass2; } else { $staff_pass = md5($staff_pass); echo '<form action="staff_add_done.php" method="post">'; echo '<input type="hidden" name="name" value="'.$staff_name.'">'; echo '<input type="hidden" name="pass" value="'.$staff_pass.'">'; echo '<br>'; echo '<input type="button" onclick="history.back()" value="戻る">'; echo '<input type="submit" value="OK">'; echo '</form>'; } ?> </body> </html>
試したこと
どれかが空白もしくは、パスワードが一致しない場合に戻るボタンの下にスタッフ名、パスワード、パスワード2を表示させるようにして確認しましたが、パスワードが一致していても一致して居ないと表示されて居ました。また、スタッフ名が数字の1と表示されて居ました。
間違えがないか繰り返し教科書を見ながら確認しました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー