HTML — PHP, как выйти из учетной записи? Сессия полезна?

Как я могу закодировать аккаунт, выйти из моей системы. Я использовал header (), чтобы вернуть его обратно на страницу индекса и уничтожить все существующие переменные сеанса. Он уничтожает сеанс, но возвращает на предыдущую страницу без переменных сеанса (таких как имя пользователя). Каков наилучший способ сделать этот модуль выхода из моего веб-сайта?

-1

Решение

Вы можете просто очистить $_SESSION

0

Другие решения

Это более или менее то, что я делаю:

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

<a href='logout.php'>Logout</a>

В logout.php:

function deleteSessionCookie() {
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
}

function deleteSessionIfExists() {
if (session_id() != "") {
$_SESSION = array();
deleteSessionCookie();
session_unset();
session_destroy();
}
}

session_start();

// record logout dateTime in db
// Update existing record using $_SESSION["loginCode"] set during login.

deleteSessionIfExists();

// redirect to index page of website

РЕДАКТИРОВАТЬ: В верхней части страниц, требующих входа в систему, у меня будет что-то вроде этого:

session_start();
if (empty($_SESSION["loginCode"]) || empty($_SESSION["userCode"]))
header('index.php?alert=Invalid session');

В моем случае я также проверяю наличие многих других переменных сеанса, которые я создал во время входа в систему, и я также проверяю значения сеанса на согласованность с базой данных. (Я поместил все тесты в функцию, например isValidSession() который возвращает true или false, который я могу легко включить на каждой странице, где это необходимо.)

1

По вопросам рекламы [email protected]