2013-02-05 71 views
1

在我的應用程序中,當用戶從一個頁面移動到另一個頁面時,會話持續存在。然而,應用程序使用支付網關,如果用戶轉到支付網關,然後按回來嘗試返回到我的應用程序,Cake將刪除舊會話(及其包含的所有數據)並製作一個新會話。從支付網關返回時蛋糕會話丟失

我發現this question這是有點相同的問題,除了當用戶從支付網關按下「返回」,我真的不認爲會被歸類爲被引用時發生。

不管怎樣,在這個問題的建議是要改變Configure::write('Security.level')low但我使用CakePHP 2.3,我從changelog注意的是已經完成的「刪除從core.php中Security.level」的事情之一 - 這似乎是因爲這個特定的設置不再用於任何事情。

所以,我的問題是如何禁用導致Cake從支付網關引用(或簡單地按回)時導致Cake丟棄並重新生成會話的內容?

回答

2

我建議更改以下core.php設置:

Configure::write('Session', 
    array(
     'defaults' => 'php', 
     'timeout' => '30', 
     'autoRegenerate' => false 
    ) 
); 

我也有類似的問題,而且解決了這個問題對我來說。

謝謝,

+0

奇怪,它似乎有點工作,然後再次停止工作。現在我還必須添加''checkAgent'=> false'以使其再次工作。不過,我不明白爲什麼從支付網關按「返回」會改變用戶代理。這沒有任何意義。 – Joseph

+0

這沒有意義。我會進一步研究它.... –

0

IE與具有chormeframe發送第一請求給一個「不同的」現場用普通IE-用戶代理報頭,而隨後的含「chromeframe」在它的習慣。在非Cake的網站上,我在檢查useragent時遇到了與會話相同的問題。