Autor Zpráva
tomahawk31
Profil
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
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
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
pardon, v 01.php oprava radku
$_SESSION['neco']=$cislo;
dejvik
Profil *
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.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0