Qui*_*nma 14 php ajax session-variables
我有一个单页网站,使用AJAX加载新的PHP文件并更新显示.
我在主页面上启动我的php会话但是当我使用ajax更新内部html时,我需要为正在加载的新php文件使用这些会话变量.
这篇文章与此类似:PHP会话变量未保留.但我检查了我的php.ini有session.use_cookies = 1
主页PHP:
<?php
session_start();
if(isset($_SESSION['views']))
{$_SESSION['views']=$_SESSION['views']+1;}
else
{$_SESSION['views']=1;}
?>
Run Code Online (Sandbox Code Playgroud)
用户输入之后我使用ajax来调用php文件并加载页面的子部分:
<?php
if(isset($_SESSION['views']))
{ echo "Views: " . $_SESSION['views'];}
else
{ echo "Views: NOT SET";}
?>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,我错过了哪一个重要的步骤?谢谢.
更新:在对主页和子页面添加session_id()调用后,我看到两个页面都具有相同的Session_ID.但是它仍然无法拉取会话变量,如果我确实为它赋值,则两个相同名称的会话变量保持彼此独立.
回答这个问题创建的问题: 我发现我必须在php.ini文件中设置静态session_save路径.对于大多数付费虚拟主机服务,他们只有一个会话的默认容器,但它受负载平衡的影响.真是个好主意.
dre*_*010 26
我认为你在session_start()Ajax调用的页面上遗漏了.
你需要:
<?php
session_start();
if(isset($_SESSION['views']))
{ echo "Views: " . $_SESSION['views'];}
else
{ echo "Views: NOT SET";}
?>
Run Code Online (Sandbox Code Playgroud)