至尊技术网 - session https://www.zzwws.cn/tag/session/ zh-CN Wed, 01 Sep 2021 14:45:00 +0800 Wed, 01 Sep 2021 14:45:00 +0800 解决V免签遇到刷新不出来的问题 https://www.zzwws.cn/archives/5691/ https://www.zzwws.cn/archives/5691/ Wed, 01 Sep 2021 14:45:00 +0800 悠悠楠杉

解决方法

1、找到application/index/controller/Index.php里的getMenu
2、找到application/admin/controller/Index.php里的getMain和checkUpdate
3、执行以下操作

//找到Session::has("admin"),后面加上session_write_close();
if (!Session::has("admin")) {
    return json($this->getReturn(-1, "没有登录"));
}
session_write_close();

最后测试

]]>
0 https://www.zzwws.cn/archives/5691/#comments https://www.zzwws.cn/feed/tag/session/
session使用时卡死、session锁定导致并发阻塞解决办法 https://www.zzwws.cn/archives/5689/ https://www.zzwws.cn/archives/5689/ Wed, 01 Sep 2021 14:17:15 +0800 悠悠楠杉 原因:

原因在于:执行session_start()后,对应的session文件是被锁定的,直到当前脚本结束才会解锁。

session数据被锁定以防止并发写入,所以任何时候只有一个脚本可以在session上运行。

在锁定期间,另一个进程访问相同session id 要等文件解锁后session_start()才会开始。

解决办法

办法也非常简单,开启session后,做了相应的操作,一定要关闭session;

例如:只需要在 session 设置好数据后调用, session_write_close() 将数据写入文件并且结束session;

PHP示例代码如下:

<?php
session_start();
$_SESSION["name"] = '至尊技术网';
session_write_close();

如果不加入session_write_close();并发3个进程访问该页面,第一个进程执行10秒 第二个执行20秒 第三个执行30秒。

加入session_write_close()后 ,并发3个进程会同时在10秒后执行完成!

]]>
0 https://www.zzwws.cn/archives/5689/#comments https://www.zzwws.cn/feed/tag/session/
cookie与session的比较 https://www.zzwws.cn/archives/4975/ https://www.zzwws.cn/archives/4975/ Thu, 17 Dec 2020 10:33:00 +0800 悠悠楠杉 特点cookiesession存储地址客户端服务器端存储类型字符串,数字字符串,数字,数组,对象创建方式setcookie直接操作$_SESSION读取$_COOKIE$_SESSION销毁setcookie(key,'',0)unset(),session_destroy() ]]> 0 https://www.zzwws.cn/archives/4975/#comments https://www.zzwws.cn/feed/tag/session/