Ben bir DEA çalışıyorum. Biz oturumları saklamak için Memcached kullanın, ve ben http://pecl.php.net/package/memcache yükledim ve benim PHP oturum işleyicisi bu gibi görünüyor:
$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);
Oturum zaman aşımı 30 dakika ayarlanır. Benim RIA ben periodicly ziyaretçinin oturumu hala hayatta olup olmadığını kontrol etmek için AJAX ile bir serverside komut aramak istiyorum. Ajax false döner ararsa ben ekran karartma ve oturumu devam etmek için güzel bir relogbox göstermektedir.
Şimdi sorun serverside komut ile. Ben oturumu öyle varsa oturumun ömrünü uzatmadan olup olmadığını belirlemek gerekir.
Ben oturumu işleyici işleyişi hakkında tamamen knowladble değilim, ama ben bunu yapmak olsaydı ben eminim:
<?
session_start();
if($_SESSION['loggedin'] == "yes")
echo "true";
else
echo "false";
?>
Ben bu (geri istemciye yeni bir çerez göndererek serverside, aynı zamanda clientside üzerine) oturumun ömrünü yenilemek olacaktır eminim. Ve oturum indefinetly var olacaktır.
I kabul, ama dışarıda bazı seçenekler:
- Herhangi serverside aramaları yapmak, ancak istemci üzerinde bir javascript zamanlayıcı (örneğin 30 dakika sonra sona erer) kullanmayınız. Kullanıcı DEA birden çok pencere açmak zaman bu iş olmaz
- Geri istemci için yeni taze çerez göndermesini önlemek için session_start () etrafında kesmek için deneyin. Bu clientside için işe yarayabilir, ama expirationtime yine iç session_handling yenilenir olacaktır.
Bazı fikir, T.i.a. istiyorum