保持 php 会话处于活动状态并可以从 jquery 访问

Posted

技术标签:

【中文标题】保持 php 会话处于活动状态并可以从 jquery 访问【英文标题】:keep php session alive and acessible from jquery 【发布时间】:2011-03-26 18:21:26 【问题描述】:

在管理我的会话时遇到很大问题,所以我正在寻求帮助。

场景

从 1 部 iphone 我在这里加载 index.php 登录表单

jquery

$("#login").live('click', function(event) 
   //here I've the user input username and password an load the login.php

在 login.php 我也有 session_start() 并且如果用户确实是他声称的那个我声明session['user'] = $user; and session['pass'] = $pass; 然后将他重定向到 imap.php

imap.php 也有session_start()

他做了所有事情并返回一个带有一些我将用作按钮的 div 的 html 字符串

jquery

$("#erase").live('click', function(event) 
    //here i load the erase.php

擦除.php

还有session_start(),但现在session['user']session['pass'] 不见了……

所有的加载都是用post方法完成的

我可以做些什么来维护会话变量?

谢谢

【问题讨论】:

您是否检查过是否创建了新会话?新会话看起来与那些变量“消失”完全相同,因为它们是在其他会话中设置的。 对不起,没有理解你的帖子,是的,创建了一个新会话...我阅读了 php 会话文档,但没有结果,可能使用 session_name(test),然后调用每个session_name(test).some_var 的 php 文件,但不知道该怎么做 :-( 感谢回复 检查会话 id(使用session_id() 检索)是否在所有请求中保持不变。如果它发生变化,很可能每次都会生成一个新会话。 你好,session_id 总是不同的......我确实在 ,签署 session_name 的目的是什么?不知道怎么办 session_name() 只是发送到客户端的 cookie 的名称,其中包含会话 ID。由于 ID 每次都在更改,因此某些原因会导致您的 cookie 不“粘”,并且每次都会创建一个新会话。 【参考方案1】:

要记住的一件非常重要的事情是 session_start() 必须首先被调用,在你的 php 脚本中的任何东西之前。

示例:

..其余代码

?>

另外,确保 session_start() 和

检查您的错误日志文件也是一个好主意(假设您有一个)。它们在处理会话时非常有用。

希望这会有所帮助!

【讨论】:

感谢您的回复,我要检查一下(明天,现在不在办公室),我知道我在 session_start 之前有作为 gzip 命令的服务,但它是唯一的。 你好,

以上是关于保持 php 会话处于活动状态并可以从 jquery 访问的主要内容,如果未能解决你的问题,请参考以下文章

在 Ajax 调用期间保持 ASP.Net 会话处于活动状态

服务器断开连接后如何在 Spring MVC 中保持客户端会话处于活动状态

检查 sessionid 已知的 PHP 会话是不是处于活动状态

Worklight 在用户注销时保持 HTTP 请求处于活动状态

重新加载页面后保持按钮处于活动状态(使用 PHP 和 HTML)

如何防止 Ajax 调用使会话保持活动状态?