ugrás a tartalomhoz

SESSION változó értékvesztésének figyelése

Agi · 2005. Feb. 24. (Cs), 15.54
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.
 
1

session_cache_expire

Poetro · 2005. Feb. 24. (Cs), 16.05
session_cache_expire
--------
Poetro
2

Kedves Poetro! Tehát ez a

Agi · 2005. Feb. 25. (P), 08.31
Kedves Poetro!

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
3

Tárolás

Poetro · 2005. Feb. 25. (P), 13.57
Sessionbe tárolod, mikor volt utoljára lekérdezés. Ehhez hozzáadod, hogy mekkora a session_cache_expire, és megtudod, mikor fog lejárni a session.
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
4

Tárolás

Agi · 2005. Feb. 28. (H), 14.24
Kedves Poetro!

Köszönöm a tanácsot.
Megpróbálom így megoldani.

Agi
5

Hmm ;-)

Hodicska Gergely · 2005. Feb. 28. (H), 18.50
Szerintem picit félreértetted. A Te megoldásod esetén szintén nem tudod megmondani, hogy miert is ures a session. Ehhez valahol rajta kivul kell valamilyen fajta metainformaciokat tarolnod (file, cookie, db).

Agi: a biztonsagos munkamenetkezeles cimu cikkunkben olvashatsz reszben errol is.


Felho
6

Sziasztok! Az én problém

rainwalker · 2005. Már. 4. (P), 13.48
Sziasztok!

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.
7

Két dolog

Hodicska Gergely · 2005. Már. 4. (P), 16.08
Szia!

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