2016-07-14 12 views
0

私は昨日から奇妙な状況に陥りました。そのクッキーが設定されていないのは本当に恥ずかしいことです。PHPクッキーが自動削除されているか、頻繁にAJAXリクエストで設定されていません

シナリオ:ユーザーがページ上の任意の活動を行っていない間、それが生きているかどう

1)システムは、ユーザセッションを確認するためのAJAX呼び出しを持っています。

2)ユーザーセッションを確認するために毎分サーバー側に要求が送信されます。 ユーザーがセッションをログアウトするための期限切れ要求を送信した特定の分だけアイドル状態の場合、要求が送信されます。

3)ログアウトページでは、非アクティブのためにセッションが期限切れになり、記録用のクッキーが設定されます。ユーザーが資格情報を再入力すると、セッションが更新されます。

問題があります。 以下のシナリオを試している間にCookieが設定されていません。 全て使用してパラメータ

setcookie("config_transactionID", $_SESSION['cableTransactionID'], $expire,'/', 'http://domain.com'); 

使用ルートパス

setcookie("config_transactionID", $sessionValue, $expire,'/'); 

使用される基本的な偶然に。

setcookie("config_transactionID", $_SESSION['cableTransactionID'], $expire); 

cookieを設定する前にすべてのヘッダーを削除するようにも試しました。

は、設定されている場合にクッキーを設定するためにいくつかの静的コンテンツを使用しました。 が、システムはエンド

function expireSession(){ 
$.ajax({ 
    type: "POST", 
    url: SiteVars.siteUrl+"Logout.php?sess=idle", 
    data:{test:"test"}, 

    success: function(data) 
    { 

    }// 

});// 

} 
+0

AJAXは、PHPスクリプトと同じドメイン上のスクリプトを呼び出していますか? – RiggsFolly

+0

このスクリプトに頻繁にリクエストを送信する場合は教えてください。 –

+0

@ RiggsFolly yes –

答えて

1

シャー・ルクの提案が私の仕事をバックアップするための要求を送信

set_cookie returns: bool(true) 

コードを返します。 scripの問題は頻繁なセッションの終了要求でした。繰り返しセッションの期限切れ要求は、クッキー値をNULLでリセットしていました(セッションは最初のセッションの後に期限切れになりました)。

私はクッキーを設定していた場所にチェックを付け、実際の値にランダムな文字列を追加して空でないことを確認しました。

if(!isset($_COOKIE['config_transactionID'])){ 

    $expire = time() + (60 * 60 * 24 * 30); 
    $transaction = base64_encode($_SESSION['cableTransactionID'].'--'.md5(rand(999,9999))); 
    $var = setcookie("config_transactionID", $transaction, time()+ (60*60*24*30)); 

} 
関連する問題