Я разрабатываю веб-приложение на PHP, где пользователь сможет иметь свою учетную запись, а сеанс, который отслеживает пользователя, хранится в базе данных MySQL. Теперь, после поиска ответа о том, как это реализовать, я обнаружил, что многим нравится использовать session_destroy()
и отключить cookie. Почему - не будет достаточно session_destroy () само по себе? Даже руководство по PHP гласит: «Чтобы полностью завершить сеанс, например, выйти из системы, идентификатор сеанса также должен быть не установлен».
Мои рассуждения: после того, как пользователь вышел из системы и случайно посетил еще одну страницу на вашем сайте, PHP-скрипт, проверяющий, вошел ли пользователь в систему или нет, вызовет session_start (), установив новый файл cookie сеанса. в любом случае для пользователя. Вот как это может выглядеть:
// here we include some scripts and make some instances we'll need
require_once("database.php");
require_once("session.php");
$database_connection = new DB_Connection();
$session = new Session($database_connection);
// here a session cookie is sent to a user, even if he or she isn't logged in
session_start();
// finally we check if the user is logged in
$log_isLogged = false;
if(isset($_SESSION['member_id'], $_SESSION['username'])){
$log_member_id = $_SESSION['member_id'];
$log_username = $_SESSION['username'];
$log_isLogged = true;
}
Конечно, хорошо, когда пользователь знает об этом факте и покидает сайт до того, как может быть установлен новый файл cookie. Но некоторые сайты даже перенаправляют вас на новую страницу сразу после выхода из системы, что приводит к созданию нового файла cookie сеанса - отменяя то, что вы только что сделали.
Являются ли мои рассуждения в некотором роде ошибочными, или это действительно не имеет значения, если вы сбросили куки сеанса или нет?
Может быть, большинство разработчиков просто считают, что сбросить его, по крайней мере, не помешает?
Я не являюсь носителем языка, поэтому заранее прошу прощения за любые опечатки и грамматические ошибки.