我想建立一个网站,运行时不刷新,使用jquery和PHP来填充滑入/滑出的div。基本工作正常,但我无法传递会话值。2 session_id()在我的网站上的麻烦 - PHP/Jquery
我有一个首先在PHP中捕获“$ user”的登录面板,然后存储为会话变量$ _SESSION ['user']。
然后我可以使用它的第一页OK(第一页被通过的index.php写的。) 后续页的jQuery叫,如:
$(".scrollclick").click(function() {
var show = this.getAttribute("id");
$("#page2content").load("showpage2.php?show="+ show);
$("#homepagecontent").hide("slide", { direction: "left" }, 1000);
$("#page2content").css("visibility","visible");
$("#page2content").show("slide", { direction: "right" }, 1000);
其中变量“秀”的由来从可点击的div图像名称。再次一切正常。
但是,问题在于,在初始主页加载之后,会话变量与其他加载的PHP页面不同。
我知道使用session_start();在每个PHP脚本的顶部,我用echo'ed session_id()来证明会话正在工作,奇怪的是会话ID不同。
我甚至还有其他脚本在其他脚本中非常高兴地填充了会话变量。
我似乎已经证明,网站上的其他每个PHP脚本都会创建带有SAME会话ID的页面,除了保存不同的主页。麻烦的是,它是主页会话,它包含我想要传播的“用户”变量。
我已经在Chrome,IE和FF中测试过它。全部都一样。结果是两个会话ID - 一个用于主页,另一个用于所有其他用户。
我猜测其他页面中有一些是以某种方式刷新会话,如session_write_close(),但我找不到它。我已经使用一些现成的(伟大的)脚本(jquery聊天,tutorialzine登录演示)创建了该站点,因此他们可能正在玩耍。
我今天刚刚设置了几个做大致相同的事情的虚拟页面,他们工作正常,所以那里有一个真正愚蠢的错误的地方!
可能的解决方法?
我甚至试图找到一种方法来手动传播PHP调用userid,但努力获得变量到Javascript(为jquery调用)[我可以得到这个工作确定],然后回到PHP? user = xxxx字符串,这样我就可以将它返回到另一端。 [不能得到这个工作]
我见过的建议使用一些建议:
var username = <?php echo $user;?>;
有人建议报价,有些则没有。用引号,它只是被解释为一个字符串,没有它似乎只是停止在其轨道上的JavaScript死亡
有没有人有任何指向会议问题或变量解决方法?
该网站的结构是平的btw,所有(大多数)在一个域中的一个目录。
不胜感激!(谁的人现在浪费3天转圈圈)
TonyJ
从经验来看,session不会被ajax遗留下来,也没有任何我能找到的工作。我很想看看是否有人可以把它关掉。 此外,浏览器无关紧要,因为PHP在服务器上运行 - 无论浏览器是什么,浏览器都会发送相同的信息。 – 2010-07-14 19:36:28