「名前」「学籍番号」「年齢」「備考欄」の四つを入力フォーム→確認画面→完了画面となるようなデータフォームをつくっています。
確認画面で、未入力や記号などのエラーがあれば「戻るボタン」を不備がなければ「完了ボタン」が表示されるようにしたいのですが、どちらの場合も戻るボタンしか表示されません。
エラーが生じるのであれば探しどころがわかるのですが、エラーも生じないためどの部分に不備があるか分かりません。
また戻るボタンを押した際に前の画面に入力情報を保持したいのですが、反映していないようなので、その部分についてもなにかミスがあればご指摘いただけると嬉しいです。
初歩的な細かいミスかもしれませんが、よろしくお願いします。
PHP
1 2<?php 3 4session_start(); 5$age= htmlentities($_POST[age], ENT_QUOTES, "UTF-8"); 6$name= htmlentities($_POST[name], ENT_QUOTES, "UTF-8"); 7$number= htmlentities($_POST[number], ENT_QUOTES, "UTF-8"); 8echo str_replace('<br>', '<br>', htmlspecialchars( $_POST ,ENT_QUOTES) ); 9 10 11$_SESSION["age"]=$age; 12$_SESSION["name"]=$name; 13$_SESSION["number"]=$number; 14 15$postData = $_POST; 16$error = array(); 17 18 function formValidation($postData) { 19 if(empty($postData['age'])) { 20 $error[] = "年齢を入力してください"; 21 } else if(!preg_match('/^[0-9]+$/',$postData['age'])) { 22 $error[] = "年齢を正しく入力してください"; 23 } 24 25 26 if (empty($postData['name'])) { 27 $error[] = "お名前を入力してください"; 28 } else if (!preg_match('/^[ぁ-んァ-ヶー一-龠 \r\n\t]+$/', $postData['name'])) { 29 $error[] = "お名前は全角文字で入力してください"; 30 } 31 32 if(empty($postData['number'])) { 33 $error[] = "学籍番号を入力してください"; 34 } else if(!preg_match('/^[a-zA-Z0-9]+$/',$postData['number'])) { 35 $error[] = "学籍番号を正しく入力してください"; 36 } 37 return $error; 38 } 39 $error = formValidation($postData); 40 if(empty($postData['input-submit-check']) || !empty($error)) { 41 $page_flag = 1; 42 } else { 43 $page_flag = 0; 44 } 45 46?> 47 48 49 50 51//以下略
回答3件
あなたの回答
tips
プレビュー