• ベストアンサー

PHP 配列の受け渡し

現在PHPでアンケートフォームを作成しているものです。 フォーム⇒確認画面⇒登録完了画面 と3モジュールを経由します。 配列の受け渡しで問題が発生しています。 フォーム⇒確認画面では問題なく配列の値がわたってきているのですが。 確認画面⇒登録完了画面ではわたってきません。 $a = $HTTP_POST_VARS["a"];(←配列変数:a) <input type=hidden name=a value=$a> とアンケートフォーム、確認画面両モジュールとも上記のような書き方で渡しています。 変数名を変えたりといろいろしていますが うまくいきません。 アドバイスお願いします。

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

valueがクウォーテーションで囲ってませんが、日本語の場合だと受け渡せないかもしれません。 value="$a" としたほうがよいでしょう。

その他の回答 (3)

回答No.4

ほとんど解決しているようですが、状況が分からなくなった時の切り分けにはprint_rを使うと良いと思います。 例えば、 print_r($HTTP_POST_VARS); とすれば中に入っているか確認出来るわけです。 ポスト関連は最近ではでは$_POSTが推奨されています。PHPのバージョンによって確認下さい。 また、変数の受け渡しでは過去にregisterglobalがonになっていればPOSTでもGETでも自動的に変数にはいったりしていました。この辺も環境によって違うので確認したほうが良いと思います。 蛇足かもしれませんが。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

確認画面で hidden の箇所は <form>~</form> 内に入っていますか? つまり、 <input type=hidden name=a value=$a>  ~ <form> <input type="submit"> </form> ってな感じになってないですか? こんな感じになってるか確認してみてください。 <form> <input type=hidden name=a value=$a> <input type="submit"> </form>

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

どこで分かっていないのか特定してください。 $a に渡せないのか、 $HTTP_POST_VARS["a"] に入っていないのか、 <input type=hidden name=a value=$a> で表示されていなのか・・・ あと、$HTTP_POST_VARS["a"]は古いPHPの書き方なので、 $_POST['a']に変えたほうがいいでしょう。

fm0606
質問者

補足

ありがとうございます。 確認画面モジュールの <input type=hidden name=a value=$a> 直前までをデバッグさせてみたら入ってます。 登録完了画面モジュールの $HTTP_POST_VARS["a"] 受け取り時に値が入ってません。 早速$_POST[]に書き換えます。

専門家に質問してみよう