Време на сесията

bganonymous

Registered
Здравейте! Имам код за логин. При успешно логване, прави това:
Код:
$_SESSION['logged'] = $username;
Потребителят остава логнат в играта докато не натисне логаут, а аз искам потребителят да е логнат в акунта си примерно 15 минути и да го изкарва. Как става това?
 
bganonymous каза:
Здравейте! Имам код за логин. При успешно логване, прави това:
Код:
$_SESSION['logged'] = $username;
Потребителят остава логнат в играта докато не натисне логаут, а аз искам потребителят да е логнат в акунта си примерно 15 минути и да го изкарва. Как става това?
Да го логаутва на всеки 15мин независимо дали е активен или не?
 
EDIT: хрумна ми нещо по-лесно. Просто при логина сложи това:
PHP:
session_set_cookie_params(15*60);
$_SESSION['logged'] = $username;
Това ще изтрие бисквитката на сесията след 15 минути.

п.п.
Виж това: http://bg2.php.net/manual/en/function.session-set-cookie-params.php#100657 . Може би пък за по-сигурно е по-добре да използваш този код? (при логаута)

PHP:
session_start();
setcookie(session_name(),session_id(),time()+15*60);
$_SESSION['logged'] = $username;

----------
Предишен пост:
Добави още една променлива:

PHP:
$_SESSION['logged'] = $username;
$_SESSION['login-time'] = time();

И след това, в някъв "глобален" файл (напр. conf.php), слагаш това:

PHP:
//това проверява дали са минали поне 15 минути
if($_SESSION['login-time'] + 60*15 < time()) {

//това ще изтрие всички сесии
session_destroy();
//или някъв друг код за логаут
}
 
Мерси, но го направих по друг начин...
Код:
<?php
if(isset($_SESSION['logged']))
{
$select_time = time();
$time_online = $urow['time_online'];
if($select_time - $time_online > 60) {
session_destroy();
header("Location: index.php");
}
}
?>
 

Back
Горе