SESSION változó értékvesztésének figyelése
Problémám a következő: Miután definiálok egy session változót a session.cashe_expire-ben megadott idő után elveszíti értékét. Ezt szeretném valahogy figyelni, hogy ha elveszik az érték, akkor automatikusan a kezdőoldal töltődjön be. Csak nem tudom van-e olyan függvény, amivel követhető, hogy mikor jár le.
■
session_cache_expire
--------
Poetro
Kedves Poetro! Tehát ez a
Tehát ez a session_cache_expire nem azt mondja meg, hogy mennyire van beállítva a session érvényességi ideje? Nekem az kéne, hogy amikor lejár, eltelik a megadott idő, ezt valami jelezze számomra, vagy valahonnan kiolvashassam. De világos legyen, hogy a session változó értéke nem azért üres, mert még nem kapott értéket, hanem azért, mert lejárt.
Agi
Tárolás
Minden egyes oldalon összehasonlítgatod ezeket az értékeket az akutális dátummal, és meg is van ha lejárt a sessionöd.
Azaz ha még üres a session-öd, akkor még a lejárat ideje sincs benne, azaz csak most indult, vagy már tényleg lejárt. Ezen esetben átdobhatod a neked tetsző oldalra, és elindíthatod a session-t. Ekkor az már megint élni fog stb.
Ha a session indulásakor raksz bele valamit, akkor tudod ellenőrízni, hogy már létező session-e.
Szóval minden oldalon érdemes, ha még nem volt session-t indítani, és rakni is bele vmi értéket.
--------
Poetro
Tárolás
Köszönöm a tanácsot.
Megpróbálom így megoldani.
Agi
Hmm ;-)
Agi: a biztonsagos munkamenetkezeles cimu cikkunkben olvashatsz reszben errol is.
Felho
Sziasztok! Az én problém
Az én problémám az, hogy a session_start() nem a megkezdett sessiont folytatja, hanem újat kezd. Miért?
Login oldal kódrészlet:
<?php
if(isset($_POST['submit'])){
$user = $_POST['user'];
$pass = md5($_POST['pass']);
mysql_select_db($database_myconn, $myconn);
$parancs ="SELECT * FROM jelszavak WHERE user = '$user' AND pass = '$pass'";
$leker = mysql_query($parancs, $myconn);
$eredmeny = mysql_num_rows($leker);
if ($eredmeny=1) {
session_start();
session_register("akarmi");
header('Location: titkosoldal.php');
exit;
}
else {
header('Location: login.php');
exit;
}
}
?>
Titkosoldal lapteteje:
<?php
session_start();
if (!isset($_SESSION["akarmi"])){
header('Location: login.php');
exit;
}
?>
És itt nem a megkezdett sessiont folytatja, hanem egy újat nyit, és persze, hogy nem találja a bejegyzett változókat.
Két dolog
1. Lehetőleg ha új kérdésed van, akkor nyiss neki egy külön topic-ot.
2. Használd a colorer bbtaget.
3. Neked is azt tanácsolom, hogy olvasd el a két (cikk1|cikk2) munkamenetkezelésről szóló cikkünket. Ha utána sem sikerül megoldani a problémád, akkor kérdezz bátran.
Felho