尽管称为 session_destroy(),但会话并未销毁

阿希什·乔希

我正在开发带有会话的系统,其中我在成功登录后将代码放入启动会话并将值分配给会话变量,例如$_SESSION['email']. 另外,我已经放了一个会话销毁代码,但会话似乎没有销毁。我有以下文件 - index.php该文件使用以下代码授予用户访问正确凭据的权限:

if(password_verify($password,$dbpass)){
    $stmt = $conn->prepare("SELECT name, image FROM admins WHERE email=?");
    $stmt->bind_param("s",$email);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($name,$image);
    $stmt->fetch();
    $_SESSION['name'] = $name;
    $_SESSION['email'] = $email;
    $_SESSION['image'] = $image;
    header("Location:insert.php");
}

通过设置会话变量并重定向到预期文件,它可以正常工作。在文件中insert.php,我导入了session.php具有以下代码的文件

session_start();
if(!isset($_SESSION['email'])){
    header("Location:index.php");
}

另外,我有一个 logout.php 文件,其中包含以下代码:

if(isset($_SESSION['email'])){
    session_destroy();
}
header("Location: index.php");

运行后logout.php,如果我再次尝试访问文件insert.php,它会打开,但会话文件已导入其中。它应该被重定向到index.php文件。出了什么问题?任何人请帮忙。

Aaron NoHuanKnows

您的会话和您的 $_SESSION 服务器变量是分开的。会话将中断,但变量不会为空。

试试这个:

session_start();
session_destroy();

//Now you can choose whether you want to unset all sessions, or specific one(s):
$unset_sessions = ['email'];

foreach($_SESSION as $session => $session_value) {
   if (in_array($session, $unset_sessions))
      unset($_SESSION[$session]);
}

//Or all of them:
$_SESSION = [];

认为还可以从中创建一个函数会很有趣:

function breakSessions($specifics= []) {

   if (!empty($specific)) { //Handle specifics
      foreach($_SESSION as $session => $session_value) {
         if (in_array($session, $specifics))
            unset($_SESSION[$session]);
      }
   } else {
      $_SESSION = [];
   }

}

breakSessions(['login', 'remember_me']) //Specifics;
breakSessions(); //All of them```

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

警告:session_destroy():试图销毁未初始化的会话[session_start() used]

来自分类Dev

关于session_destroy的晦涩

来自分类Dev

Unset() 和 session_destroy();

来自分类Dev

为什么session_destroy无法取消设置当前会话值php

来自分类Dev

错误— session_destroy()—试图破坏未初始化的会话

来自分类Dev

尽管调用了 onDraw,但 LinearLayout 并未绘制

来自分类Dev

session_destroy()在PHP中做什么?

来自分类Dev

amqplib-尽管被称为channel.ack(msg),消息仍然未被确认

来自分类Dev

Powershell Script继续要求我使用Select-AzureSubscription,尽管我已将其称为

来自分类Dev

尽管没有保留原始顺序,为什么 python 的排序被称为稳定?

来自分类Dev

“名称为‘bluhbluh.cs’的文件或文件夹已经存在”,尽管它不存在

来自分类Dev

尽管删除了网格的数据,但jqGridfilteredData并未更改

来自分类Dev

logout.php没有session_destroy

来自分类Dev

session_destroy和cookie过期后无法设置cookie

来自分类Dev

对于if语句,尽管它是正确的,但会再次循环

来自分类Dev

hapi js中是否有类似req.session.destroy()这样的等效方法来销毁会话?

来自分类Dev

会话状态反模式(或总体上称为全局状态)

来自分类Dev

如何在名称为会话变量的视图上显示图像?

来自分类Dev

尽管在堆上分配了值,但销毁了值

来自分类Dev

尽管退出()和销毁(),Tkinter窗口没有关闭

来自分类Dev

session_destroy(); $ _SESSION = array(); 和$ unset($ _ SESSION); 不适用于IE10?

来自分类Dev

PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

来自分类Dev

PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

来自分类Dev

用户登录的销毁会话/ NULL $ _SESSION剩余

来自分类Dev

session_destroy()+ session_start()不在头重定向之后

来自分类Dev

尽管会话丢失,但Owin仍对用户进行身份验证

来自分类Dev

尽管Javascript Function尚未定义,但并未定义

来自分类Dev

尽管调用了方法“ setNeedDisplay”,但UIScrollView内部的UIView并未刷新自身

来自分类Dev

尽管我添加了适当的约束,但Scrollview并未使用自动布局进行滚动

Related 相关文章

  1. 1

    警告:session_destroy():试图销毁未初始化的会话[session_start() used]

  2. 2

    关于session_destroy的晦涩

  3. 3

    Unset() 和 session_destroy();

  4. 4

    为什么session_destroy无法取消设置当前会话值php

  5. 5

    错误— session_destroy()—试图破坏未初始化的会话

  6. 6

    尽管调用了 onDraw,但 LinearLayout 并未绘制

  7. 7

    session_destroy()在PHP中做什么?

  8. 8

    amqplib-尽管被称为channel.ack(msg),消息仍然未被确认

  9. 9

    Powershell Script继续要求我使用Select-AzureSubscription,尽管我已将其称为

  10. 10

    尽管没有保留原始顺序,为什么 python 的排序被称为稳定?

  11. 11

    “名称为‘bluhbluh.cs’的文件或文件夹已经存在”,尽管它不存在

  12. 12

    尽管删除了网格的数据,但jqGridfilteredData并未更改

  13. 13

    logout.php没有session_destroy

  14. 14

    session_destroy和cookie过期后无法设置cookie

  15. 15

    对于if语句,尽管它是正确的,但会再次循环

  16. 16

    hapi js中是否有类似req.session.destroy()这样的等效方法来销毁会话?

  17. 17

    会话状态反模式(或总体上称为全局状态)

  18. 18

    如何在名称为会话变量的视图上显示图像?

  19. 19

    尽管在堆上分配了值,但销毁了值

  20. 20

    尽管退出()和销毁(),Tkinter窗口没有关闭

  21. 21

    session_destroy(); $ _SESSION = array(); 和$ unset($ _ SESSION); 不适用于IE10?

  22. 22

    PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

  23. 23

    PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

  24. 24

    用户登录的销毁会话/ NULL $ _SESSION剩余

  25. 25

    session_destroy()+ session_start()不在头重定向之后

  26. 26

    尽管会话丢失,但Owin仍对用户进行身份验证

  27. 27

    尽管Javascript Function尚未定义,但并未定义

  28. 28

    尽管调用了方法“ setNeedDisplay”,但UIScrollView内部的UIView并未刷新自身

  29. 29

    尽管我添加了适当的约束,但Scrollview并未使用自动布局进行滚动

热门标签

归档