Sitede ne kadar zaman geçirmiş PHP ?
5
●744
- 01-10-2018, 21:36:44Eğer siteye üye girişi yapıyorsa giriş yaptıkdan sonra
$_SESSION['giriszaman'] = time();
diyip adam siteye girdiğinde bir session oluşturursun hocam.
Çıkış dediği zaman da
$kaldigisure = $_SESSION['giriszaman'] - time();
bu şekilde dersen kaldığı süreyi saniye cinsinden elde edebilirsin. - 03-10-2018, 09:44:36Kullanıcı çıkış butonuna basmazsa, ya da session ölene kadar herhangi bir hareket yapmazsa bu örnek sorun çıkarır.PhYtOnX adlı üyeden alıntı: mesajı görüntüle
İki ihtimal var;
- Bir oturum için session_id ile birlikte giriş zamanını kaydedersin, sayfalar arasında gezerken son işlem zamanını update edersin. Bu sayede her oturum açtığında ne kadar süre kaldığını da (son işlem zamanı - login) kayıt altında tutmuş olursun.
- Her bir dakikada bir ajax request atarak, sitede kalma süresine +60 saniye eklersin.
İkinci ihtimal yüksek online sayısı olduğunda seni zorlayabilir. Birinci ihtimalde ise eğer kullanıcı çok uzun bir metin içeren sayfada 50 dakika geçirip, herhangi bir aksiyon almadan tarayıcıyı kapatırsa o kullanıcı için 50 dakikalık kayıp yaşarsın. Bunu aşmak için de her iki yöntemi birlikte kullanabilirsin.
Tercih senin. - 03-10-2018, 10:07:12Kimlik doğrulama veya yönetimden onay bekliyor.bayGaReZ adlı üyeden alıntı: mesajı görüntüle
Hocam güzel özetlemiş. Ben de 50 dakikada session düşme olayına değinmek istedim. Hocam'ın dediği gibi ikisini bir arada kullanabilirsin, ancak dakikada bir ajax post atmak yerine süreyi biraz daha uzatarak kullanıcının session süresini uzatacak bir post atmak sistemi daha az yoracaktır.
Session düşme süresini uzatabilirsin, default ayarları değiştirerek. Ancak ne kadar sağlıklı bir yöntem olur bir şey söyleyemiyorum maalesef. - 03-10-2018, 10:46:33Haklısın, session düşme süresini uzatmak yerine, dediğin gibi session'ı yenileyecek bir ajax post iş görecektir. Ancak sadece sessionu yenilersek yine işlem yapmadığı bir durumda (sayfa yenileme vb.) sayfada beklediği 50 dakika kaybolacaktır. Her halükarda son işlemi kaybetmemek için bir kayıt yapmak şart.
Burada da devreye javascript girebilir. Sekmeyi ya da tarayıcıyı kapattığı zaman body'inin onunload event'i içerisinde ajax request ekleyebilirsin. Bu da logout butonuna basılman çıkıldığı durumlarda iş görebilir.
ack adlı üyeden alıntı: mesajı görüntüle