こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ホームページ 入力フォームに入力された情報受け取り

ホームページの入力フォーム作成で入力フォーム→確認画面の表示するコードを書いているのですが、実際に書いたコードは一番下のURLにあります」

書き方は下のURL(1)のサイトに載っている書き方と全く同じコードを書いているのですが(少し変えてますが)
(1)https://www.web-officer.com/php/how-to-make-inquiry-form.php


contact.htmlファイル内のcheck _contactform l という名前の関数 は起動します。

しかし

confirmation.phpという確認画面表示のphpファイルに以下のphpのコードを書くと
確認画面が表示された際に初めの入力フォームに入力した情報が確認画面に送られると思うのですが、確認画面に情報が表示されません。送付画像のように確認画面に入力した情報が表示されません。やり方が間違っているのでしょうか?それともコードの記載場所やコード自体が間違っているのでしょうか?
先に進まず途方に暮れています。

詳しいかた、回答よろしくお願いします。すごく困っています。

以下記載した情報受け取りコード(confirmation.phpに記載URL内の赤枠)
<?php
$name = $_POST['name'];    名前
$furigana = $_POST['furigana']; フリガナ
$tel = $_POST['tel'];       電話番号
$address = $_POST['address']; メールアドレス
$pay = $_POST['pay'];     クレジットカード
?>


ベースファイル「contact.html」(入力フォーム、check_contactform関数のコード)

https://drive.google.com/file/d/1IXzx3OV6Ue9u4RvSb1SxmAo2PncceB8Z/view?usp=sharing


「confirmation.php」(入力フォームの確認画面の表示)

https://drive.google.com/file/d/1FDA_K4yHDERMMmWHssu-fh113BE7wwnH/view?usp=sharing

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2020-05-17 11:46:01

QNo.9749630

困ってます

質問者が選んだベストアンサー

PHP部分の
$name = $_POST['name'];
これらは、「変数に値を代入しているだけ」
なので、どこにも表示はされませんよ!
なので、

そもそも、その変数があるか?ないか?を判定して、
if (isset($_POST['name'])) $name=...
else $name="";

と初期化します。

<input type="text" name="name" readonly="readonly" value=""/><br />

value="" ここが空っぽだから表示されてないだけですので、
value="<?= $name; ?>"
に置き換えればOKです。
<?=は
<?php echo の略です。

その他のフィールドもそれでOKです。
だから!逆に言えば、変数があるかないか?を
判定できるなら、その時点でバリデーションができるんですよ。
さっきのを、拡張します。
if (isset($_POST['name'])) $name=$_POST['name']);
else{
$name="";
echo "名前を入力してください";
}
<input type="text" name="name" readonly="readonly" value="<?= $name; ?>"/><br />
って感じで。

ってことは、エラーチェックしてるので、
最後に1つでもエラーがあるなら「戻る」が表示され、
1つもエラーがなければ「これで決定」のボタンを
送り出せば、思ったイメージに近い?と思います。

ただし、確認画面で、値を送るとPOSTエディターで簡単に
捏造できちゃうので、安全性には問題が出ますが、
まずは、上のやり方で思ってる通りのフローができると思うので、
Go!です。

投稿日時 - 2020-05-17 12:58:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問