- ベストアンサー
HTMLとPHP
こんにちは。いつもお世話になっています。 PHPとHTMLを勉強していてわからないことがあったのでよろしければ教えてください。 POSTでデータを取得するときにデータがあるか無いか判定してから、項目すべてに記入してあれば登録確認ページへ、空欄があればエラーページへいくようなサイトをつくったのですが、確認ページでデータが表示されませんでした。 if(!$_POST['name'] OR !$_POST['passwd'] OR !$_POST['address'] OR !$_POST['tel'] OR !$_POST['email']){ echo ("空欄があります。すべて記入して下さい。"); }else{ header("Location: http://localhost/my/myshop/confirm_user.php"); } エラー表示ページ(error.php)でこのように判定し、空欄がなければエラーページから確認ページ(confirm_user.php)へいくようにしました。 登録フォーム(input.php)で<FORM ACTION="error.php","confirm_user.php" METHOD="post"> としたのですが、2つのPHPにデータを送れないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
前の質問でincludeかrequireを使ったらという回答がありましたが、これらを使えば$_POSTのデータがそのまま使えます。 f(!$_POST['name'] OR !$_POST['passwd'] OR !$_POST['address'] OR !$_POST['tel'] OR !$_POST['email']){ echo ("空欄があります。すべて記入して下さい。"); }else{ require("confirm_user.php"); }
その他の回答 (3)
>がどのようなことを指しているのかわからないので えとですね。 つまり普通の GET で渡すのです。 header("http...yshop/confirm_user.php?name=$_POST['name']&passwd=$_POST['passwd']... とまぁ、このように、引数をそのまま confirm_user.php へ渡すのです。 すると今度は confirm_user.php 側では、$_GET['name'] といった感じで取り出せるようになります。 もっとも、この場合だと error.php と confirm_user.php を統合して1つの php で処理するようにした方がいいと思いますが。
お礼
何度も質問してもお答えいただきありがとうございます。なんとか解決しましたので、質問は終わらせていただきます。今回教えていただいた点は必ず復習してこなせるようにしたいと思います。ありがとうございました。
補足
わざわざありがとうございます。 1つのphp処理とありますが、なにぶん勉強をはじめて間もないのでうまくできなかったので、このような形になったのです。もう少しがんばってみたいと思います。 if(!$_POST['name'] OR !$_POST['passwd'] OR !$_POST['address'] OR !$_POST['tel'] OR !$_POST['email']){ echo ("空欄があります。すべて記入して下さい。"); }else{ header("Location: http://localhost/my/myshop/confirm_user.php?name=$_POST['name']&passwd=$_POST['passwd']....&email=$_POST['email']"); } としてみましたが、エラーがでてしまいました。どこか間違えているのでしょうか・・?
- YSW
- ベストアンサー率23% (33/141)
無理ですね。 解決する方法はいくつかありますが、 ・error.phpは作らずに、confirm_user.phpでエラー処理を同時に行う。 つまり、エラーの場合だけ header("Location: xxx"); でエラー表示に飛ばす。 ・セッション関数を使う。 のどちらかが一般的だと思います。
お礼
回答ありがとうございます。 同時に処理を行おうとやってみましたが、なにぶん勉強始めたばかりでうまくできませんでした。もう少し頑張ってみようと思います。
残念ながら送れません。 それと、ACTION= のところに複数のURLを書くこともできません。 データは error.php からさらに confirm_user.php へ橋渡ししてください。
補足
回答ありがとうございます。 そうですか・・やはり送れないのですね。 自分で試してもエラーがでるか表示されないばかりでしたので、望みをかけて質問した次第であります。 よろしければ >>error.php からさらに confirm_user.php へ橋渡ししてください がどのようなことを指しているのかわからないので教えていただけないでしょうか?よろしくお願いします。
お礼
これは大変失礼いたしました。そのふたつについてはまだ調べていませんでした。きちんと調べてから新たに質問するべきでした・・・とても反省しています。助かりました。ありがとうございました。