delogare user dupa un anumit timp de inactivitate

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
sterica
Mesaje:285

delogare user dupa un anumit timp de inactivitate

Salutare,

Am un site si accesul in interiorului se face printr-un login, cum pot face ca dupa un anumit tip de inactivitate pe site sa il delogheze pe user. Daca sunt necesare mai multe detalii privind codul, va rog sa imi spuneti sa le pot posta.

Multumesc!

MarPlo Mesaje:4343
Salut
Se poate face asa:
1. Cand se logheaza user-ul, setezi si o sesiune cu timpul curent.
2. La fiecare accesare se verifica acea sesiune, daca diferenta fata de timpul accesarii e in interval se reinoieste acea sesiune, altfel se delogheaza utilizatorul.

Cod: Selectaţi tot

//$_SESSION['timp_access'] e setata la logare: $_SESSION['timp_access']=time();
//then, this code in the php files with session
$interval =15*60; //15 minutes
$timp = time();
if(isset($_SESSION['timp_access']) && ($timp -$_SESSION['timp_access'])<=$interval) $_SESSION['timp_access'] = $timp;
else if(isset($_SESSION['timp_access'])){
  unset($_SESSION['timp_access']);
  //delogare...
}

sterica Mesaje:285
In fisierul login.inc.php am pus $_SESSION['timp_access'] = time ();

Cod: Selectaţi tot

<?php
....
if (!$row = $result->fetch_assoc()) {
	$_SESSION['gresit'] = 'User sau parola introdusa gresit';
    	header ("Location: ../index.php");
}
else {
	$_SESSION['timp_access'] = time ();
	$_SESSION['level'] = $row['LEVEL'];
	$_SESSION['nume_user'] = $row['NUME'] . ' ' . $row['PRENUME'];
	header ("Location: ../chest.php");
}
?>
insa nu stiu cum procedez cu acest cod:

Cod: Selectaţi tot

//$_SESSION['timp_access'] e setata la logare: $_SESSION['timp_access']=time();
//then, this code in the php files with session
$interval =15*60; //15 minutes
$timp = time();
if(isset($_SESSION['timp_access']) && ($timp -$_SESSION['timp_access'])<=$interval) $_SESSION['timp_access'] = $timp;
else if(isset($_SESSION['timp_access'])){
  unset($_SESSION['timp_access']);
  //delogare...
}
il pun in fiecare fisier al siteului?
Multumesc!

MarPlo Mesaje:4343
sterica scrie:il pun in fiecare fisier al siteului?
Cred ca se pune in toate fisierele unde are user-ul access, si nu sunt incluse intr-un fisier in care ai adaugat deja acel cod.
Sau intr-un fisier care e comun la toate, cu session_start() la inceput.
- Fiinnd concentrat pe ceea ce vrei sa obtii iti vei da seama cum sa faci.

sterica Mesaje:285
Am reusit, functioneaza. Pt delogare am pus un

Cod: Selectaţi tot

session_destroy();
si

Cod: Selectaţi tot

header ("Location: login.php");
pentru a reveni la pagina de login. Tot codul il am intr-un fisier extern pe care il inserez in fisierele siteului.
Multumesc mult MarPlo!