質問内容
こちらのコードは初学者が0からスクラッチ開発を体験する為の書籍を元にしたコードで、
初学者が理解しやすいよう実用的ではない実装がされているかと思います。
ですがとりあえず書籍の内容通り進め、クラッチ開発の流れを理解することに重きを置きたいので、
ひとまずエラーの解消法のみをお教えいただけると幸いです。
staff_add.phpで名前とパスワード2項目を埋め「OK」を押すとstaff_add_check.phpに飛び、
下の画面になります。
次のシートに飛ぶため、「OK」を押すと次の画面の表示になります。
一度はif($staff_name==''||$staff_pass==''||$staff_pass!==$staff_pass2){}
の条件式をクリアしelseの処理が実行されたのにも関わらず、
「OK」を押すとなぜ'pass2'が受け取れていない事になってしまうのでしょうか。
該当のソースコード
staff_add.php
html
1<html> 2 <head> 3 <meta charset="UTF=8"> 4 <title>タイトル</title> 5 </head> 6 <body> 7 スタッフ追加<br /> 8 <br /> 9 <form method="post" action="staff_add_check.php"> 10 スタッフ名を入力してください。<br /> 11 <input type="text" name="name" style="width:200px"><br /> 12 パスワードを入力してください。<br /> 13 <input type="password" name="pass" style="width:100px"><br /> 14 パスワードをもう一度入力してください。<br /> 15 <input type="password" name="pass2" style="width:100px"><br /> 16 <br /> 17 <input type="button" onclick="history.back()" value="戻る"> 18 <input type="submit" value="OK"> 19 </form> 20 </body> 21</html>
staff_add_check.php
html
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF=8"> 5 <title>タイトル</title> 6 </head> 7 <body> 8 <?php 9 $staff_name=$_POST['name']; 10 $staff_pass=$_POST['pass']; 11 $staff_pass2 = filter_input(INPUT_POST,'pass2'); 12 13 if($staff_name==''){ 14 print'スタッフ名が入力されていません。</br>'; 15 } else { 16 print 'スタッフ名:'; 17 print $staff_name; 18 print '<br/>'; 19 } 20 21 if($staff_pass==''){ 22 print'パスワードが入力されていません。<br />'; 23 } 24 if($staff_pass2==''){ 25 print'パスワード2が入力されていません。<br />'; 26 } 27 28 if($staff_pass!==$staff_pass2){ 29 print'パスワードが一致しません。<br />'; 30 } 31 32 if($staff_name==''||$staff_pass==''||$staff_pass!==$staff_pass2){ 33 print'<form>'; 34 print'<input type="button" onclick="history.back()" value="戻る">'; 35 print'</form>'; 36 } else { 37 $staff_pass=md5($staff_pass); 38 print'<form method="post" action="staff_add_done.php">'; 39 print'<input type="hidden" name="name" value="'.$staff_name.'">'; 40 print'<input type="hidden" name="pass" value="'.$staff_pass.'">'; 41 print'<br />'; 42 print'<input type="button" onclick="history.back()" value="戻る">'; 43 print'<input type="submit" value="OK">'; 44 print'</form>'; 45 } 46 ?> 47 </body> 48</html>
補足情報①
staff_add_check.phpのpass2だけfilter_inputで受け取っているのは、
他と同じ記述方法だと、以下のエラーが発生した為です。
エラーを解消すべく調べ、こちらを参考に致しました。
PHPのNotice: Undefined indexについて
補足情報②
mac book proを使用。
開発環境 / MAMP
My SQL / 5.7.26
PHP / 7.4.1
回答2件
あなたの回答
tips
プレビュー