PHP Session Yönlendir'e Geçerlilik [yinelenen]

4 Cevap

Possible Duplicate:
Automatically re-direct a user when session Times out or goes idle…

Bir Giriş sistemi var ve oturum sona, ama onlar yine ekranda giriş gösterilecek sayfayı yenilemeniz gerekebilir. Bunun yerine, benim kullanıcıların veri girmek ve dışarı çıktınız olduğunu öğrenmek için teslim çarptı.

Oturum süresi doldu sonra sayfa otomatik log-in sayfasına yönlendirmek için herhangi bir yolu var mı?

Teşekkürler!

EDIT:::

Bulunan önceden sorulan soru gözden itibaren Here Ben bu uygulama için kabul edilen cevabı kullandık. Önerileriniz için hepinize teşekkür ederim.

4 Cevap

Peki, en iyi veri formu kullanarak gönderilen kullanıcı kullanıcı tekrar giriş yapmak için bir şans olur ve o zaten eski veri ile dolu, gelen sayfaya yönlendiriliyorsunuz alır, geçici olarak kaydedilir. Iki veri türü olması (ya da bir şeyin ortasında iseniz zaman bir miktar sonra yönlendirme sayfasını kendisi sahip) oldukça rahatsız edici.

Eğer sayfada girilen verileri koruyarak olmadan yönlendirmek istiyorsanız, en azından kullanıcıya sayfa sona erinceye kadar onun bıraktığı ne kadar zaman bir göstergesi göstermelidir. JavaScript kullanarak bunun için iyi bir seçenek olmalıdır.

Bir meta-refresh etiketi, mesela kullanabilirsiniz 10 dakika sonra yeniden yönlendirmek için:

<meta http-equiv="refresh" content="600;url=http://example.com/" />

Bu özellikle vurguladık kullanım durumda, oturum bitiminden işlemek için bir çok kullanıcı dostu bir yol değildir.

Daha iyi bir teknik tuşa basma ve mousemove olayları toplayıp JavaScript ile kullanıcı etkinliği izlemek olacaktır. Bazı faaliyet olmuştur eğer her dakika, canlı oturumu tutmak için bir XMLHttpRequest kapalı yangın.

Lütfen seans 10 dakika sonra sona erecek ve bu o zaman için herhangi bir kullanıcı etkinliğini fark JS Say, olabilir, oturum süresi doldu kullanıcıyı uyararak vb oturumu yeniden kurmak yollarını sunan sayfanın içine bir pankart içine

Bu şekilde, insanlar öğle yemeği için kendi masasına bırakırsanız veri girişi yapmak ya da (ne olursa olsun formu için) onların zaman ayırdığınız eğer onların oturumu kaybetmek yok ve yönlendirilir değil!

Ben de bir JavaScript çözümü kullanır. Bizim giriş sayfası oturumu yok, bu yüzden her sayfada yükü sıfıra sıfırlar bir zamanlayıcı var. Bu zamanlayıcı süresi dolarsa, o oturumu yok giriş sayfasına yönlendirir.

periyodik oturum süresi doldu olmadığını kontrol edin ve sonra varsa yönlendirmek için javascript kullanabilirsiniz. Uygulama sizin kimlik doğrulama sisteminin ayrıntıları bağlıdır, ama temelde sayfasına oturumun zaman aşımı süresi geçen ve ardından oturum süresi kadar şimdiki zaman sona erme zamanı karşılaştırarak içerecektir.

EDIT: Örnek

Ben prototype.js kullanmak, böylece diğer bazı çerçeve (ya da sadece ham JS) kullanıyorsanız bunu adapte olacak.

<input type="hidden" id="expiration" value="<?php echo(time() + SESSION_TTL) ?>" />

<script type="text/javascript">
  new PeriodicalExecuter(function(pe) {
    if(getTime() >= parseInt($('expiration'))) {
      window.location = "http://session.expired.com"
    }
  }
</script>

Ne istediğinizi çizgisinde bir şey yapmak gerekir.