gpt4 book ai didi

php - 注销后如何避免在 php 中访问 session 变量?

转载 作者:搜寻专家 更新时间:2023-10-31 21:19:28 24 4
gpt4 key购买 nike

我的网站上有一个个人资料页面,该页面使用 session 变量以他/她的名字欢迎用户。在我取消设置这个变量后,页面仍然可以访问那个名字。我无法正确删除数据。

我试过将其设置为 null、session_unset 和 session_destroy

<?php @session_start(); ob_start(); ?>

//Some HTML code here

<?php
if( isset($_SESSION["user"]) && $_SESSION["login"]) {
echo '<div><p>welcome ' .$_SESSION["user"]. '!</p></div>';
echo
"<form action='' method='post'>
<input type='submit' name='use_button' value='Log out' />
</form>";
if(isset($_POST['use_button'])) {
$_SESSION["login"] = false;
unset($_SESSION["user"]);
session_unset();
echo "logout successful.";
echo '<script>window.location.href = "same-page.php";</script>';
}
}
else
echo 'no login data.';
?>

//Some HTML code here

<?php ob_end_flush(); ?>

我预计在重定向之后,第一个 if 条件不会得到满足,它会给出输出“无登录数据”,但它仍然可以访问 session 变量。

外部 php 文件:

<?php
session_start();
$_SESSION["user"] = '' ;
$_SESSION["login"] = false ;
echo '<script>window.location.href = "../profile.php";</script>';
?>

最佳答案

我认为您可以通过使用 session_destroy() 方法销毁 session 来做到这一点。

session_destroy() 销毁与当前 session 关联的所有数据。它不会取消设置与 session 关联的任何全局变量,也不会取消设置 session cookie。要再次使用 session 变量,必须调用 session_start()。

您可以从 session_destroy() 了解更多信息

关于php - 注销后如何避免在 php 中访问 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002778/

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