2014-02-04 3 views
0

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

Из того, что я могу сказать (от get_defined_vars() и распечатать результат) В первый раз, когда я запускаю сценарий, он разрушает сеанс, но не истекает срок действия файлов cookie. Вот мой logout.php:

<?php 
session_start(); 
// Set Session data to an empty array 
$_SESSION = array(); 
// Expire their cookie files 
if(isset($_COOKIE["id"]) && isset($_COOKIE["user"]) && isset($_COOKIE["pass"])) { 
    setcookie("id", '', strtotime('-50 days'), '/'); 
    setcookie("user", '', strtotime('-50 days'), '/'); 
    setcookie("pass", '', strtotime('-50 days'), '/'); 
} 
// Destroy the session variables 
session_destroy(); 
// Double check to see if their sessions exists 
if(isset($_SESSION['username'])){ 
header("location: message.php?msg=Error:_Logout_Failed"); 
} else { 
    header("location: http://www.kokarma.com"); 
    exit(); 
} 
?> 

Что не так с моим скриптом?

+0

Вы сохраняете идентификатор пользователя, имя и пароль в файле cookie ?! Пожалуйста, не делай этого. – deceze

+0

Пароль зашифрован и хэширован с помощью bcrypt, но я удалю эту информацию из файлов cookie. Единственное, что у меня тогда есть только идентификатор пользователя, который можно использовать для сравнения с базой данных и извлекать остальную часть пользовательских варов, я думаю, что это будет гораздо более открытым? – Wildcard27

+0

Вот почему вы используете только сеанс. Нет необходимости хранить какие-либо фактические данные в файле cookie. Все фактические данные хранятся на стороне сервера, клиент получает только бессмысленный идентификатор сеанса. – deceze

ответ

1
setcookie("id", '',time()-100); 
    setcookie("user", '',time()-100); 
    setcookie("pass", '', time()-100); 

Попробуйте это.

+0

Спасибо, но не сработал. Есть ли способ просто удалить файлы cookie? – Wildcard27

+0

Вы получаете сообщение об ошибке? или просто cookie не истекает? – OfirH

+0

Я не получаю ошибку «logout failed», которую я установил, но 'header (location' не работает – Wildcard27

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