• 01-10-2018, 18:50:35
    #1
    Merhaba bi kullanıcının sitede ne kadar zaman geçirdiğini nasıl anlayıp kaydedebiliriz ona göre puan vermek istiyorum
  • 01-10-2018, 19:19:53
    #2
    her dakika ajax ile bir php dosyasına istek gönder o kullanıcının geçirdiği saat db de update edilsin
  • 01-10-2018, 21:36:44
    #3
    Eğ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:36
    #4
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Eğ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.
    Kullanıcı çıkış butonuna basmazsa, ya da session ölene kadar herhangi bir hareket yapmazsa bu örnek sorun çıkarır.

    İ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:12
    #5
    ack
    Kimlik doğrulama veya yönetimden onay bekliyor.
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Kullanıcı çıkış butonuna basmazsa, ya da session ölene kadar herhangi bir hareket yapmazsa bu örnek sorun çıkarır.

    İ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.

    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:33
    #6
    Haklı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
    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.