Ekaterina
Новичок
Автоматический logout
Есть основной файл index.php - проверяется соответствие введенного логина и пароля с данными из файла, старт сессии, объявление переменных сессии, есть в этом файле такой кусок:
И есть файл admin_only.php, в котором по истечении timeout, происходит перенаправление на index.php в следующем виде:
Я не понимаю, почему когда я просто обновляю страницу с адресом : http://localhost/tabs/index.php?expired=yes, я попадаю на опять http://localhost/tabs/admin_only.php, хотя ж ведь вроде бы уже загружена index.php и страница просто должна обновится с тем же параметром expired.
Есть основной файл index.php - проверяется соответствие введенного логина и пароля с данными из файла, старт сессии, объявление переменных сессии, есть в этом файле такой кусок:
PHP:
if (isset($_POST['user_name']))
{ ......
foreach($users_log_psw as $k=>$v)
{
if ($user_name_crypt == $k && $user_password_crypt == $v )
{
// если пользователь найден в файле
// зарегистрировать его имя
session_start();
$valid_user = $user_name;
$_SESSION['valid_user'] = $valid_user;
$_SESSION['session_start'] = time();
}
}
}
if (isset($_SESSION['valid_user']))
{
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/"."admin_only.php");
exit;
}
else
{
if (isset($_GET['expired'])) {
$expired_message = "<font color = 'red'>Your session has expired. Please Log In again</font><br />";
echo $expired_message;
}
/*
форма для аутентификации
*/
?>
PHP:
if ($_SESSION['session_start'] + $session_timeout < time())
{
unset($_SESSION['valid_user']);
unset($_SESSION['session_count']);
unset($_SESSION['session_start']);
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/"."index.php?expired=yes");
exit;
}
