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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

PHP お問い合わせフォーム 画面推移 できない

SHOGO
SHOGO

総合スコア1

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0リアクション

0クリップ

349閲覧

投稿2022/08/23 05:52

イメージ説明### 前提

ここに質問の内容を詳しく書いてください

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>

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/08/23 08:08

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

m.ts10806

2022/08/23 05:59 編集

推移(すいい)ではなく遷移(せんい)です。 あとコードはマークダウンのcodeにてご提示ください。 質問は編集できますので適宜調整を。
SHOGO

2022/08/23 06:32

質問以外の部分のご指摘ありがとうございます、
javahack

2022/08/23 07:39

コメントする暇があるなら直したら?
m.ts10806

2022/08/23 08:08 編集

先に書いたように、質問は編集できますので。 誤字もそうですが、コードがマークダウンされてないのは「質問として」結構致命的です。伝わるものも正しく伝わらないし、コードのコピペにもかなり手間がかかります。多くの回答者は質問のコードを手元でコピペして再現確認し、そこから解決策を探ります。(それにヘルプページにマークダウン利用推奨は言及されています) 「以外」ではなく「質問内容そのもの」なので、なるべく早急に対応すべき内容ですよ。配慮の問題もあります。 当然ながら誤字のない、コードも見やすい質問内容の方が圧倒的にアドバイスがつきやすくなります。解決も早くなります。 誤字や文章がおかしい、要件が全然伝わらないことで回答がついてない質問はごまんとあります。指摘されても修正しない=解決する気がない と判断されます。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。