2015-08-18 3 views
0

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

Таким образом, я использовал файл cookie, который длится 20 секунд и запоминает имя пользователя и пароль, если я проверю параметр «Запомнить меня» при входе в систему.

А также использовали сеанс.

Однако, когда я пытаюсь выйти из системы, если я делаю это в первые 20 секунд, Mozzila дает мне ошибку. Почему так?Почему конец сеанса также уничтожает куки?

Это журнал в файле

<?php 
 
session_start(); 
 
$user="username"; 
 
$pass="password"; 
 

 
//verify if there is a cookie, and if so, log in from the cookie 
 
if(isset($_COOKIE['u']) && isset($_COOKIE['p']) && $_COOKIE['u']==$user && $_COOKIE['p']==$pass){ 
 
\t header("location: Index.php"); 
 
\t exit; 
 
\t } 
 

 
if(isset($_POST['sub'])) 
 
\t if(empty($_POST['name'])) echo "Please write username"; 
 
\t \t elseif(empty($_POST['pass'])) echo "Please write password"; 
 
\t \t else 
 
\t \t \t if($_POST['name']==$user && $_POST['pass']==$pass){ 
 
\t \t 
 
\t \t \t \t if($_POST['rem']=="on"){ 
 
\t \t \t \t \t setcookie("u", $_POST['name'],time()+10); 
 
\t \t \t \t \t setcookie("p", $_POST['pass'],time()+10); 
 
\t \t \t \t \t } 
 
\t \t \t \t \t 
 
\t \t \t \t $_SESSION['logged']="yes"; 
 
\t \t \t \t $_SESSION['name']=$_POST['name']; 
 
\t \t \t \t header("location: Index.php"); 
 
\t \t \t \t exit; 
 
\t \t \t \t } 
 
\t \t \t \t else echo "Incorrect data"; 
 

 

 
?> 
 

 

 

 

 
<html> 
 
<head> 
 
\t <title> Login </title> 
 
</head> 
 
<body> 
 
<form method="post"> 
 
<input type="text" name="name" placeholder="username" /><br /> 
 
<input type="password" name="pass" placeholder="password"/><br /> 
 
<input type="checkbox" name="rem" />Remember me<br /> 
 
<input type="submit" name="sub" value="Log in" /> 
 
</form> 
 
</html>

Это Выход:

<?php 
 
session_start(); 
 
$_SESSION=array(); 
 
session_destroy(); 
 
header("location: Login.php"); 
 
exit; 
 

 

 
?>

<?php 
 
session_start(); 
 

 
//verificam daca nu a ajuns fortat pe pagina, si ca mai intai s-a logat 
 
if(!isset($_SESSION['logged']) || $_SESSION['logged']!="yes"){ 
 
\t header("location: Login.php"); 
 
\t exit; 
 
\t } 
 

 
?> 
 

 

 
<html> 
 
<head> 
 
\t <title> Index </title> 
 
</head> 
 
<body> 
 
\t Welcome, <?php echo $_SESSION['name'];?>! 
 
\t <br /><br /><br /> 
 
\t <a href="Logout.php"> Log out! </a> 
 
</body> 
 
</html>

+0

Что такое ошибка –

+0

страница не перенаправлять правильно Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что никогда не будет завершена. Эта проблема иногда может быть вызвана отключением или отказом принимать файлы cookie. –

+0

, пожалуйста, напишите свой сеанс, код cookie и код выхода –

ответ

0

Logout.php:

Проверить этот выход из сценария. Здесь я истекаю cookie, чтобы остановить цикл перенаправления. Храните все сценарии такими, какие есть. обновить только logout.php так:

<?php 

session_start(); 
$_SESSION=array(); 
session_destroy(); 
setcookie("u", $_POST['name'],time()-10); 
setcookie("p", $_POST['pass'],time()-10); 
header("location: Login.php"); 
exit; 


?> 
+0

Но тогда cookie хорошо для чего-нибудь? –

+0

Сделал это. Удалил файл cookie на странице выхода. Но все же, если в те 20 секунд я закрою моззилу, а затем снова открою Индекс, появится та же ошибка. (Тем не менее, нет ошибки при выходе из системы) –

+0

@LorelaySunshine проверить мой обновленный ответ надеюсь, что он решит вашу проблему :) –

Смежные вопросы