• ベストアンサー

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にデータを送れないのでしょうか?

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

  • ベストアンサー
  • carroll
  • ベストアンサー率61% (13/21)
回答No.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"); }

shingetsu
質問者

お礼

これは大変失礼いたしました。そのふたつについてはまだ調べていませんでした。きちんと調べてから新たに質問するべきでした・・・とても反省しています。助かりました。ありがとうございました。

その他の回答 (3)

noname#25358
noname#25358
回答No.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 で処理するようにした方がいいと思いますが。

shingetsu
質問者

お礼

何度も質問してもお答えいただきありがとうございます。なんとか解決しましたので、質問は終わらせていただきます。今回教えていただいた点は必ず復習してこなせるようにしたいと思います。ありがとうございました。

shingetsu
質問者

補足

わざわざありがとうございます。 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)
回答No.2

無理ですね。 解決する方法はいくつかありますが、 ・error.phpは作らずに、confirm_user.phpでエラー処理を同時に行う。 つまり、エラーの場合だけ header("Location: xxx"); でエラー表示に飛ばす。 ・セッション関数を使う。 のどちらかが一般的だと思います。

shingetsu
質問者

お礼

回答ありがとうございます。 同時に処理を行おうとやってみましたが、なにぶん勉強始めたばかりでうまくできませんでした。もう少し頑張ってみようと思います。

noname#25358
noname#25358
回答No.1

 残念ながら送れません。  それと、ACTION= のところに複数のURLを書くこともできません。  データは error.php からさらに confirm_user.php へ橋渡ししてください。

shingetsu
質問者

補足

回答ありがとうございます。 そうですか・・やはり送れないのですね。 自分で試してもエラーがでるか表示されないばかりでしたので、望みをかけて質問した次第であります。 よろしければ >>error.php からさらに confirm_user.php へ橋渡ししてください がどのようなことを指しているのかわからないので教えていただけないでしょうか?よろしくお願いします。

関連するQ&A