Autor | Zpráva | ||
---|---|---|---|
tomahawk31 Profil |
#1 · Zasláno: 18. 4. 2008, 14:03:52
vazeni pratele, predem se omlouvam za pripadnou duplicitu tady na foru.. trocha jsem si prelistoval prispevky, ale nenasel jsem odpoved
jaky mam problem: mam jednoduchej login script, kterym overuji uzivatele, (jmeno a heslo) z databazy, ktere mi pak po najdeni zaznamu ulozi tyto informace do promennej. Potreboval bych z bezpecnostnich duvodu, aby po urcitem case necinnosti uzivatele expirovala jeho sesna. trocha jsem hledal, vraj treba nastavit neco jako session timelife v php.ini. Jenomze nemam pristup k nastaveni na serveru. Proto se ptam, je nejaky spustom, nejaka funkce, ktre prenastavy delku zivota session? nejsem moc odbornik na php, ale vsiml jsem si, ze po smazani cookies se take ukonci session. Co ma spolecne cookies a sessions? Byl jsem az doted v domnence.. ze jsou to 2 nezavisle a ruzne zpusoby.. ze pro cookies se ukladaji hodnoty lokalne, a u sesison na servru... dakuji moc za pomoc, preji hezky den |
||
Mastodont Profil |
#2 · Zasláno: 18. 4. 2008, 14:24:53
session.gc_maxlifetime se dá nastavit voláním ini_set i ze skriptu, protože se dá měnit odkukoli (PHP_INI_ALL), viz
http://pl2.php.net/manual/en/ini.php#ini.list |
||
tomahawk31 Profil |
#3 · Zasláno: 18. 4. 2008, 18:20:38
dekuji.. jenomze zda se, ze mi script stale nejde...
uvedu priklad jak jsem postupoval.. vytvoril jsem 2 pokusne scripty, mezi nimi si chci predavat hodnotu promennej.. tedy 01.php <?php ini_set("session.gc_maxlifetime", "30"); //30 vterinova delka session session_start(); $cislo=14; $_SESSION['neco']=$nick; ?> a 02.php <? ini_set("session.gc_maxlifetime", "30"); //nevim zdali tu ma byt taky session_start(); if ($_SESSION['neco'] == 14) {echo"auto";} else {echo"nic";} ?> kdyz spustim 01.php startne se session, pak spustim 02.php kde vidim text auto... ale po 30 vterinach se nic nedeje.... a session stale bezi... muzete mi zict prosom, co delam spatne? dekuji za pomoc |
||
tomahawk31 Profil |
#4 · Zasláno: 18. 4. 2008, 18:22:04 · Upravil/a: tomahawk31
pardon, v 01.php oprava radku
$_SESSION['neco']=$cislo; |
||
Časová prodleva: 2 měsíce
|
|||
dejvik Profil * |
#5 · Zasláno: 10. 6. 2008, 14:14:55
ja bych t ento problem vyresil jinak... na kazdou stranku, ke maji pristup registrovani uzivatele bych dal jendoduchy skript, ktery by oiveril jejich prihlaseni a jak dlouho byli neaktivni (tedy nevolali tento skript). session bych dal jako dvorozmerne pole: $_SESSION['login']['jmeno'] a $_SESSION['login']['time'] nebo muze byt i jednorozmerne, v tomto pripade mi to prijde prehlednejsi.
if (IsSet($_SESSION['login'])) { $time = $_SESSION['login']['time']; // pokud je autor vice nez 30 min neaktivni, musi se prihlasit znovu; jinak se aktualizuje cas v session if ($time < Time()) { Session_Destroy(); header("Location: logout.php"); exit; } else { $_SESSION['login']['time'] = 3600 + Time(); } else { header("Location: badlogin.php"); } Tento zpusob mi prijde daleko jednodussi, nez urcovat delku zivotnosti. Pokud to teda nechces. |
||
Časová prodleva: 16 let
|
0