PHP会话未设置或PHP会话破坏

呼叫

当我尝试使用以下方式登出时:session_destroy();它起作用了。但是问题是,我还有一个带有会话的购物车。所以session_destroy();对我来说不是一个选择。当我使用该unset($_SESSION['username']);功能时,它似乎可以正常工作。但是,当我返回到帐户页面时,我刚刚重新登录。我的注销脚本如下所示:

<?php
unset($_SESSION['username']);
unset($_SESSION['id']);

header('Location: index?page=home');
?>

我检查了用户的这段代码是否已登录。(有人可以告诉我还是这样安全?)

<?php if (!$_SESSION['username'] && !$_SESSION['id']){ ?>
<?php header ('Location: index?page=home'); ?>
<?php } ?>

这是您需要的信息(我认为)。如果您需要更多,请问我。

因此,我的简短版本中的问题是:如何在不破坏购物车会话的情况下破坏会话?

谢谢你们。

猴子宙斯

你可以session_write_close()在这里尝试吗?有一个PHP配置,可以在脚本结束后自动为您执行此操作,但是您的PHP可能配置不同。

<?php
unset($_SESSION['username']);
unset($_SESSION['id']);

session_write_close();

header('Location: index?page=home');
?>

为了进行调试,您可以尝试以下操作:

<?php

echo $_SESSION['id'].' - '.$_SESSION['username'];

if(!$_SESSION['username'] && !$_SESSION['id']){
    header ('Location: index?page=home');
}

?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

php PHPSESSID存在,但会话已破坏

来自分类Dev

PhP 5.4中的PhP上传进度不起作用。会话变量未设置

来自分类Dev

未设置CodeIgniter会话

来自分类Dev

PHP会话错误未设置

来自分类Dev

除非刷新,否则未设置PHP会话

来自分类Dev

使用AJAX在PHP中设置会话变量

来自分类Dev

PHP会话变量未设置

来自分类Dev

PHP未设置会话不起作用

来自分类Dev

PHP会话安全-Canary会话

来自分类Dev

PHP Laravel:如何设置或获取会话数据?

来自分类Dev

PHP未设置会话变量

来自分类Dev

PHP中的PostgreSQL-会话变量在发布数据时似乎未设置自身

来自分类Dev

破坏旧的会话,使新的会话,但php仍指旧的会话

来自分类Dev

CodeIgniter会话未设置

来自分类Dev

PHP会话未设置

来自分类Dev

PHP重定向与数据会话破坏

来自分类Dev

在cookie中设置会话并从cookie PHP检索会话

来自分类Dev

未设置CodeIgniter会话

来自分类Dev

PHP会话错误未设置

来自分类Dev

PHP无法设置会话变量

来自分类Dev

三个未设置的php会话之一

来自分类Dev

可以在php中设置设置会话

来自分类Dev

PHP会话未设置

来自分类Dev

PHP会话安全-Canary会话

来自分类Dev

从PHP设置ASP会话

来自分类Dev

PHP 会话未注销/未设置

来自分类Dev

如果未设置会话,PHP 标头重定向不起作用

来自分类Dev

如果未设置 php 会话变量,如何在窗口加载时打开 bootstrap4 弹出窗口?

来自分类Dev

快速会话未设置会话