ここに質問の内容を詳しく書いてください
PHPでお問い合わせフォームを作っています。
確認画面を押した際に確認画面のページに画面が飛ぶようにしたい。
■■な機能を実装中に以下のエラーメッセージが発生しました。
確認画面へのボタンを押すと確認画面のみ消えてプロフィールページから推移しない
実現したいこと
ボタンを押して確認画面へジャンプしたい
HTML CSS PHP ソースコード index.php <div class="my-skill"> <h1 id="im-skill"> Skill </h1> <div class="main-contents"> <!-- main-contents-boxの隣に画像用クラスを設定 --> <div class="main-contents-box HTML"> <img src="img/IMG_4561.JPG"> <p>基本的なコーディングが可能です。<span>使用エディタはVisualStudioCodeです。</span></p> </div> <div class="main-contents-box CSS"> <img src="img/IMG_4562.PNG"> <p>HTMLに合わせた基本的なコーディング<span>が可能です。使用エディタは<span>VisualStudioCodeです。</span></p> </div> <div class="main-contents-box Ruby"> <img src="img/IMG_4563.JPG"> <p>オンラインスクールにて学んだ<span>AWS CLoud9にて投稿フォーム作成<br> が可能です。</span></p> </div> <div class="main-contents-box Adobe-Premiere-Pro"> <img src="img/IMG_4565.PNG"> <p>素材動画に対して、カット、テキスト、<span>効果音を入れサムネイル作成が可能です。<br></span> (YouTuberさんに協力経験有)</p> </div> <div class="main-contents-box DMMWEBCAMP"> <a href="https://www.openbadge-global.com/ns/portal/openbadge/public/assertions/user/NkpwcHVWc055aVdDQUpKMjh3Yld2UT09"> <img src="img/IMG_4566.PNG"> </a> <p>DMMWEBCAMP初めての<span>プログラミングコースオープンバッチ取得。<br></span> (画像リンク有)</p> </div> </div> </div> <?php session_start(); $error = []; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // フォームの送信時にエラーをチェックする if ($post['name'] === '') { $error['name'] = 'blank'; } if ($post['email'] === '') { $error['email'] = 'blank'; } else if (!filter_var($post['email'], FILTER_VALIDATE_EMAIL)) { $error['email'] = 'email'; } if ($post['contact'] === '') { $error['contact'] = 'blank'; } if (count($error) === 0) { // エラーがないので確認画面に移動 $_SESSION['form'] = $post; header('Location: confirm.php'); exit(); } } else { if (isset($_SESSION['form'])) { $post = $_SESSION['form']; } } ?> <body> <!-- お問合せフォーム画面 --> <div class="container"> <form action="" method="POST" novalidate> <div class="contact"> <h1 id="contact"> Contact </h1> <div class="form-group"> <div class="row"> <div class="col-2"> <label for="inputName">お名前</label> </div> <div class="col-2"> <p class="require_item">必須</p> </div> <div class="col-md-8"> <input type="text" name="name" id="inputName" class="form-control" value="<?php echo htmlspecialchars($post['name']); ?>" required autofocus> <?php if ($error['name'] === 'blank') : ?> <p class="error_msg">※お名前をご記入下さい</p> <?php endif; ?> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-2"> <label for="inputEmail">メールアドレス</label> </div> <div class="col-2"> <p class="require_item">必須</p> </div> <div class="col-8"> <input type="email" name="email" id="inputEmail" class="form-control" value="<?php echo htmlspecialchars($post['email']); ?>" required> <?php if ($error['email'] === 'blank') : ?> <p class="error_msg">※メールアドレスをご記入下さい</p> <?php endif; ?> <?php if ($error['email'] === 'email') : ?> <p class="error_msg">※メールアドレスを正しくご記入ください</p> <?php endif; ?> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-2"> <label for="inputContent">お問い合わせ内容</label> </div> <div class="col-2"> <p class="require_item">必須</p> </div> <div class="col-8"> <textarea name="contact" id="inputContent" rows="10" class="form-control" required><?php echo htmlspecialchars($post['contact']); ?></textarea> <?php if ($error['contact'] === 'blank') : ?> <p class="error_msg">※お問い合わせ内容をご記入下さい</p> <?php endif; ?> </div> </div> </div> <div class="row"> <div class="col-8-offset-4"> <button type="submit">確認画面へ</button> </div> </div> </form> </div> </body> </html> </main> </div> </body> </html>
confirm.php
<?php session_start(); // 入力画面からのアクセスでなければ、戻す if (!isset($_SESSION['form'])) { header('Location: index.php'); exit(); } else { $post = $_SESSION['form']; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { // メールを送信する $to = 'me@example.com'; $from = $post['email']; $subject = 'お問い合わせが届きました'; $body = <<<EOT 名前: {$post['name']} メールアドレス: {$post['email']} 内容: {$post['contact']} EOT; // var_dump($body); // exit(); //mb_send_mail($to, $subject, $body, "From: {$from}"); // セッションを消してお礼画面へ unset($_SESSION['form']); header('Location: thanks.html'); exit(); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>お問合せフォーム</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" type="text/css" href="contact.css"> </head> <body> <!-- お問合せフォーム画面 --> <div class="container"> <form action="" method="POST"> <p>お問い合わせ</p> <div class="form-group"> <div class="row"> <div class="col-3"> <label for="inputName">お名前</label> </div> <div class="col-9"> <p class="display_item"><?php echo htmlspecialchars($post['name']); ?></p> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-3"> <label for="inputEmail">メールアドレス</label> </div> <div class="col-9"> <p class="display_item"><?php echo htmlspecialchars($post['email']); ?></p> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-3"> <label for="inputContent">お問い合わせ内容</label> </div> <div class="col-9"> <p class="display_item"><?php echo nl2br(htmlspecialchars($post['contact'])); ?></p> </div> </div> </div> <div class="row"> <div class="col-9 offset-3"> <a href="index.php">戻る</a> <button type="submit">送信する</button> </div> </div> </form> </div> </body> </html>回答1件
あなたの回答
tips
プレビュー