Мой сайт ведет себя так, как я хочу ... Мне нужно запустить мой скрипт регистрации дважды, прежде чем я полностью выйду из системы.Истекает файлы 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();
}
?>
Что не так с моим скриптом?
Вы сохраняете идентификатор пользователя, имя и пароль в файле cookie ?! Пожалуйста, не делай этого. – deceze
Пароль зашифрован и хэширован с помощью bcrypt, но я удалю эту информацию из файлов cookie. Единственное, что у меня тогда есть только идентификатор пользователя, который можно использовать для сравнения с базой данных и извлекать остальную часть пользовательских варов, я думаю, что это будет гораздо более открытым? – Wildcard27
Вот почему вы используете только сеанс. Нет необходимости хранить какие-либо фактические данные в файле cookie. Все фактические данные хранятся на стороне сервера, клиент получает только бессмысленный идентификатор сеанса. – deceze