я могу добавить файл cookie выхода из этого сценария? - PullRequest
0 голосов
/ 30 марта 2011

Я использую этот скрипт для входа в систему пользователей и хочу знать, могу ли я добавить простой файл cookie, который автоматически отключит пользователя после 30 минут бездействия.

...
if($count){
        session_start();
       session_regenerate_id();
        $_SESSION['SESS_USERNAME'] = $myusername;
        $_SESSION['SESS_PASSWORD'] = $mypassword;
        session_write_close();
       header("location: login_success.php");
        }

, который подключается к:

<?php
 session_start();
 if(!isset($_SESSION['SESS_USERNAME']) || !isset($_SESSION['SESS_PASSWORD']) ||     (trim($_SESSION['SESS_USERNAME']) == '')) {
            //someone's not logged in
    header("location: index.php"); //it's suppose to actually be there
            exit();
  }
 ?>

затем завершить сеанс:

<?php 
session_start();
session_destroy();
?> 

возможно ли это?этот скрипт не в сети, так как я немного знаю о PHP, поэтому, если он сложный, я не буду беспокоиться!

Спасибо за ваше время!

Ответы [ 3 ]

1 голос
/ 30 марта 2011

Вы можете выполнить следующую команду в верхней части скрипта, чтобы установить время ожидания:

ini_set('session.gc_maxlifetime', 30*60); // for 30 min timeout

См. Справочную страницу для получения дополнительной информации. По истечении определенного периода времени PHP будет автоматически собирать сессии.

0 голосов
/ 30 марта 2011
$_SESSION['expiry'] = time() + 30 * 60;

if ($_SESSION['expiry'] < time()) {
    session_destroy();
}
0 голосов
/ 30 марта 2011

Сеансы автоматически истекают через некоторое время - это приведет к тому, что ваш неактивный пользователь выйдет из системы.


Продолжительность см. В session.gc_maxlifetime* 1007Директива *: вам нужно установить ее на 1800 секунд.

Это можно сделать в файле php.ini, для конфигурации всего сервера или с помощью следующей строки кода:

ini_set('session.gc_maxlifetime', 1800);
...