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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

611閲覧

PHPを使ってフォームの実装

daiki0919

総合スコア2

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2022/02/15 07:38

編集2022/02/16 07:35

前提・実現したいこと

現在PHPを使ってフォームを作成しているのですが、送信ボタンを押した時に確認ページに飛ばし内容確認した後フォーム送信完了というページを作成しています。

contact.php → confirm.php → complete.phpという流れです。

どなたか分かる方いましたらご教授お願い致します。

発生している問題・エラーメッセージ

現状、contact.phpのフォーム画面にあります送信を押すとjsファイルで書いたアラートメッセージしか表示されずcomfirm.phpファイルに遷移されません。

該当のソースコード

ソースコード ```contact.php <?php session_start(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>お問い合わせ</title> <link rel="stylesheet" href="contact.css"> </head> <body> <?php include("header.php");?> <div class="contact_box"> <h2>お問い合わせ</h2> <form action="confirm.php" method="POST"> <h3>下記の項目をご記入の上送信ボタンを押してください</h3> <p>送信頂いた件につきましては、当社より折り返しご連絡を差し上げます。</p> <p>なお、ご連絡までにお時間頂く場合もございますので予めご了承ください。</p> <p> <span class="required">*</span> は必須項目となります。 </p> <dl> <dt> <?php if (!empty($_SESSION["button"])) { if (empty($_SESSION["name"]) || mb_strlen($_SESSION["name"]) > 10) { echo '<font color = "red">氏名は必須入力です。10文字以内でご入力ください。</font> '; } } ?> </dt> <dt> <label for="name">氏名</label> <span class="required">*</span> </dt> <dd> <input type = "text" name = "name" id = "name" placeholder="山田太郎" value = "<?php if (isset($_SESSION["name"])) { echo $_SESSION["name"]; }?>"> </dd> </dl> <dl> <dt> <label for="kana">フリガナ</label> <span class="required">*</span> </dt> <dt> <?php if (!empty($_SESSION["button"])) { if (empty($_SESSION["kana"]) || mb_strlen($_SESSION["kana"]) > 10) { echo '<font color = "red">フリガナは必須入力です。10文字以内でご入力ください。</font> '; } } ?> </dt> <dd> <input type = "text" name = "kana" id = "kana" placeholder="ヤマダタロウ" value = "<?php if (isset($_SESSION["kana"])) { echo $_SESSION["kana"]; }?>"> </dd> </dl> <dl> <dt> <label for="tel">電話番号</label> <span class="required">*</span> </dt> <dt> <?php if (!empty($_SESSION["button"])) { if (empty($_SESSION["tel"])) { } elseif (!preg_match("/\A[0-9]+\z/", $_SESSION["tel"])) { echo '<font color = "red">電話番号は0-9の数字のみでご入力ください。</font> '; } } ?> </dt> <dd> <input type = "text" name = "tel" id = "tel" placeholder="09012345678" maxlength="11" value = "<?php if (isset($_SESSION["tel"])) { echo $_SESSION["tel"]; }?>"> </dd> </dl> <dl> <dt> <label for="mail">メールアドレス</label> <span class="required">*</span> </dt> <dt> <?php if (!empty($_SESSION["button"])) { if (empty($_SESSION["mail"]) || !preg_match("/\A([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9])+([a-zA-Z0-9._-])+([a-zA-Z0-9])+\z/", $_SESSION["mail"])) { echo '<font color = "red">メールアドレスは正しくご入力ください。</font> '; } } ?> </dt> <dd> <input type = "text" name = "mail" id = "mail" placeholder="test@test.co.jp" value = "<?php if (isset($_SESSION["mail"])) { echo $_SESSION["mail"]; }?>"> </dd> </dl> <h3> <label for="body"> お問い合わせ内容をご記入ください。 <span class="required">*</span> </label> </h3> <dl class="body"> <dt> <?php if (!empty($_SESSION["button"])) { if (empty($_SESSION["body"])) { echo '<font color = "red">お問い合わせは必須入力です。</font> '; } } ?> </dt> <dd> <textarea name = "body" id = "body"><?php if (isset($_SESSION["body"])) { echo $_SESSION["body"]; }?></textarea> </dd> <dd> <button type="submit" onclick="func1()">送信</button> </dl> </form> </div> <?php include("footer.php");?> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript" src="contact.js"></script> </body> </html>

confirm.php

1 2 3 4<?php 5session_start(); 6 7if (!isset($_SESSION['form'])) { 8 header('Location: contact.php'); 9 exit(); 10} else { 11 $post = $_SESSION['form']; 12} 13 14 15?> 16 17 18 19<!DOCTYPE html> 20<html lang="ja"> 21<head> 22<meta charset="utf-8"> 23<title>Lesson Sample Site</title> 24<link rel="stylesheet" href="confirm.css"> 25</head> 26<body id="app" class="vsc-initialized"> 27 <?php include("header.php");?> 28 <section> 29 <div class="contact_box"> 30 <h2>お問い合わせ</h2> 31 <form action="./complete.php" method="post"> 32 <p>下記の内容をご確認の上送信ボタンを押してください</p> 33 <p>内容を訂正する場合は戻るを押してください。</p> 34 <dl class="confirm"> 35 <dt>氏名</dt> 36 <dd><?php echo htmlspecialchars($_SESSION["name"]); ?></dd> 37 <dt>フリガナ</dt> 38 <dd><?php echo htmlspecialchars($_SESSION["kana"]); ?></dd> 39 <dt>電話番号</dt> 40 <dd><?php echo htmlspecialchars($_SESSION["tel"]); ?></dd> 41 <dt>メールアドレス</dt> 42 <dd><?php echo htmlspecialchars($_SESSION["mail"]); ?></dd> 43 <dt>お問い合わせ内容</dt> 44 <dd><?php echo htmlspecialchars($_SESSION["body"]); ?></dd> 45 <dd class="confirm_btn"> 46 <button type="submit">送 信</button> 47 <a href="contact.php">戻 る</a> 48 </dd> 49 </dl> 50 </form> 51 </div> 52 </section> 53 <?php include("footer.php");?> 54</body> 55</html> 56 57

contact.js

1 2 3 4const func1 = () => { 5 if(( document.querySelector('#name').value.length ) || ( document.querySelector('#kana').value.length ) || ( document.querySelector('#tel').value.length ) || ( document.querySelector('#email').value.length ) || ( document.querySelector('#contact').value.length )){ 6 alert('氏名は必須入力です。10文字以内で入力してください。\nフリガナは必須入力です。10文字以内で入力してください。\n電話番号は0-9の数字のみで入力してください。\nメールアドレスは正しく入力してください。\nお問い合わせ内容は必須入力です。'); 7 } 8} 9

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

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

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

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

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

m.ts10806

2022/02/15 07:42

コードブロックはファイルごとに分けてください。 あと、Javascriptのコードも提示してください
daiki0919

2022/02/15 08:13

修正しました。お願い致します!
m.ts10806

2022/02/15 08:31

まだコードブロック1つに全部のコード入ってます。
daiki0919

2022/02/16 07:36

修正致しました。 遅くなってしまい申し訳ございません。 宜しくお願い致します。
guest

回答2

0

ベストアンサー

「入力」から「確認」に飛ばすと、バリデート結果が正しくなくても再入力がしづらいですね
「入力」からは自分自身にとばし、問題なければセッションにデータを埋めて「確認」にわたし
そこから「登録」に移動しセッションデータをけして「完了」に移動してください

投稿2022/02/15 10:49

yambejp

総合スコア114829

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

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

daiki0919

2022/02/16 07:38

ご回答ありがとうございます。 申し訳ございません。 プログラミング初学者でご指摘いただいてる内容があまり理解できません。
yambejp

2022/02/16 08:13

質問は流れについてではないのですか? 何をお聞きになりたいのでしょうか?
guest

0

comfirm.phpファイルに遷移されません。

遷移しています。
が、$_SESSION['form']confirm.phpの以下部分でしか出てきてない($_SESSION['form']へセットする処理がない)ので、必ずcontact.phpへリダイレクトされます。

php

1<?php 2session_start(); 3 4if (!isset($_SESSION['form'])) { 5 header('Location: contact.php'); 6 exit(); 7} else { 8 $post = $_SESSION['form']; 9}

投稿2022/02/15 08:48

Y.H.

総合スコア7914

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

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

daiki0919

2022/02/16 07:39

ご回答ありがとうございます。 $_SESSION['form'] こちらをcontact.phpに追記し confirm.phpに記載されている$_SESSION['form']こちらを消せばいいということでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問