• 締切済み

GETだと初回しかSubmitが実行されない

テキストフィールドに入力し、検索ボタンを押すと、DBを検索し 値を表示するプログラムをphpに <? if($submit){ (データ取得) $cd = "test" } ?> <form action="XX" method="post"> <input type="text" name="cd" value="<?=$cd;?>"> <input type="submit" value="検索"> </form> のように記述してます。 ボタンを押すとサブミットされDBより取得した内容「test」と表示され、何度押してもリロードされtestと表示されるのに、 methodをgetにすると、2度目以降何度押しても リロードされている様子がありません。 フィールドのテキストを換えて押しても 反応していないようです。 1.なぜgetだと1度目しかSubmitが動かないのでしょうか? 2.どうしたらgetでリロードができるでしょうか?

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>if($submit){ を if($_REQUEST["submit"]){ に変更してみてください もし万が一getやpostで飛んできたデータをそのまま信用して変数名として つかっている(php.iniのregister_globals = Onとしている)なら 危険なのでやめましょう

9pinkapple
質問者

補足

ご指摘ありがとうございました。

回答No.2

ヒント:キャッシュコントロール 9割方推測にすぎませんが。

9pinkapple
質問者

補足

ご指摘ありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>if($submit) のチェックがおかしいんじゃないでしょうか? $submitという変数がどういうものか示されていないのでコレ以上は 正確には指摘できませんが・・・

9pinkapple
質問者

補足

記述ミスがありました。 ×<input type="submit" value="検索"> ○<input type="submit" name="submit" value="検索">

関連するQ&A