PHP超初心者です。
PHPにてお問い合わせフォームを作成しています。
フォームに空白があった場合にエラーメッセージにて入力を促す指示を出したいのですがどうも上手くいきません。
フォームを送信すると$_POSTに各データがセットされているかの確認、データがセットされていなければ、エラーメッセージの表示、セットされていれば confirm.phpへ遷移という流れを書いたつもりです。
どなたかご教授賜りたいです。
*具体的な問題点
現状のコードで実行し、フォームに内容を入力して送信てみると、フォームの入力内容が消え、次の画面(confirm.php)へ遷移せず、エラーメッセージもでないといった状況です。
当初はエラーメッセージ機能は実装していませんでした。(PHP記述をせず、HTMLのみ)
その場合だと、confirm.phpへ遷移することが出来たため、PHPの記述が間違っているのだろうと考えています。
コード <? //送信ボタンが押されたら// if (isset($_POST ["register"])) { //エラーメッセージを格納する配列を作成 $error_message = array (); if ($_POST ["onamae"]!=="") { //データがセットされていたら各変数にPOSTのデータを格納 $onamae = htmlspecialchars($_POST["onamae"],ENT_QUOTES); //各データがなかったらエラーメッセージを配列に格納 }else{ $error_message[] = "お名前を入力して下さい。<br>"; } if ($_POST["mailadress"]!=="") { $mailadress = htmlspecialchars($_POST["mailadress"],ENT_QUOTES); }else{ $error_message[] = "メールアドレスを入力してください。<br>"; } if ($_POST["category"]!=="") { $mailadress = htmlspecialchars($_POST["category"],ENT_QUOTES); }else{ $error_message[] = "お問い合わせの種類を選択してください。<br>"; } if ($_POST["interest[]"]!=="") { $mailadress = htmlspecialchars($_POST["interest"],ENT_QUOTES); }else{ $error_message[] = "興味のある分野を1つ以上選択してください。<br>"; } if ($_POST["body"]!=="") { $mailadress = htmlspecialchars($_POST["body"],ENT_QUOTES); }else{ $error_message[] = "メッセージを入力してください。<br>"; } //エラーが無い時 if (!count($error_message)){ //確認ページヘ header("Location:confirm.php"); exit; } } if (count($error_message)) { foreach ($error_message as $message){ print ($message); } } ?> <!DOCTYPE HTML> <html> <head> <title>お問い合わせフォーム</title> <meta charset="utf-8"> </head> <body> <form name="form1" method="post"action="confirm.php" > <H1>お問い合わせフォーム</H1> ・お名前<br> <input type="text" name="onamae" > <br> ・メールアドレス<br> <input type="text" name="mailadress"> <br> ・お問い合わせの種類<br> <select name="category" > <option value=""selected>選んで下さい</option> <option value="質問">質問</option> <option value="要望">要望</option> <option value="その他お問い合わせ">その他お問い合わせ</option> </select> <br> ・興味のある分野<br> <input type="checkbox" name="interest[]" value="HTML"> HTML<br> <input type="checkbox" name="interest[]" value="PHP"> PHP<br> <input type="checkbox" name="interest[]" value="MySQL"> MySQL<br> <input type="checkbox" name="interest[]" value="Linux"> Linux<br> <input type="checkbox" name="interest[]" value="マネジメント"> マネジメント<br> <input type="checkbox" name="interest[]" value="その他"> その他<br> ・メッセージ<br> <textarea name="body" cols="30" rows="5"></textarea> <br> <input type="submit" name="register value="送信"> </form> </body> </html>
回答4件
あなたの回答
tips
プレビュー