2012-01-11 13 views
0

セッションID#1を作成するPHPセッションを開始するメインページがあります。私はこれをsession_id()でチェックします。 PHP AJAXスクリプトからこれらのセッション変数にアクセスしたいと思います。これをテストするには、私は単に次のコマンドを実行してください:AJAX PHPスクリプトでメインページと同じセッションを使用する

session_start(); 
echo session_id(); 

このAJAXスクリプトです。これは、異なるAJAXセッションIDを返します。

メインページからAJAXスクリプトにセッションIDを渡すことができます。 AJAXスクリプトをデフォルトで同じセッションを開く別の方法はありますか?

私はこれをJavascriptで行います。具体的には、JQGridの追加/編集スクリプトです。

+0

どのように呼び出しを行っていますか? JS経由の場合は、同じセッションIDを持つ必要があります。点滅している場合は、それは異なります。 – usoban

+0

これは、セッションCookieのスコープと関連しています。あなたのAJAX呼び出しによって呼び出された場所は、セッションクッキーの範囲外にあることは明らかです。これを修正するには、クッキーの[範囲を広げる](http://php.net/session-set-cookie-params)または既存のスコープ内に収まるようにターゲットの場所を変更します。また、セッションIDをAJAX要求のGETまたはPOSTパラメータとして手動で渡すこともできます。クッキースコープの詳細はこちら[http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path] – DaveRandom

+0

@DaveRandom - Cookieスコープに関する情報をありがとう。私はこれが問題でなければならないと思う。セッション変数はweb root - > index.phpファイルで定義され、AJAXスクリプトはWebルートのサブフォルダにあります。私は範囲を広げようとします。私はあなたが答えとしてあなたのコメントを投稿できると思います。 –

答えて

1

これは簡単です。

ajaxで、あなたのsession_idをajax PHPに投稿してください。 AjaxのPHPで

はそれが好きな設定:SESSION_ID($ _ REQUEST [ 'SID'])

あなたは、同じセッションである

+0

私はこれをしましたが、セッションはまだ空です!私はほとんどそれを保存するためにあきらめています.. – user109764

関連する問題