PHP会话变量我有一个使用AJAX来加载新的PHP文件,并更新显示一个页面的网站。不保留与阿贾克斯
我开始在主页上我的PHP会话,但是当我使用Ajax来更新内部HTML我需要新的PHP文件的会话变量被加载。
这篇文章是与此类似:PHP Session Variables Not Preserved。但我检查,我的php.ini具有session.use_cookies = 1
主页PHP:
<?php
session_start();
if(isset($_SESSION['views']))
{$_SESSION['views']=$_SESSION['views']+1;}
else
{$_SESSION['views']=1;}
?>
用户输入后,我使用Ajax调用PHP文件并加载网页的小节:
<?php
if(isset($_SESSION['views']))
{ echo "Views: " . $_SESSION['views'];}
else
{ echo "Views: NOT SET";}
?>
有人可以告诉我我错过了什么重要的步骤吗?谢谢。
更新:在向主页面和子页面添加session_id()调用后,我看到两个页面都具有相同的Session_ID。然而,它仍然不能拉动会话变量,如果我给它赋值,两个相同的名称会话变量保持独立于另一个。
回答此问题创建的问题:我发现我必须在我的php.ini文件中设置静态session_save路径。对于大多数付费虚拟主机服务,它们只有会话的默认容器,但受到负载平衡的影响。什么是相关的。
当我在新文件中使用session_start()创建一个新的会话。反正有链接这些会话吗? – Quinma 2012-08-01 23:07:49
会话的“链接”是会话cookie,它应该位于HTTP请求的Cookie标头中... – Peter 2012-08-01 23:15:36
您没有使用负载平衡的网络服务器,是吗? (当为PHP会话使用默认的基于文件的后备存储时,主机自然无法共享会话信息) – Peter 2012-08-02 05:25:16