php nasıl uzun bir zaman süresi için oturum durumunu korumak için?

2 Cevap php

Ben sorun uzun bir süre için oturum durumunu koruyarak yaşıyorum. Ben giriş durumunu korumak için oturumları kullanın. Ben başka bir kod önce benim sayfaların her birinin üstündeki kod aşağıda pasajını gerektirir. Öncelikle Kaçırdığım herhangi bir ayarı var mı?

session_cache_expire(2880); //set session to expire in 48 hours 
session_start();

Bazı insanlar 48 saat sona erme süresinden önce çıktınız. Ne tür şeyler bu neden olabilir? Ben tarayıcıyı kapatmadan oturumu öldürür biliyorum ve bu durum böyle değil.

Kullanıcı birkaç saat ya da daha fazla hareketsiz kaldığında Bildiğim kadarıyla söyleyebilirim gibi olur.

Aktif siteyi dolaşırken Kullanıcılar çıkışım asla.

Ne verir?

2 Cevap

Bu sadece tarayıcı için oturum sayfaları önbelleğe ne kadar etkiler.

Gc_maxlifetime değişkeni (saniye cinsinden değeridir) ayarlamayı deneyin:

ini_set("session.gc_maxlifetime", "172800");

session_cache_expire sadece efektleri HTTP önbellek zaman aşımı süresi. Ne yapmak istediğiniz oturum verilerini ayarlamak için çerezleri kullanmaktır.

Aşağıdaki I giriş / çıkış oturumları için kullanmış bir örnektir.

<?php

session_start();

if ($action == "logout") {
  setcookie('sId', '', time()-60*60*24*365); //set sId cookie to expire

  session_destroy();
} else if (empty($_SESSION['sId'])) { //if cannot get sId from session
  if (isset($_COOKIE['sId'])) { //check if sId is in cookie
    $sId = $_COOKIE['sId'];
  } else { //get a new sId and set to cookie
    $sId = session_id();
    setcookie('sId', $sId, time()+60*60*24*365);
  }

  $_SESSION['sId'] = $sId; 
} else { //get sId from session
    $sId = $_SESSION['sId'];
}

?>