【发布时间】:2019-09-06 19:34:19
【问题描述】:
我花了几个小时为我的网站设置了一个登录系统,我终于登录了,但我无法退出。
我已尝试使用会话名称,但仍然无法正常工作。/
<?php
session_start('$_SESSION['userId']');
session_unset('$_SESSION['userId']');
session_destroy('$_SESSION['userId']');
header("Location: ../../index.php?logout=success");
?>
-
这些是我的 index.php 标头上的登录/注销超链接,当我注销时,显示登录的那个,然后我登录,现在它卡在注销中。/
<li class="nav-item">
<?php
if (isset($_SESSION['userId'])) {
echo '<a class="nav-link" href="login/login.php">Log In</a>';
} else {
echo ' <a class="nav-link" href="login/logout.php">Log Out</a>';}
?>
</li>
这是超链接所引用的注销页面。 /
<form action="includes/logout.php" method="post">
<span>
Are you sure you want to logout?
</span>
<div>
<button>
Log out
</button>
</div>
</form>
这是包含/logout.php,当它执行时,它会将我从注销页面带回 index.php,并在 url 中返回“index.php?logout=success”,但标题仍然显示注销而不是登录。 /
<?php
session_start();
session_unset();
session_destroy();
header("Location: ../../index.php?logout=success");
?>
除了会话实际停止之外,基本上一切正常。任何帮助将不胜感激。
编辑:我刚刚将所有文件上传到一个测试站点,然后在浏览器、隐身选项卡和手机上打开了该站点,它们都自动显示“登录”按钮,所以我猜问题在于这个;
<li class="nav-item">
<?php
if (isset($_SESSION['userId'])) {
echo '<a class="nav-link" href="login/login.php">Log In</a>';
} else {
echo ' <a class="nav-link" href="login/logout.php">Log Out</a>';}
?>
</li>
【问题讨论】: