質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

2回答

401閲覧

問い合わせページのエラーについて

nanasiki

総合スコア2

0グッド

0クリップ

投稿2022/03/12 16:57

編集2022/03/12 23:02

###前提・実現したいこと
お問い合わせフォームを作ろうとしています。
input内にそれぞれ情報を入力して【入力内容確認】ボタンを押した際に、
下記のエラーメッセージが出ます。
【名前を入力してください】
【Eメールを入力してください】
【お問い合わせ内容を入力してください】
どこが原因となっているかが不明のため教えていただけると幸いです。
簡単な質問で申し訳ないのですがお願いします。

###該当のソースコード

PHP

1コード 2```<?php 3 session_start(); 4?> 5 6<!DOCTYPE html> 7<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 9<?php 10 $mode = 'input'; 11 $errmessage = array(); 12 if( isset($_POST['back']) && $_POST['back'] ) 13 { 14 // 何もしない 15 } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ 16 // 確認画面 17 if( !$_POST['fullname'] ) { 18 $errmessage[] = "名前を入力してください"; 19 } else if( mb_strlen($_POST['fullname']) > 100 ){ 20 $errmessage[] = "名前は100文字以内にしてください"; 21 } 22 $_SESSION['fullname'] = htmlspecialchars($_POST['fullname'], ENT_QUOTES); 23 24 if( !$_POST['email'] ) { 25 $errmessage[] = "Eメールを入力してください"; 26 } else if( mb_strlen($_POST['email']) > 200 ){ 27 $errmessage[] = "Eメールは200文字以内にしてください"; 28 } else if( !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ){ 29 $errmessage[] = "メールアドレスが不正です"; 30 } 31 $_SESSION['email'] = htmlspecialchars($_POST['email'], ENT_QUOTES); 32 33 if( !$_POST['message'] ){ 34 $errmessage[] = "お問い合わせ内容を入力してください"; 35 } else if( mb_strlen($_POST['message']) > 500 ){ 36 $errmessage[] = "お問い合わせ内容は500文字以内にしてください"; 37 } 38 $_SESSION['message'] = htmlspecialchars($_POST['message'], ENT_QUOTES); 39 40 if( $errmessage ){ 41 $mode = 'input'; 42 } else { 43 $mode = 'confirm'; 44 } 45 } else if( isset($_POST['send']) && $_POST['send'] ){ 46 // 送信ボタンを押したとき 47 $message = "お問い合わせを受け付けました \r\n" 48 . "名前: " . $_SESSION['fullname'] . "\r\n" 49 . "電話: " . $_SESSION['tel'] . "\r\n" 50 . "email: " . $_SESSION['email'] . "\r\n" 51 . "都道府県: " . $_SESSION['place'] . "\r\n" 52 . "お問い合わせ内容:\r\n" 53 . preg_replace("/\r\n|\r|\n/", "\r\n", $_SESSION['message']); 54 55 mail($_SESSION['email'],'お問い合わせありがとうございます',$message); 56 mail('〇〇@gmail.com','お問い合わせありがとうございます',$message); 57 $_SESSION = array(); 58 $mode = 'send'; 59 } else { 60 $_SESSION['fullname'] = ""; 61 $_SESSION['tel'] = ""; 62 $_SESSION['email'] = ""; 63 $_SESSION['place'] = ""; 64 $_SESSION['message'] = ""; 65 } 66?> 67 68</head> 69 70<body id="page_contact"> 71<section class="form_body config"> 72 73 <?php if( $mode == 'input' ){ ?> 74 <!-- 入力画面 --> 75 <?php 76 if( $errmessage ){ 77 echo '<div style="color:red;">'; 78 echo implode('<br>', $errmessage ); 79 echo '</div>'; 80 } 81 ?> 82 83 <div id="contact-title"> 84 <h1><p>Contact</p></h1> 85 </div> 86 <form action="" method="post" class="nyuryoku"> 87<!-- --> 88<div class="form_wrap"> 89 <dl> 90 <dt><span class="req">必須</span>お名前</dt> 91 <dd><input size="20" class="name" type="text" name="お名前" value="<?php echo $_SESSION['fullname'] ?>"></dd> 92 </dl> 93 <dl> 94 <dt><span class="req">必須</span>電話番号</dt> 95 <dd><input size="20" type="text" name="電話番号" value="<?php echo $_SESSION['tel'] ?>"></dd> 96 </dl> 97 <dl> 98 <dt><span class="req">必須</span>メールアドレス</dt> 99 <dd><input size="20" type="text" name="Email" value="<?php echo $_SESSION['email'] ?>"></dd> 100 </dl> 101 <dl> 102 <dt><span class="req">必須</span>取得希望の都道府県名</dt> 103 <dd><input size="20" type="text" name="取得希望の都道府県名" value="<?php echo $_SESSION['place'] ?>"></dd> 104 </dl> 105 <dl> 106 <dt><span class="req">必須</span>お問い合わせ内容</dt> 107 <dd><textarea name="お問い合わせ内容" cols="50" rows="10" value="<?php echo $_SESSION['message'] ?>"></textarea></dd> 108 </dl> 109 </div> 110 <div class="sendto"> 111<input type="submit" name="confirm" value="入力内容確認"></div> 112 </form> 113 <?php } else if( $mode == 'confirm' ){ ?> 114 <!-- 確認画面 --> 115 <form action="" class="confirm" method="post"> 116 名前: <?php echo $_SESSION['fullname'] ?><br> 117 電話:  <?php echo $_SESSION['tel'] ?><br> 118 場所:<?php echo $_SESSION['place'] ?><br> 119 Eメール:<?php echo $_SESSION['email'] ?><br> 120 お問い合わせ内容<br> 121 <?php echo nl2br($_SESSION['message']) ?><br> 122 <input type="submit" class="back" name="back" value="戻る" /> 123 <input type="submit" class="send"name="send" value="送信" /> 124 </form> 125 <?php } else { ?> 126 <!-- 完了画面 --> 127 <h6>送信しました。 128 <br>お問い合わせありがとうございました。 129 <a href="http://〇〇.net/" class="btn04 home"><span>TOPへ</span></a></h6> 130 <?php } ?> 131 132 </section> 133</body> 134</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

input タグの name="hoge" と $_POST['hoge'] は同じものをかいてください。

投稿2022/03/12 20:25

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanasiki

2022/03/13 01:09

早急な回答ありがとうございました。 お陰様で問題なく問い合わせフォームが完成しました。 お忙しい中、本当にありがとうございます。
guest

0

$_POSTをvar_dump()してみてください。
どういう形で値がセットされているか見えます。

PHPに限りませんが、formリクエストはname属性の属性値がキーとしてセットされ、value属性の属性値がそのキーで参照できる値になります。

投稿2022/03/12 20:49

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問