В настоящее время я работаю на сайте, на котором есть вход (имя пользователя и пароль). Защита паролем выполняется операционной системой внутри веб-сервера на уровне папок, называемом Realm внутри ОС. Пока это нужно будет сделать, пока мы не выясним правильную систему регистрации PHP.Сессия PHP Session Destroy on Log Out
Код ниже, основан на previous question on the stack overflow.
Я использую 3 файла (см фрагменты кода в нижней части).
Процесс: - Нажмите кнопку «Вход» на index.php - введите имя пользователя и пароль для доступа к файлу индекса аутентификации. - Нажмите кнопку выхода из системы, которая ссылается на файл logout.php - СЛЕДУЕТ очистить кеш и вернуть пользователя в индекс верхнего уровня.
Он не «разрушает сеанс» в том смысле, что вам не предлагается повторно вводить пароль при появлении запроса, что по сути является тем, что я хочу.
Мое минимальное знание php оставляет меня немного в тупике.
index.php (верхний файл уровня с журналом в кнопки)
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test</title>
</head>
<body>
<a href="authenticate/index.php">Log In Btn</a>
</body>
</html>
Аутентифицировать/index.php (Эта папка защищена паролем - содержит индексный файл с помощью кнопки журнала, какие ссылки в файл logout.php)
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Log out</title>
</head>
<body>
<a href="logout.php">Log Out Btn</a>
</body>
</html>
Аутентифицировать/logout.php
<?php
session_start(); //to ensure you are using same session
session_destroy(); //destroy the session
header("location:/index.php"); //to redirect back to "index.php" after logging out
exit();
?>
Если папка защищена паролем, то PHP не делает проверку подлинности. Apache (или веб-сервер). – xbonez
Это действительно имеет смысл, спасибо очень большое спасибо @xbonez – fitzilla