我想在php中使用会话,并没有变得很远。我所有的php页面都是通过单个“门户页面”中的ajax调用的。我使用会话在ajax调用之间存储信息。我有一个包含文件,它是每个ajax页面中第一个将session_start作为第一个方法调用的文件。会话数据似乎可以保存。但是,当我在用户注销页面完成时,我遇到了摆脱会话的问题。 登出页面是一个Ajax网页基本上做到这一点:php session_destroy后不会丢失会话数据
session_start();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,$params["path"], $params["domain"], $params["secure"], $params["httponly"]);
}
//code to unset session variables
session_destroy();
,如果我尝试写会话变量的注销页面在屏幕上它是空的,因为你所期望的。但是,如果我刷新门户网站页面并显示session_id屏幕,它与上次会话刚刚被销毁的ID相同。如果我关闭浏览器并再次打开它,我有一个新的会话
php会话cookie在注销页面被调用后仍然在浏览器cookie中。自然页面刷新将加载这个cookie。为什么cookie不被删除?我的代码有问题,或者它与ajax页面有关?
你为什么在那里设置一个cookie?为什么要调用'$ _SESSION = array();'? – kelunik
难道是你仍然保存会话ID在URL或隐藏的表单字段? –
你确定你不是程序员吗? –