【问题标题】:Why isn't this session destroyed?为什么这个会话没有被销毁?
【发布时间】:2016-08-09 20:07:18
【问题描述】:

我有这个 logout.php 页面,用于从我的 PHP 项目中注销。

<?php
session_start();

$conn4=mysqli_connect("localhost", "root", "", "winkcage");
$useronline=$_SESSION["unamsession"];
$queryseen="UPDATE signup SET seen='' WHERE username='$useronline'";
$queryseenrun=mysqli_query($conn4, $queryseen);
session_destroy();
session_unset();
header('Location: login.php');
?>

[在 Firefox 和 Chrome 中]:当我点击注销按钮时,页面被重定向到 login.php,但是当我在不同的选项卡中再次加载主页时(只有在会话没有被破坏),它加载而不是重定向到 login.php(这将是我的索引页面)。

我不知道这段代码有什么问题。在 session_unset() 之前写 session_destroy() 有什么不同吗?我该如何解决?

[仅限 Chrome,在 Firefox 中没关系]:当我关闭 Firefox 时,会话会自动销毁,这很明显,但不是 Chrome。 Chrome 并没有破坏它。怎么可能?我已经彻底检查了我的代码,但我没有找到任何与 cookie 相关的代码行。

另一个问题是,当我登录几分钟(我猜是 20-30 分钟)时,会话会自动销毁。我是否有可能为此错误地编写了一些代码?还是默认的?

【问题讨论】:

  • 您使用会话 cookie 吗?如果是 - 您也必须删除它们。喜欢setcookie("YourCookie", "", time() - 3600);
  • 我不记得即使我已经写了它,因为我在过去 1 个月里一直在努力。但是机会非常少。我在这个项目中主要有 2 页。 1是登录,2是家。如果写在哪里可以找到?
  • Chrome 开发工具 -> 资源 -> Cookies

标签: php session


【解决方案1】:

不确定您是否使用 cookie,但我认为这会解决它 ....

$queryseenrun=mysqli_query($conn4, $queryseen);
session_unset();
    $_SESSION = array();
    // get session parameters 
    $params = session_get_cookie_params();
    //delete the actual cppkie
    setcookie(session_name(),'', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
    // Destroy session 
    session_destroy();
    //redirect to the index.php
    header("Location: login.php");
    exit();

【讨论】:

  • 嘿,听着,我认为问题仅出在 chrome 上。它在 Firefox 中运行良好。当我关闭 Firefox 时,会话会自动销毁,这很明显,但不是 Chrome。 Chrome 并没有破坏它。怎么可能?我已经彻底检查了我的代码,但我没有找到任何与 cookie 相关的代码行。
  • 在您的 chrome 浏览器中检查设置 -> 在启动时 -> 确认未选中继续您离开的地方
【解决方案2】:

来自http://php.net/manual/en/function.session-unset.php

会话未设置只是清除会话以供使用,但它没有被销毁,它仍然在用户的计算机上。

尝试以下方法:

session_start();  
session_destroy();  
$_SESSION = array();  
header('Location: index.php');

【讨论】:

  • 请阅读我对第二个答案的评论,先生,这将帮助您更好地理解。
猜你喜欢
  • 1970-01-01
  • 2015-08-16
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多