Maison > développement back-end > tutoriel php > session_destroy()不能立即生效,该怎么解决

session_destroy()不能立即生效,该怎么解决

WBOY
Libérer: 2016-06-13 11:59:02
original
1185 Les gens l'ont consulté

session_destroy()不能立即生效
在html里用链接到一个php页面,该php页面会销毁session,但是当打开该页面的时候session还存在,只有再刷新一次该php页面才能销毁session。该页面就两条语句$_SESSION = array();session_destroy();     session_start()已经开启。
请问这是什么情况

------解决方案--------------------
你在 B页面中执行 session_destroy(); 前 session 自然是存在的,否则就没必要 session_destroy(); 了
你只在重入B页面(比如刷新)才会发现 session 没有了
因为对用户而言, session_destroy() 只是发送注销 cookie 中的 sessionid 的指令 
------解决方案--------------------
a.php



b.php
<br /><?php<br />session_start();<br />$_SESSION = array();<br />session_destroy();<br />var_dump($_SESSION['name']);<br />?><br />
Copier après la connexion

------解决方案--------------------

引用:
Quote: 引用:

那这样页面其实一直都没有结束,当然当前的session就不会消失了。

connection_aborted()这一句可以检查客户端是否断开,但是它执行需要在页面输出内容,所以添加了ob_flush();flush();
问题是这两句会导致销毁session的那个页面无法正常执行,也就是必须手动刷新才能销毁session


所以,有没有其他办法,在客户端断开时关闭这个循环。或者有没有其他办法,正常执行销毁session的那个页面。
出现这样的问题是ob_flush();flush();的问题吗?要怎么办呢?

我这么做就是为了防止用户长时间不登陆被踢下线的保活,还有其他办法吗?


你的页面一直未结束,当前页面的session一直未更新到文件。这就是session_destroy()不能立即生效的原因。
在session_destroy(); 后面加 session_write_close(); 就可以解决这个问题了。
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal