• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:header(): 条件に当てはまるデータだけを表示するページにリダイレクトするには?)

条件に当てはまるデータだけを表示するページにリダイレクトする方法

このQ&Aのポイント
  • PHP + SQLiteを使用してメールフォームを作成していますが、質問文章の中にある問題についての解決策を教えてください。
  • 作成したPHPファイルの中には、リクエストを登録するフォームA.php、リクエストを検索するフォームB.php、検索結果を表示するフォームC.phpがあります。
  • 問題は、検索結果を表示するC.phpに戻りたいが、header('Location: C.php')ではDBの全レコードを表示してしまうことです。一意に特定できる状態にしてリダイレクトする方法を教えてください。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

補足では、location headerの記述が変わっているけどupdate.phpで作り直していると云うことでしょうか? >header("Location: update.php?var=$RequestNo"); で送っても、if($_GET['var']); で受け取れません。 $RequestNoにデータは入っているのか?とか、送信後のアドレス欄は、以下のようになっていなければなりませんが、ちゃんとquery表示されているのか?とかもチェックしていかないと問題が特定出来ません。 http://*****/update.php?var=3 今更ですけどheaderの発行は、ちゃんと実行されているのですよね? header発行前に何らかの出力が行われていて、ジャンプしてないとかでは無いですよね? 回避策の、D.phpも2.のformと要素名が違ってるので、ちゃんと検索出来てないのでは?? どうも、一連の作業での変数名や、form要素名が一定していないので、よけい混乱しているように見受けます。 0から、データ受け渡しのストーリーをきちんと設計し直した方が早そうな気がする。

2006papiko
質問者

お礼

はい。header の発行は実行されています。 送信後のアドレス欄もhttp://*****/update.php?var=3のように表示されます。 > 回避策の、D.phpも2.のformと要素名が違ってるので、ちゃんと検索出来てないのでは?? 書き間違えました。 実際には、form 名 は 'B' にしていますので、検索はできています。 やはり、設計上、色々と問題があるのですね。 ご指摘、ありがとうございます。もっと勉強します。 現状は、上の回避策で動いているので、これで対応しようと思います。 返信いただき、ありがとうございました。心強かったです。

その他の回答 (1)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

>「一意に特定できる状態にする」 方法 見た限りでは、必要データ送信は出来ているように思うのだけど? あと、リダイレクト時はget送信なので、C.phpはgetでのデータも受け取るようにしないとなりません。此処が出来てないと云うことかな? php4.1.0以降なら、$_POSTを$_REQUESTにすれば、getもpostも同様に受け取れます。

2006papiko
質問者

補足

hrm_mmm様 お返事いただき、ありがとうございます。 > 此処が出来てないと云うことかな? はい。。。 header("Location: update.php?var=$RequestNo"); で送っても、if($_GET['var']); で受け取れません。 「?var=$RequestNo」部分を記述しなければ、この (↓) 状態に戻ってしまいます。 1| ○月○日 | 山本太郎 | 東京都 2| ○月○日 | 川口太郎 | 千葉県 3| ○月○日 | 山田太郎 | 神奈川県 << 変更は反映されている .... $RequestNo が 「3」 だとすると、この (↓) 状態に戻ってほしいのですが、 3| ○月○日 | 山田太郎 | 神奈川県 << 変更は反映されている 回避策として、今は確認ページ (D.php)に飛ばして、そこで、もう一度検索させています。 header("Location: D.php"); D.php ------------- <form name="search" action="C.php" method="post"> <p>更新が完了しました。内容を確認してください。</p> <p><b>校正予約番号</b>: <input type="text" name="RequestNo" value="<?php print(stripslashes($_GET['var'])); ?>"> <input type="hidden" name="rowid" value="<?php print("{$var}"); ?>"> <input type="submit" name="check" value="確認"></p> </form>

関連するQ&A

専門家に質問してみよう