Это должно быть легко, если я хорошо объясню.
Я пытаюсь создать веб-страницу, где сеанс начинается, когда пользователь вводит имя, имя отображается постоянно, пока пользователь не нажмет кнопку выхода из системы; который должен закончить сессию. Самое близкое, что я получил к этому:
<if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST["name"];
echo "<input type='submit' name='logout' method='logout' value='Log out'>";
echo "</form>";
echo "</h1>";
echo "</div>";
if(isset($_POST['logout']) && ($_POST['logout'] == "Log out")) {
session_destroy(); }
но это не завершает сеанс, и имя продолжает отображаться постоянно после ввода. то есть нет никакого способа закончить сессию.
Если вам нужно больше объяснений или кода, чтобы понять, пожалуйста, дайте мне знать. Буду признателен за любую оказанную помощь.
Ты можешь измениться session_destroy()
от unset($_SESSION['name'])
, как это:
if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST["name"];
echo "<input type='submit' name='logout' method='logout' value='Log out'>";
echo "</form>";
echo "</h1>";
echo "</div>";
if(isset($_POST['logout']) && ($_POST['logout'] == "Log out")) {
unset($_SESSION['name']);
}
}
использование session_unset()
уничтожить все зарегистрированные переменные в сеансе и, если вы хотите, сбросить конкретную переменную, такую как name
использование unset($_SESSION['name'])
НЕ сбрасывать всю $ _SESSION с unset($_SESSION)
так как это отключит регистрацию переменных сеанса через суперглобальный $ _SESSION.
Вы можете попробовать добавить вызов session_commit () сразу после session_destroy ();
Приведенный ниже код обрабатывает гиперссылку выхода из системы, поэтому он создает глобальную переменную выхода из системы и отменяет сеанс
<a href="?logout">Log out</a>
<?php
if(isset($_GET['logout'])) {
session_unset();
}
?>