前提・実現したいこと
セレクトボックスの値が取得できないので取得できるようにしたい。
発生している問題・エラーメッセージ
確認ボタンを押すと「お問い合わせ項目を選択してください。」と出て先に進めません。
該当のソースコード
<html> <head> <body> <?php session_start(); $mode = 'input'; $errmessage = array(); if( isset($_POST['back']) && $_POST['back'] ){ // 何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ // 確認画面 if( !$_POST['fullname'] ) { $errmessage[] = "名前を入力してください"; } else if( mb_strlen($_POST['fullname']) > 100 ){ $errmessage[] = "名前は100文字以内にしてください"; } $_SESSION['fullname'] = htmlspecialchars($_POST['fullname'], ENT_QUOTES); if( !$_POST['email'] ) { $errmessage[] = "Eメールを入力してください。"; } else if( mb_strlen($_POST['email']) > 200 ){ $errmessage[] = "Eメールは200文字以内にしてください。"; } else if( !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ){ $errmessage[] = "メールアドレスが不正です。"; } $_SESSION['email'] = htmlspecialchars($_POST['email'], ENT_QUOTES); if( !$_POST['tel'] ) { $errmessage[] = "電話番号を入力してください。"; } else if( mb_strlen($_POST['tel']) > 12 ){ $errmessage[] = "電話番号は12桁以内にしてください。。"; } if(isset($_POST['cs'])) { $errmessage[] = "お問い合わせ項目を選択してください。"; echo 'お問い合わせ項目:' . $cs; } else { $errmessage[] = "お問い合わせ項目が選択されていません。"; } if( !$_POST['message'] ){ $errmessage[] = "お問い合わせ内容を入力してください。"; } else if( mb_strlen($_POST['message']) > 1000 ){ $errmessage[] = "お問い合わせ内容は1000文字以内にしてください"; } $_SESSION['message'] = htmlspecialchars($_POST['message'], ENT_QUOTES); if( $errmessage ){ $mode = 'input'; } else { $mode = 'confirm'; } } else if( isset($_POST['send']) && $_POST['send'] ){ // 送信ボタンを押したとき $message = "お問い合わせを受け付けました。 \r\n" . "名前: " . $_SESSION['fullname'] . "\r\n" . "email: " . $_SESSION['email'] . "\r\n" . "tel: " . $_SESSION['tel'] . "\r\n" . "お問い合わせ項目: " . $_SESSION['cs'] . "\r\n" . "お問い合わせ内容:\r\n" . preg_replace("/\r\n|\r|\n/", "\r\n", $_SESSION['message']); mail($_SESSION['email'],'お問い合わせありがとうございます。',$message); mail('aaaaa@gmail.com','お問い合わせありがとうございます。',$message); $_SESSION = array(); $mode = 'send'; } else { $_SESSION['fullname'] = ""; $_SESSION['email'] = ""; $_SESSION['tel'] = ""; $_SESSION['cs'] = ""; $_SESSION['message'] = ""; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>お問い合わせフォーム</title> </head> <body> <?php if( $mode == 'input' ){ ?> <!-- 入力画面 --> <?php if( $errmessage ){ echo '<div style="color:red;">'; echo implode('<br>', $errmessage ); echo '</div>'; } ?> <form action="./page-contact.php" method="post"> 名前 <input type="text" name="fullname" value="<?php echo $_SESSION['fullname'] ?>"> Eメール <input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"> 電話番号 <input type="tel" name="tel" value="<?php echo $_SESSION['tel'] ?>"> お問い合わせ項目<select name= "cs"> <option value = "映画">映画</option> <option value = "アニメ">アニメ</option> <option value = "音楽">音楽</option> <option value = "絵画">絵画</option> <option value = "その他">その他</option> </select> お問い合わせ内容 <textarea cols="40" rows="8" name="message"><?php echo $_SESSION['message'] ?></textarea> <input type="submit" name="confirm" value="確認" /> </form> <?php } else if( $mode == 'confirm' ){ ?> <!-- 確認画面 --> <form action="./page-contact.php" method="post"> 名前<?php echo $_SESSION['fullname'] ?> Eメール <?php echo $_SESSION['email'] ?> 電話番号 <?php echo $_SESSION['tel'] ?> お問い合わせ項目 <?php echo $_SESSION['cs'] ?> お問い合わせ内容 <?php echo nl2br($_SESSION['message']) ?> <input type="submit" name="back" value="戻る" /> <input type="submit" name="send" value="送信" /> </form> <?php } else { ?> <!-- 完了画面 --> 送信しました。お問い合わせありがとうございました。<br> <?php } ?> </body> </html>
試したこと
ここに問題に対して試したことを記載してください。
. "お問い合わせ項目: " . $_SESSION['cs'] . "\r\n"
これを追加しましたが、取得はできていないようでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/11/14 00:25