Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: SESSIO, Hereillä pysyminen / sammuminen

manninen [17.04.2012 20:10:11]

#

Ennen kuin alan suotta purkkapakettia rakentamaan, vaikka minulle riittää yksi purkka. Palaan taas tänne luoksenne neuvoja kysymään.

// Oletan, että tämä määrittää sessionin voimassaoloajan, eli 20 minuuttia?
session_cache_expire( 20 );

// Mitä tällä käytännössä määritetään.
session_cache_limiter('private');

// Käynnistän sessionin
session_start();

// Määritän aktiivisena olo ajan
$inactive = 1200; // 20 tuntia?
 Tarkistetaan onko määritetty sessionin käynnistysarvoa
 if(isset($_SESSION['start']) ) {
   $session_life = time() - $_SESSION['start'];
   // Katsotaan onko elossa olo aika suurempi kuin aktiivisena olo aika
   if($session_life > $inactive){
   // Jos hereillä olo aika on suurempi kuin aktiivisena olo aika, laitetaan pihalle.
   header("Location: user_logout.php");
  }
}

Luodaan session start?
$_SESSION['start'] = time();

Miten tämä tulisi järkevästi toteuttaa ja olinko ymmärtänyt kaiken ylläolevan oikein. Missä session start tulisi määrittää. Eihän sekään ymmärrä jos sivut latautuu uudelleen, jos sitä ei määritä jokaisella sivulla? Eikös se näin mene.

Kertokaa te viisaammat miten tämä olisi järkevin toteuttaa. Tarkoitus on siis se, että jos ohjelmisto on liian pitkään auki, niin ettei sitä kukaan käytä niin lentäisi pihalle kauniisti, eikä saisi silmilleen tallenna nappia painaessa valkoista ruutua koska sessio on jo katkennut.

tuutti [18.04.2012 11:25:48]

#

manninen kirjoitti:

// Oletan, että tämä määrittää sessionin voimassaoloajan, eli 20 minuuttia?
session_cache_expire( 20 );

session_cache_expirellä ei oo mitään tekemistä session voimassaoloajan kanssa. Se kertoo selaimelle kauan selain pitää sivua cachessa.

manninen kirjoitti:

// Mitä tällä käytännössä määritetään.
session_cache_limiter('private');

Kertoo ketkä saa cachettaa sivua, tässä tapauksessa kieltää proxyja cachettamasta sivua, mutta antaa clientin cachettaa.

manninen kirjoitti:

Kertokaa te viisaammat miten tämä olisi järkevin toteuttaa. Tarkoitus on siis se, että jos ohjelmisto on liian pitkään auki, niin ettei sitä kukaan käytä niin lentäisi pihalle kauniisti, eikä saisi silmilleen tallenna nappia painaessa valkoista ruutua koska sessio on jo katkennut.

Tallennat session alotuksessa kantaan timestampi ja vertailet sitä sessionin max pituuteen joko ajaxilla X ajan välein tai käytättämällä jotain Comet ratkaisua, esim. APE

punppis [18.04.2012 20:29:00]

#

Ohjelmoinnissa ei tarvitse arvailla. Php.netistä löytyy kyllä dokumentaatiot noihinkin funktioihin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta