Php 会话未正确结束

Php 会话未正确结束,php,session,logging,login,logout,Php,Session,Logging,Login,Logout,我已经为我的网站创建了一个简单的登录系统,因为我想限制对某些页面的访问。用户可以很好地登录,但是我在注销用户时遇到了问题。我正在使用$\u会话['username']存储用户名 当我注销用户时,会显示注销用户并显示登录屏幕,但是当我转到其中一个受限页面时,会话仍处于活动状态。然后,当我尝试使用其他用户登录时,登录页面显示其他用户已登录,但受限页面仍显示旧用户已登录 这是我的注销页面 <?php session_start(); unset($_SESSION['username']); s

我已经为我的网站创建了一个简单的登录系统,因为我想限制对某些页面的访问。用户可以很好地登录,但是我在注销用户时遇到了问题。我正在使用
$\u会话['username']
存储用户名

当我注销用户时,会显示注销用户并显示登录屏幕,但是当我转到其中一个受限页面时,会话仍处于活动状态。然后,当我尝试使用其他用户登录时,登录页面显示其他用户已登录,但受限页面仍显示旧用户已登录

这是我的注销页面

<?php
session_start();
unset($_SESSION['username']);
session_destroy();
header('Location: sign_up.php');
?>
我确实有
session_start()在我所有页面的顶部


任何帮助都将不胜感激。

您是否使用自定义会话\u保存\u处理程序?不,我不是,我应该是。php仍然很新。您是否在任何地方使用可以创建第二个会话的
session\u name()。我还建议
var\u dump($\u SESSION)
查看其中的实际内容,不要在任何地方使用SESSION\u name()。我正在将会话数据发送到一个数据库,如果这样做会有任何区别的话?我在一个工作不正常的页面上添加了session\u destroy,当我访问它时,我需要在会话被破坏之前刷新页面。有人知道为什么会发生这种情况吗?我只是使用会话而不是cookie,我通过$\u session[“username”]=$username设置它;在上面的评论中,您说您正在将会话数据发送到数据库,还说您没有调用会话\设置\保存\处理程序。您将以何种方式向数据库发送数据?您是否也验证了use_cookies设置未设置为true?ini_get('session.use_cookies')是否尝试调用此函数以清除所有会话变量:$\u session=array();我使用表单提交数据,并使用隐藏的输入来分配输入值。然后将其提交到另一个页面,在该页面中,我使用常规sql查询将数据输入数据库,现在查看cookie设置
session_start();

$_SESSION = array();

if (ini_get('session.use_cookies')) {
  setcookie(session_name(), '', time() - 42000);
}

session_destroy();
if (isset($_SESSION['username'])) {
    execute this
} else {
    header ('Location: sign_up.php');
}
session_start();

$_SESSION = array();

if (ini_get('session.use_cookies')) {
  setcookie(session_name(), '', time() - 42000);
}

session_destroy();