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

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

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

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

HTML

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

Q&A

1回答

1065閲覧

HTMLとPHPで作ったお問合せフォームが次のリンクに飛ばない、エラーが反映されない

honpi803

総合スコア0

PHP

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

HTML

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

0グッド

1クリップ

投稿2021/12/07 07:33

編集2021/12/08 01:14

以下のようにPHPとHTMLを使用しお問合せフォームを作りました。(contact.php)
確認するボタンを押すと「confirm.php」へも飛び、contact.phpで打ったものを反映させるようにしたいのですが飛びません。

また、エラー設定もしているのですがエラーが反映されません。

必要に応じgit.hubでの公開も可能です。

php

1<?php 2session_start(); 3$error = []; 4 5if ($_SERVER['REQUEST_METHOD'] === 'POST') { 6 $post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); 7 8 9 if ($post['name'] === '') { 10 $error['name'] = 'blank'; 11 } 12 if ($post['email'] === '') { 13 $error['email'] = 'blank'; 14 } else if (!filter_var($post['email'], FILTER_VALIDATE_EMAIL)) { 15 $error['email'] = 'email'; 16 } 17 if ($post['tel'] === '') { 18 $error['tel'] = 'blank'; 19 } 20 if ($post['contact'] === '') { 21 $error['contact'] = 'blank'; 22 } 23 24 if (count($error) === 0) { 25 26 $_SESSION['form'] = $post; 27 header('Location: confirm.php'); 28 exit(); 29 } 30} else { 31 if (isset($_SESSION['form'])) { 32 $post = $_SESSION['form']; 33 } 34} 35?> 36 37<!DOCTYPE html> 38<html lang="ja"> 39<head> 40 <meta charset="UTF-8"> 41 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 42 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"> 43 <link rel="shortcut icon" href="assets/images/logo2-160x136.png" type="image/x-icon"> 44 <meta name="description" content=""> 45 <title>contact</title> 46 <link rel="stylesheet" href="assets/tether/tether.min.css"> 47 <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> 48 <link rel="stylesheet" href="assets/bootstrap/css/bootstrap-grid.min.css"> 49 <link rel="stylesheet" href="assets/bootstrap/css/bootstrap-reboot.min.css"> 50 <link rel="stylesheet" href="assets/animatecss/animate.css"> 51 <link rel="stylesheet" href="assets/dropdown/css/style.css"> 52 <link rel="stylesheet" href="assets/formstyler/jquery.formstyler.css"> 53 <link rel="stylesheet" href="assets/formstyler/jquery.formstyler.theme.css"> 54 <link rel="stylesheet" href="assets/datepicker/jquery.datetimepicker.min.css"> 55 <link rel="stylesheet" href="assets/theme/css/style.css"> 56 <link rel="preload" href="https://fonts.googleapis.com/css?family=Libre+Baskerville:400,400i,700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'"> 57 <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Libre+Baskerville:400,400i,700&display=swap"></noscript> 58 <link rel="preload" href="https://fonts.googleapis.com/css?family=Roboto+Slab:100,200,300,400,500,600,700,800,900&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'"> 59 <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Slab:100,200,300,400,500,600,700,800,900&display=swap"></noscript> 60 <link rel="preload" as="style" href="assets/mobirise/css/mbr-additional.css"><link rel="stylesheet" href="assets/mobirise/css/mbr-additional.css" type="text/css"> 61</head> 62<body> 63 <section class="extMenu11 menu cid-sPFSaL3757" once="menu" id="extMenu11-8q"> 64 <nav class="navbar navbar-expand beta-menu navbar-dropdown align-items-center navbar-fixed-top navbar-toggleable-sm"> 65 <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> 66 <div class="hamburger"> 67 <span></span> 68 69 <span></span> 70 </div> 71 </button> 72 <div class="menu-logo"> 73 <div class="navbar-brand"> 74 <span class="navbar-logo"> 75 <a href="index.html"> 76 <img src="assets/images/logo2-160x136.png" alt="菜々海" style="height: 6rem;"> 77 </a> 78 </span> 79 <span class="navbar-caption-wrap"> 80 <a class="navbar-caption text-black text-primary display-5" href="index.html">一般社団法人</a> 81 </span> 82 </div> 83 </div> 84 <div class="collapse navbar-collapse" id="navbarSupportedContent"> 85 <ul class="navbar-nav nav-dropdown" data-app-modern-menu="true"> 86 <li class="nav-item"> 87 <a class="nav-link link text-black text-primary display-4" href="index.html">ホーム</a> 88 </li> 89 //省略 90 </ul> 91 <div class="navbar-buttons mbr-section-btn"><a class="btn btn-sm btn-warning display-4" href="contact.html">問い合わせる</a></div> 92 </div> 93 </nav> 94 </section> 95 <section class="content5 cid-sPFS2QoTlQ" id="content5-8p"> 96 <div class="container"> 97 <div class="row justify-content-center"> 98 <div class="col-md-12 col-lg-10"> 99 <p class="mbr-text mbr-fonts-style display-2"><strong>お問い合わせフォーム</strong></p> 100 </div> 101 </div> 102 </div> 103 </section> 104 <section class="form1 directm4_form1 cid-sDvvMLREBx" id="form1-4p"> 105 <div class="container"> 106 <div class="row justify-content-center mt-5"> 107 <div class="col-lg-9 mbr-form form" data-form-type="formoid"> 108 <form action="./contact.php" method="POST"> 109 <div class="row justify-content-center"> 110 <div class="col-md-8"> 111 <p class="mbr-text mbr-fonts-style align-center mb-4 display-7">お客さまからのお問い合わせをお問い合わせフォームにて受け付けております。 112 <br>必要事項をご記入の上、「確認画面」を押してください。&nbsp;&nbsp;</p> 113 <div class="form-row"> 114 </div> 115 <div class="dragArea form-row"> 116 117 118 <div class="col-lg-12 form-group" data-for="name"> 119 <label for="inputName">お名前</label> 120 <input type="text" name="name" id="inputName" class="form-control" value="<?php echo htmlspecialchars($post['name']); ?>" required autofocus> 121 <?php if ($error['name'] === 'blank'): ?> 122 <p class="error_msg">※お名前をご記入下さい</p> 123 <?php endif; ?> 124 </div> 125 126 <div class="col-lg-12 form-group" data-for="email"> 127 <label for="inputName">メールアドレス</label> 128 <input type="email" name="email" id="inputEmail" class="form-control" value="<?php echo htmlspecialchars($post['email']); ?>" required> 129 <?php if ($error['email'] === 'blank'): ?> 130 <p class="error_msg">※メールアドレスをご記入下さい</p> 131 <?php endif; ?> 132 <?php if ($error['email'] === 'email'): ?> 133 <p class="error_msg">※メールアドレスを正しくご記入ください</p> 134 <?php endif; ?> 135 </div> 136 137 <div data-for="tel" class="col-lg-12 form-group"> 138 <label for="inputName">電話番号</label> 139 <input type="tel" name="tel" id="inputName" class="form-control" value="<?php echo htmlspecialchars($post['tel']); ?>" required autofocus> 140 <?php if ($error['tel'] === 'blank'): ?> 141 <p class="error_msg">※電話番号をご記入下さい</p> 142 <?php endif; ?> </div> 143 144 <div class="col-12 form-group" data-for="textarea"> 145 <textarea name="contact" id="inputContent" rows="10" class="form-control" required><?php echo htmlspecialchars($post['contact']); ?></textarea> 146 <?php if ($error['contact'] === 'blank'): ?> 147 <p class="error_msg">※お問い合わせ内容をご記入下さい</p> 148 <?php endif; ?> 149 </div> 150 151 <div class="col-auto mbr-section-btn align-center"> 152 <button type="submit" class="btn btn-md btn-warning display-4">確認画面へ</button> 153 </div> 154 </div> 155 </div> 156 </div> 157 </form> 158 </div> 159 </div> 160 </div> 161</section> 162//フッター省略 163<script src="assets/web/assets/jquery/jquery.min.js"></script> 164<script src="assets/popper/popper.min.js"></script> 165<script src="assets/tether/tether.min.js"></script> 166<script src="assets/bootstrap/js/bootstrap.min.js"></script> 167<script src="assets/smoothscroll/smooth-scroll.js"></script> 168<script src="assets/viewportchecker/jquery.viewportchecker.js"></script> 169<script src="assets/dropdown/js/nav-dropdown.js"></script> 170<script src="assets/dropdown/js/navbar-dropdown.js"></script> 171<script src="assets/touchswipe/jquery.touch-swipe.min.js"></script> 172<script src="assets/formstyler/jquery.formstyler.js"></script> 173<script src="assets/formstyler/jquery.formstyler.min.js"></script> 174<script src="assets/datepicker/jquery.datetimepicker.full.js"></script> 175<script src="assets/theme/js/script.js"></script> 176<script src="assets/formoid/formoid.min.js"></script> 177<div id="scrollToTop" class="scrollToTop mbr-arrow-up"> 178 <a style="text-align: center;"><i class="mbr-arrow-up-icon mbr-arrow-up-icon-cm cm-icon cm-icon-smallarrow-up"></i></a> 179</div> 180<input name="animation" type="hidden"> 181</body> 182</html> 183 184

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

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

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

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

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

miyabi_takatsuk

2021/12/07 08:08 編集

form要素のaction属性が空になっていますが、それは意図的でしょうか?
miyabi_takatsuk

2021/12/07 08:16

わかりました。 もう一点、PHPはPHPとして動作している、ということでよろしいでしょうか?
honpi803

2021/12/07 08:26

クリックする「404お探しのページが見つかりませんでした」になってしまいますが、phpとして動作させます。
miyabi_takatsuk

2021/12/07 09:15

上記二つのコメントの内容も、 質問本文に含めてください。 質問は編集できます。
honpi803

2021/12/07 09:24

ありがとうございます!
honpi803

2021/12/08 01:14

修正いたしました。
guest

回答1

0

構文を見る限りは、
自身に一度アクセスし直す仕様かと思われますので、
form要素のaction属性を修正してください。

html

1<form action="./contact.php" method="POST" novalidate>

これはHTMLの基本ですが、
form要素は、action属性に指定したパスへ、
method属性で指定した方式で、値を送信します。
そして、動き的には、JavaScriptなどで何もしない限りは、
ページ遷移が行われます。

投稿2021/12/07 09:23

miyabi_takatsuk

総合スコア9528

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

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

m.ts10806

2021/12/07 11:20 編集

actionかえるならバリデーション等々移行させないといけませんね。 空、未指定だったので「自身でバリデーションしてOKなら遷移」という仕様と思っていましたが・・ 最近同じような人をみましたけど、別人ですよね多分 https://teratail.com/questions/372132
honpi803

2021/12/07 14:06

別人です。でも他の方も似たような質問をされているのですね。参考に見ています。
miyabi_takatsuk

2021/12/09 01:01

> 自身でバリデーションしてOKなら遷移 空だとそういう動きするんですね… 覚えておこう… > 最近同じような人をみましたけど、別人ですよね多分 気になりはしますが、 なんとなく、参考動画見た限りは、 動画の説明などが不十分なように感じます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問