SORU
29 Kasım 2011, Salı


Nasıl oturumu değiştirin PHP zaman aşımı?

Oturum zaman aşımı php sunarım

Yani php değiştirerek yapmak mümkün olduğunu biliyorum.ını dosyası. Ama erişim yok.

Bu yüzden sadece php kod ile yapmak mümkün mü?

CEVAP
29 Kasım 2011, Salı


Oturum zaman aşımı olursa kesin garanti istiyorsan kod uygulanacak olan bir kavramdır; yanitek yolhayır oturum hiç X sonra hayatta kalacağı kesin hareketsizlik dakika olabilir.

Eğer bu gereksinim, rahatlatıcı ve biraz daha kabul edilebilir ve yerleştirme bir sorun vardıralt sınırsüresi için kesin bir sınır yerine, bu kadar kolay ve özel mantık yazmadan yapabilirsiniz.

Rahat ortamlarda kolaylık: nasıl ve neden

Eğeroturumları kurabiye muhtemelen) ile uygulanıreğermüşteriler kötü niyetli oturum bağlı bir üst süresini ayarlayabilirsiniz belirli parametreleri verdiği değildir. Eğer PHP nin öntanımlı oturum çerezleri ile taşıma kullanıyorsanız, session_set_cookie_params ile birlikte session.gc_maxlifetime ayar böyle olmalı

// server should keep session data for AT LEAST 1 hour
ini_set('session.gc_maxlifetime', 3600);

// each client should remember their session id for EXACTLY 1 hour
session_set_cookie_params(3600);

session_start(); // ready to go!

Bu sunucu oturum data hareketsizlik en az bir saat tutmak için yapılandırma ve "" aynı süre sonra oturum kimliklerini span. unutma ki onlar senin müşterilerin Talimat ile çalışırHer iki adımın da beklenen sonucu elde etmek için gereklidir.

  • Eğer sen söyleme müşterilerine unut oturum kimliği sonra bir saat (veya müşteriler kötü niyetli ve seçmek için görmezden talimatları) onlar kalsın kullanarak aynı oturum kimliği ve etki süresi olacak belirli olmayan. Bu sunucu tarafında dolan oturumları çöp toplama hemen değil çünkü ama sadece whenever the session GC kicks in.

    GC bir potansiyel olarak pahalı bir süreç, bu yüzden genellikle bu olasılık oldukça küçük, hatta sıfır (bir web sitesi almak çok sayıda en hit olacak muhtemelen vazgeçmek olasılık GC tamamen ve program başına arka planda her X dakikada). Her iki durumda da (non-işbirliği istemcileri varsayarak) daha düşük etkili oturumu yaşam için bağlı olacak session.gc_maxlifetime ama üst sınır belirsiz olacak.

  • Ayarlamazsanız session.gc_maxlifetime aynı süre sonra sunucu olabilir atmak boş oturum veri öncesindeki ki; bu durumda, bir istemci hala hatırlar, oturum kimliği olacak hediye ama sunucu bulmak ile ilgili verileri bu oturum, etkili bir şekilde davranmak gibi oturuma sahip yeni başladı.

Kritik ortamlarda kesin

Her şey tamamen kontrol edilebilir özel mantık da bir yere kullanarak yapabilirsinizüst sınıroturum hareketsizlik, birlikte sıkı bir ortamda bu sonuçlar yukarıdaki alt sınırı ile.

Üst birlikte oturum veri: geri kalanı ile bağlı tasarruf

session_start(); // ready to go!

$now = time();
if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) {
    // this session has worn out its welcome; kill it and start a brand new one
    session_unset();
    session_destroy();
    session_start();
}

// either new or old, it should live at most for another hour
$_SESSION['discard_after'] = $now   3600;

Oturum kimliği kalıcılık

Şimdiye kadar hiç veri bulunması şartı ile her oturum kimliği tam değerleri, sadece onlara ihtiyacımız olduğu sürece endişe ediyoruz. Oturum kimlikleri, sizin için önemli olan (ihtimal) bu durumda, bakımı gerekli olduğunda session_regenerate_id onları yeniden alınması gerektiğini unutmayın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • HuskyStarcraft

    HuskyStarcra

    4 HAZİRAN 2009
  • MrMimoB

    MrMimoB

    11 NİSAN 2011