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

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

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

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

HTML

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

Q&A

解決済

1回答

844閲覧

【フォームページ作成】確認ページで「Notice: Undefined」のエラーが出て入力内容が反映されない

billytoshio

総合スコア14

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

HTML

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

0グッド

0クリップ

投稿2020/02/06 14:15

前提・実現したいこと

PHPの初心者です。
フォームページを作成しており、ページの階層は下記です。
「入力ページ(index.php)」→「確認ページ(formmail.php)」→「完了ページ」

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

入力ページから確認ページに遷移すると、確認ページの全ての$_POST["*****"]部分に「Notice: Undefined index: ******* in*******」と表示され、入力内容が反映されません。

そのため下記2点が分からずにおります。
・それぞれの$_POST["*****"]がなぜ未定義になるのか
・確認ページで確認すると「index.php」→「formmail.php」とリダイレクトしているようで、直接「formmail.php」に遷移していないのはなぜか
※自分なりの理由としてはリダイレクトしてしまっていることが起因していると考えております

該当のソースコード

PHP

1<?php 2 3error_reporting(E_ALL & ~E_NOTICE); 4 5if($_SERVER['REQUEST_METHOD']=="POST") { 6 7$company = $_POST['company']; 8 9if(!empty($_POST)){ 10 //エラー項目の確認 11 //ニックネームが空の場合 12 if($_POST['company'] == '') { 13 $error['company'] = 'blank'; 14 } 15 16 //名前が空の場合 17 if($_POST['name'] == '') { 18 $error['name'] = 'blank'; 19 } 20 21 //ふりがなが空の場合 22 if($_POST['kana'] == '') { 23 $error['kana'] = 'blank'; 24 } 25 26 //Emailが空の場合 27 if($_POST['email1'] == '') { 28 $error['email1'] = 'blank'; 29 } 30 31 //Email(確認)が空の場合 32 if($_POST['email2'] == '') { 33 $error['email2'] = 'blank'; 34 } 35 36 //お問合せ内容が空の場合 37 if($_POST['textarea'] == '') { 38 $error['textarea'] = 'blank'; 39 } 40 41 //エラーがない場合は確認ページへページ遷移 42 if(empty($error)){ 43 $_SESSION['join'] = $_POST; 44 header('Location: formmail.php'); 45 } 46} 47} 48?> 49<!DOCTYPE HTML> 50<html lang="ja"> 51<head> 52<meta charset="UTF-8"> 53<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 54<link rel="stylesheet" type="text/css" href="./css_files/index.css"> 55</head> 56<body> 57<h2 class="contact_title">お問い合わせ</h2> 58<div class="contactform"> 59<form action="" method="post"> 60 <dl> 61 <dt>会社名<span class="required2"><strong></strong></span></dt> 62 <dd><input type="text" name="company" value="<?php echo htmlspecialchars($_POST['company'], ENT_QUOTES, 'UTF-8');?>"> 63 <?php if(isset($error['company']) == 'blank'): ?> 64 <p class="error">※会社名を入力して下さい。</p> 65 <?php endif; ?> 66 </dd> 67 </dl> 68 <dl> 69 <dt>部署名</dt> 70 <dd><input type="text" name="department" value=""></dd> 71 </dl> 72 <dl> 73 <dt>お名前<span class="required2"><strong></strong></span></dt> 74 <dd><input type="text" name="name" value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');?>"> 75 <?php if(isset($error['name']) == 'blank'): ?> 76 <p class="error">※お名前を入力して下さい。</p> 77 <?php endif; ?> 78 </dd> 79 </dl> 80 <dl> 81 <dt>ふりがな<span class="required2"><strong></strong></span></dt> 82 <dd><input type="text" name="kana" value="<?php echo htmlspecialchars($_POST['kana'], ENT_QUOTES, 'UTF-8');?>"> 83 <?php if(isset($error['kana']) == 'blank'): ?> 84 <p class="error">※ふりがなを入力して下さい。</p> 85 <?php endif; ?> 86 </dd> 87 </dl> 88 <dl> 89 <dt>Email<span class="required2"><strong></strong></span></dt> 90 <dd><input type="text" name="email1" value="<?php echo htmlspecialchars($_POST['email1'], ENT_QUOTES, 'UTF-8');?>"> 91 <?php if(isset($error['email1']) == 'blank'): ?> 92 <p class="error">※Emailを入力して下さい。</p> 93 <?php endif; ?> 94 </dd> 95 </dl> 96 <dl> 97 <dt>Email(確認)<span class="required2"><strong></strong></span></dt> 98 <dd><input type="text" name="email2" value="<?php echo htmlspecialchars($_POST['email2'], ENT_QUOTES, 'UTF-8');?>"> 99 <?php if(isset($error['email2']) == 'blank'): ?> 100 <p class="error">※Email(確認)を入力して下さい。</p> 101 <?php endif; ?> 102 </dd> 103 </dl> 104 <dl> 105 <dt>お電話番号</dt> 106 <dd><input type="text" name="phone" value=""></dd> 107 </dl> 108 <dl> 109 <dt>お問合せ内容<span class="required2"><strong></strong></span></dt> 110 <dd><textarea name="textarea" cols="5" rows="2" value="<?php echo htmlspecialchars($_POST['textarea'], ENT_QUOTES, 'UTF-8');?>"></textarea> 111 <?php if(isset($error['textarea']) == 'blank'): ?> 112 <p class="error">※お問合せ内容を入力して下さい。</p> 113 <?php endif; ?> 114 </dd> 115 </dl> 116 </div> 117 <p><input type="submit" name="Submit2" value="入力内容を確認する" /></p> 118</form> 119</body> 120</html>

該当のソースコード

PHP

1<!DOCTYPE HTML> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6<link rel="stylesheet" type="text/css" href="./css_files/index.css"> 7</head> 8<body> 9<div class="contact"> 10 <h2 class="contact_title">お問い合わせ</h2> 11</div> 12 13<div class="contactform_confirm"> 14<form action="send.php" method="post"> 15 <dl> 16 <dt>会社名</dt> 17 <dd> <?php echo $_POST["company"]; ?></dd> 18 </dl> 19 <dl> 20 <dt>部署名</dt> 21 <dd> <?php echo $_POST["department"]; ?></dd> 22 </dl> 23 <dl> 24 <dt>お名前</dt> 25 <dd> <?php echo $_POST["name"]; ?></dd> 26 </dl> 27 <dl> 28 <dt>ふりがな</dt> 29 <dd> <?php echo $_POST["kana"]; ?></dd> 30 </dl> 31 <dl> 32 <dt>Email</dt> 33 <dd> <?php echo $_POST["email1"]; ?></dd> 34 </dl> 35 <dl> 36 <dt>お電話番号</dt> 37 <dd> <?php echo $_POST["phone"]; ?></dd> 38 </dl> 39 <dl> 40 <dt>お問合せ内容</dt> 41 <dd class="textarea_dd"><?php echo nl2br($_POST["textarea"]); ?></dd> 42 </dl> 43 </div> 44 45 <div class="button"> 46 <div class="fix"> 47 <p><input type="button" onclick="history.back()" value="修正する" ></p> 48 </div> 49 50 <div class="send"> 51 <p><input type="submit" name="send" value="送信する" ></p> 52 </div> 53 </div> 54</form> 55</body> 56</html>

試したこと

検索してみても分からずのため有益に試せたことはありません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

入力内容が反映されません。

header('Location: formmail.php');はPOSTにならないからです。

投稿2020/02/06 14:24

kei344

総合スコア69407

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

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

billytoshio

2020/02/06 15:23

早急にご回答くださり本当にありがとうございます! ご指摘箇所を修正し、無事解決出来ました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問