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

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

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

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

1回答

619閲覧

お問い合わせページの php $_GETの値が取得できません

Kinomaru

総合スコア6

PHP

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2021/07/28 16:10

こんにちは、
今phpの練習で簡単なお問い合わせフォームをMAMPを使って作っております。

お問い合わせフォームから、確認画面に跳び
記入事項を修正したい場合に、記入データを保持しながら記入画面に戻るという事をしたいのですが、どうもうまく作動いたしません。

なにかアドバイス頂けたらうれしいです。

php

1//form1.php 2 3<?php 4 session_start(); 5 6 $errors=array(); 7 8 if(isset($_POST["submit"])){ 9 10 $name = $_POST["name"]; 11 $email = $_POST["email"]; 12 $subject = $_POST["subject"]; 13 $body = $_POST["body"]; 14 15// エスケープ 処理 16 $name = htmlspecialchars($name, ENT_QUOTES); 17 $email = htmlspecialchars($email, ENT_QUOTES); 18 $subject = htmlspecialchars($subject, ENT_QUOTES); 19 $body = htmlspecialchars($body, ENT_QUOTES); 20 21//記入欄の記入漏れのチェック 22 if($name === "") { 23 $errors["name"] = "お名前が入力されていません。"; 24 } 25 26 if($email === "") { 27 $errors["name"] = "メールアドレスが入力されていません。"; 28 } 29 30 if($body === "") { 31 $errors["body"] = "お問い合わせが入力されていません。"; 32 } 33 34 if(count($errors) === 0){ 35 $_SESSION["name"] = $name; 36 $_SESSION["email"] = $email; 37 $_SESSION["subject"] = $subject; 38 $_SESSION["body"] = $body; 39 40 header("Location: http://localhost:8888/form/form2.php"); 41 exit(); 42 } 43// 入力画面に戻ったときの記入データの保持 44 if(isset($_GET["action"]) && $_GET["action"] === "edit"){ 45 46 $name = $_SESSION["name"]; 47 $email = $_SESSION["email"]; 48 $subject = $_SESSION["subject"]; 49 $body = $_SESSION["body"]; 50 } 51 52 } 53?> 54 55<!doctype html> 56<html> 57 <head> 58 <meta charset="utf8"> 59 <title>お問い合わせ</title> 60 </head> 61 <body> 62 <?php 63 // 記入漏れがあった場合を知らせる表示 64 echo "<ul>"; 65 foreach ($errors as $value){ 66 echo "<li>"; 67 echo $value; 68 echo "</li>"; 69 } 70 echo "</ul>" 71 ?> 72 <form action="form1.php" method="post"> 73 <table> 74 <tr> 75 <th>お名前</th> 76 <td><input type="text" name="name" value="<?php if(isset($name)){echo $name;} ?>"></td> 77 </tr> 78 <tr> 79 <th>メールアドレス</th> 80 <td><input type="text" name="email" value="<?php if(isset($email)){echo $email;} ?>"></td> 81 </tr> 82 <tr> 83 <th>お問い合わせの種類</th> 84 <td><select name="subject"> 85 <option value="お仕事に関するお問い合わせ"<?php if(isset($subject) && $subject === "お仕事に関するお問い合わせ"){echo "selected";} ?>>お仕事に関するお問い合わせ</option> 86 <option value="その他のお問い合わせ"<?php if(isset($subject) && $subject === "その他のお問い合わせ"){echo "selected";} ?>>その他のお問い合わせ</option> 87 88 </td> 89 </tr> 90 <tr> 91 <th>お問い合わ内容</th> 92 <td><textarea name="body" cols="40" rows="10"><?php if(isset($body)){echo $body;} ?></textarea></td> 93 </tr> 94 <tr> 95 <td colspan="2"> 96 <input type="submit" name="submit" value="確認画面へ"> 97 </td> 98 </tr> 99 </table> 100 </form> 101 </body> 102</html> 103

php

1//form2.php 2 3<?php 4 session_start(); 5 6 if(isset($_SESSION["name"])){ 7 8 $name = $_SESSION["name"]; 9 $email = $_SESSION["email"]; 10 $subject = $_SESSION["subject"]; 11 $body = $_SESSION["body"]; 12 } 13 14?> 15<!doctype html> 16<html> 17 <head> 18 <meta charset="utf8"> 19 <title>確認画面-お問い合わせ-</title> 20 </head> 21 <body> 22 <form action="form3.php" method="post"> 23 <table> 24 <tr> 25 <th>お名前</th> 26 <td><?php echo $name; ?></td> 27 </tr> 28 <tr> 29 <th>メールアドレス</th> 30 <td><?php echo $email; ?></td> 31 </tr> 32 <tr> 33 <th>お問い合わせの種類</th> 34 <td><?php echo $subject; ?></td> 35 </tr> 36 <tr> 37 <th>お問い合わせ内容</th> 38 <td><?php echo nl2br($body); ?></td> 39 </tr> 40 <tr> 41 <td colspan="2"><input type="submit" name="submit" value="送信する"></td> 42 </tr> 43 </table> 44 </form> 45 <p><a href="form1.php?action=edit">入力画面へ戻る</a></p> 46 </body> 47</html> 48

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

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

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

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

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

guest

回答1

0

ベストアンサー

isset($_GET["action"])

if(isset($_POST["submit"])){ … }

の中にあるので、どうやってもtrueで評価されることはないと思います。if文の外に出すなどすればうまく動くようになるかもしれません。form3.phpのエラー処理もありそうな感じなので単純じゃないかもしれませんが。

投稿2021/07/28 16:23

AbeTakashi

総合スコア4539

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

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

Kinomaru

2021/07/28 16:32

早速のご回答ありがとうございます!! おっしゃる通りでした! 外に書いたつもりが、中に書いてしまっていたようです。 動作しないはずですね... 助かりました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問