2

私は奇妙な問題を抱えています。スクリプト$.post()から変数を送受信するためにjqueryを使用しています。PHP

JavaScript:

$("#r_submit").click(function()
{
    $.post("http://" + server + "/msws/", 
    {
        action: "register",
        sub_action: "register_validate"
    },
    function(json) 
    {
        json = $.parseJSON(json);
        alert(json.cell_is_good);
    });
});

PHP

http://textuploader.com/?p=6&id=S7zDD

問題:

PC (WAMP)でコードを実行すると正常に機能しますが、サーバー(justhost)にアップロードすると、作成時にセッションにアラートを送信してもセッションが保持されませんが、後でセッションを取得しようとすると、セッションが終了しました。サーバーがブラウザーが閉じられたと見なしているため、セッションが破棄されていると考えられます。ありがとうございました :)

4

2 に答える 2

2

セッション ID なしでセッションを開始しています。これを機能させるには、デフォルトで無効になっている透過的なセッション IDを使用するように PHP を構成する必要があります。したがって、AJAX 呼び出しを含むスクリプトでセッションを開始session_id()し、POST 要求で送信し、PHP で次のようにセッションを開始する必要があります。

if (!isset($_POST['SID'])) {
    die('{}');
}
session_start($_POST['SID']);

また、クロスドメインの ajax 呼び出しの問題を回避するために、呼び出している URL のホスト部分を除外します$.post(これもおそらく問題を解決しません)。同じサーバーでのみ機能するため、次のように ajax 呼び出しを記述できます。

$.post("/msws/", //...
于 2012-12-20T19:00:22.330 に答える
0

複数のセッションCookieがあるかどうかを確認してください。

私はcodeigniterでも同じ状況にあり、新しいページごとに独自のセッションが作成されることがわかりました

于 2012-12-20T18:49:29.630 に答える