PHP 和 AJAX session : Session variables different on AJAX page than on page called from

标签 php ajax session

我有一个登录页面,涉及销毁 session 并启动新 session 。 Chrome 和 Firefox 之间的结果非常不一致。

我正在使用以下方式清除 session :

session_unset();
session_destroy();
session_start();
$_SESSION = array(); 

但是 session 中的变量似乎仍然存在,直到我刷新页面然后它们就消失了。除此之外,我的第二个问题是从该登录页面调用的 ajax 页面上关键的 $_SESSION 变量是不同的。这会在 ajax 页面上造成大问题和不一致的结果。

销毁 session 并使用可用于 ajax 页面的新变量设置它的最佳方法是什么?

最佳答案

如果您正在使用 session cookie,您也必须“删除”它们。

$cookie_params = session_get_cookie_params();

setcookie(
    session_name(),
    false,
    strtotime('2000-01-01')
    $cookie_params['path'],
    $cookie_params['domain'],
    $cookie_params['secure']
);

当然,在您发送响应之前,浏览器不会删除 cookie。
新 session 将在下一个请求时创建。

PS:手册指出:

Only use session_unset() for older deprecated code that does not use $_SESSION.

关于PHP 和 AJAX session : Session variables different on AJAX page than on page called from,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868651/

相关文章:

javascript - 基本的 jquery 延迟使用与 ajax

php - laravel 的 Session flush and forget 方法没有按预期工作

.net - 无法将表达式类型 'NHibernate.IQueryOver<T,T>' 转换为返回类型 'System.Linq.IQueryable<T>'

php - 尝试使用 Twig 从数据库中呈现实体地址

php - curl_getinfo 返回 -1 作为内容长度

javascript - 将 Var 从 JavaScript 传递到 php ,错误 :

c# - 生产服务器上的 session 为空

php - MYSQL ON DUPLICATE KEY 插入其他内容

javascript - 使用 jquery ajax 中选择的 Jquery

javascript - 获取或发布请求返回快速响应?