Перенаправить на последний сеанс и не нужно входить в систему (запретить автоматический выход из системы) - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть форма ввода в моей сети. Но перед этим мне нужно сначала войти в систему, чтобы перейти на страницу ввода.

В последнее время, если мой компьютер зависает, а затем включите его, браузер Chromium покажет кнопку восстановления. И после того, как щелкнуть по нему, моя последняя страница вернется и больше не нужно будет входить в систему.

Но почему сейчас я не могу этого сделать, даже если нажал кнопку.

Это мой php скрипт на моей странице ввода:

<?php
session_start(); //Start the session
if(isset($_SESSION["loguser"])){
//if(!session_is_registered("loguser")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}
else //Continue to current page
header( 'Content-Type: text/html; charset=iso-8859-1' );
?>

Что я хочу сделать, так это сделать так, чтобы моей странице не нужно было входить, если я не выйду из системы Как сделать так, чтобы срок действия файлов cookie истек, если мы нажмем кнопку выхода?

спасибо.

Ответы [ 3 ]

0 голосов
/ 04 января 2012

я меняю так:

<?php
session_start(); //Start the session
setcookie("loguser");
if(!isset($_COOKIE["loguser"])){
     header("location:login.php"); // Redirect to login.php page
     }
else { //Continue to current page
     header( 'Content-Type: text/html; charset=iso-8859-1' );
     }
?>
0 голосов
/ 16 мая 2016

Если вы установили cookie прямо перед тем, как проверить, установлен ли cookie, оператор if никогда не сработает или будет вести себя так, как ожидается.Вы должны установить cookie в вашем login.php, как и в будущем с истечением срока действия:

setcookie("loguser","John Doe",time()+60*60*24*30);  //Expires in 30days

В противном случае cookie обрабатывается как переменная сеанса и выбрасывается, как только сеанс закрывается.

В целях безопасности вам следует также проверить значение файла cookie в вашей БД, поскольку значение файла cookie можно легко прочитать и изменить в браузере пользователя.

0 голосов
/ 23 декабря 2011

!пропущено в условии if. (Вы можете проверить?)

if(isset($_SESSION["loguser"])){
//if(!session_is_registered("loguser")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}

Должно быть

if(!isset($_SESSION["loguser"])){
//if(!session_is_registered("loguser")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}
...