gpt4 book ai didi

php - session_destroy 没有取消设置 session_id

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:58 28 4
gpt4 key购买 nike

我正在开发一个在线机票预订系统,在成功预订(付款后)后,我想清除 session ID。但问题是我无法清除它,尽管我使用了 session_destroy() 来销毁 session 。

注意:我已经回显了 session_id 以检查它是否已重置。

网址:http://7sisters.in/7sislabs/

function book_final_tickets()
{

//var_dump($_SESSION);
$session_id = session_id();


$sql = "
UPDATE
tbl_seat_book
SET
final_book = 'Y'
WHERE
session_id = '$session_id'
";


//session_unset();

if($r = $this->db->executeQuery($sql)){
if(session_destroy()){
unset($session_id);
echo 'Booking successfull';
}
}
}

最佳答案

单独使用

session_destroy() 不会删除客户端 cookie,因此用户下次访问时,他们仍将设置相同的 session ID(但他们的服务器端 session 信息将被销毁)。

来自文档(强调我的):

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. ... In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted.

您可以使用 session_regenerate_id(true)生成新的 session ID 并删除旧 session ID。请注意,这会将 $_SESSION 中的所有信息作为新 session ID 的一部分保留,因此如果您想清除 session 信息,您仍然需要使用 session_destroy重新开始。

例如

<?php
session_start();
$_SESSION['blah'] = true;

var_dump(session_id()); // q4ufhl29bg63jbhr8nsjp665b1
var_dump($_SESSION); // blah = true

session_unset();
session_destroy();
setcookie("PHPSESSID", "", 1); // See note below
session_start();
session_regenerate_id(true);

var_dump(session_id()); // gigtleqddo84l8cm15qe4il3q3
var_dump($_SESSION); // (empty)
?>

并且 header 将显示在客户端更改的 session ID:

Request Header
Cookie:PHPSESSID=q4ufhl29bg63jbhr8nsjp665b1

Response Header
Set-Cookie:PHPSESSID=deleted; expires=Mon, 27-Dec-2010 16:47:57 GMT
PHPSESSID=gigtleqddo84l8cm15qe4il3q3; path=/

(您可以在此处不调用 setcookie(),因为无论如何您都在创建一个新 session ,因此 cookie 将被新 ID 覆盖,但这很好练习显式销毁旧 cookie)。

关于php - session_destroy 没有取消设置 session_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641929/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com