- ベストアンサー
jqueryの$.ajaxでPHPに値を渡す方法とは?
- jqueryの$.ajax関数を使って、ajaxでPHPに値を渡す方法を紹介します。
- ブラウザのCookieを無効にした場合において、JavascriptとPHP間のセッションが切断されるかどうかについても検証しました。
- 詳しい方にご教授いただければ幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> クッキーが使えない環境の場合はURLでセッションIDを受け渡す仕組みの筈ですが、 そんな仕組みはないです。 iniの指定で初めて有効になりますが、画面上に見えてしまうのはよろしくないですね。 <input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>" /> <script> function POSTするイベント() { data { 'PHPSESSID' : $("#PHPSESSID").val(), 'check' : check } ・・・ } </script> 的な感じはだめですかね? 他の方もおっしゃっているように > session_use_cookiesもsession_use_only_cookiesもOnになっています。 これではcookieにセッションを書き込もうとしますので、ブラウザがcookieを拒否すれば動かないのは当然の結果になります。 余談ですが・・・ if ($_POST) { じゃなくて if (isset($_POST['check'])) { かな?
その他の回答 (3)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 試してはいないのですが、URLにではなくパラメータに含めてみてはいかがでしょうか。 checkとPHPSESSIDを送信する感じです。
- shimix
- ベストアンサー率54% (865/1590)
>session_use_only_cookiesもOnになっています。 であれば、セッションIDがURLパラメータでは引き渡されないですよね。その状態でCookieが使えなければセッションの利用は無理です。 http://www.php.net/manual/ja/session.idpassing.php
お礼
さっき試してみたので補足事項となりですが、 $.ajax({ type:"POST", url:"test.php?<?=SID?>", (略) とした所、何とかソース上はセッションIDをURLの末尾に付けられましたが、 test.phpに値が渡されていないのは同様でした。 (クッキーを有効にすると渡される) Jqueryのajaxでは、クッキー無効の環境でのセッションやり取り自体が出来ないのでしょうか。
補足
session.use_only_cookiesを0、session.use_trans_sidを1に設定してみましたが、 セッション渡しが出来ていない様です。
- corokorocoro
- ベストアンサー率29% (63/211)
>しかし、ブラウザのCookieを無効(ブロック)に設定した場合のみ、$_SESSION["data"]の中には なに当たり前の事言っているの? セッションってクッキー(セッションID保持のため)使っているの知らないの?
補足
知っています。 クッキーが使えない環境の場合はURLでセッションIDを受け渡す仕組みの筈ですが、 session.use_only_cookiesを0、session.use_trans_sidを1に設定してみても、セッション渡しが出来ていない様です。
お礼
クッキー無効状態ではやはり動作しなかったため、諦める事にしました。 ご回答ありがとうございました。 大変参考になりました。