保持 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 请求处于活动状态