PHP ve MySQL Giriş, çıkış ve süresi?

3 Cevap php

Ben veritabanında giriş, çıkış ve süreyi saklamak istiyorum.

  • Kullanıcı kimlik doğrulaması yapıldığında giriş zamanı oluşturulur (Başarıyla giriş)
  • Kullanıcı çıkış butonuna tıkladığında oturum kapatma zaman oluşturulur
  • Giriş zamanı - süresi çıkış olduğunu. (Logout eksi giriş)

Kullanıcı çıkış düğmesini tıklatın olmadı ne Ama sorundur. İşte durumlar şunlardır:

  • İnternet kaybı
  • Tarayıcı / sekmeyi kapatın. (Ben bu javascript kullanmak gerekir gerekir, ama, bunu yapmak için nasıl bir fikrin donnu?)

EDIT:

Ben soruya şey eklemek unuttum, programın başka bir sayfaya herhangi bir navigasyon var, bir tam flaş programdır. Sadece 1 sayfa

3 Cevap

Sen onlar sadece tarayıcıyı kapatmak, çıkıyor kullanıcı için bir olay aldıktan güveniyor, ya da internetten yok olamaz.

Bu durumda, bazı tür bir oturum zaman aşımı olması ve app, oturum çok eski olduğu fark zaman logoutu kayıt edeceğiz.

Bu gerçek bir gereklilik ise, o zaman zaman aşımı oturumları izleme bir "cron" iş gerekir derim. Bir oturum zaman aşımına uğradı oturum olsaydı, o zaman o kullanıcı için bir "çıkış" olay kaydeder.

O güvenilir ya (örneğin sunucu işlemi yeniden başlatır) denilen olmayacak çünkü, (örneğin) Aspnet en Session_End olayını kullanabilirsiniz unutmayın.

Oturum açtıklarında, eski oturumları için kontrol ve kapalı değil ki herhangi bir son sayfa hit yana zaman sabit tutar süren varsayalım - Başka bir seçenek çıkış süresi kullanıcı günlükleri sefere eklemektir.

Bu gerçekten tüm yapabileceğiniz bulunuyor.

PHP tüm session / log-in fonksiyonlar usually çerez tabanlı olduğunu hatırlamak önemlidir. Yani, oturum çerezinin ömrünü değiştirerek sorunu çözmek gerekir:

http://us3.php.net/manual/en/function.session-set-cookie-params.php

Sadece çerezleri kullanmak kadar Ayrıca, PHP oturumları ayarlayabilirsiniz:

http://us2.php.net/manual/en/session.configuration.php#ini.session.use-only-cookies

Yine, tarayıcı penceresi / sekmesi yakın ama ... Neden yakalayabilirsiniz? Örneğin ben birden fazla sekme sitenizin açık olabilir. Ben kapatırsam bu sekmelerin biri ben otomatik olarak web üzerinden giriş olmalıdır? Bu çok kötü bir tasarım. browser kapalı ve bir sekme değil, sadece eğer sona Bunun yerine, oturum süresini ayarlamak. (. - Bir pop-up veya bir iframe içeren Bunu gerçekten istiyor musunuz kapatır sitenizde any penceresi zaman Not Ayrıca window.unload ikis olacak?)

http://us2.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime

Eğer herhangi bir deneyin bir veritabanında oturum durumunu saklamak istiyorsanız one of these guides. Yoksa, session_set_save_handler ile kendi rulo