- ベストアンサー
PHP 配列の受け渡し
現在PHPでアンケートフォームを作成しているものです。 フォーム⇒確認画面⇒登録完了画面 と3モジュールを経由します。 配列の受け渡しで問題が発生しています。 フォーム⇒確認画面では問題なく配列の値がわたってきているのですが。 確認画面⇒登録完了画面ではわたってきません。 $a = $HTTP_POST_VARS["a"];(←配列変数:a) <input type=hidden name=a value=$a> とアンケートフォーム、確認画面両モジュールとも上記のような書き方で渡しています。 変数名を変えたりといろいろしていますが うまくいきません。 アドバイスお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
valueがクウォーテーションで囲ってませんが、日本語の場合だと受け渡せないかもしれません。 value="$a" としたほうがよいでしょう。
その他の回答 (3)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
ほとんど解決しているようですが、状況が分からなくなった時の切り分けにはprint_rを使うと良いと思います。 例えば、 print_r($HTTP_POST_VARS); とすれば中に入っているか確認出来るわけです。 ポスト関連は最近ではでは$_POSTが推奨されています。PHPのバージョンによって確認下さい。 また、変数の受け渡しでは過去にregisterglobalがonになっていればPOSTでもGETでも自動的に変数にはいったりしていました。この辺も環境によって違うので確認したほうが良いと思います。 蛇足かもしれませんが。
- ttyp03
- ベストアンサー率28% (277/960)
確認画面で 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)
どこで分かっていないのか特定してください。 $a に渡せないのか、 $HTTP_POST_VARS["a"] に入っていないのか、 <input type=hidden name=a value=$a> で表示されていなのか・・・ あと、$HTTP_POST_VARS["a"]は古いPHPの書き方なので、 $_POST['a']に変えたほうがいいでしょう。
補足
ありがとうございます。 確認画面モジュールの <input type=hidden name=a value=$a> 直前までをデバッグさせてみたら入ってます。 登録完了画面モジュールの $HTTP_POST_VARS["a"] 受け取り時に値が入ってません。 早速$_POST[]に書き換えます。