编程语言
首页 > 编程语言> > PHP会话变量未使用ajax保留

PHP会话变量未使用ajax保留

作者:互联网

我有一个单页网站,使用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路径.对于大多数付费虚拟主机服务,他们只有一个会话的默认容器,但它受负载平衡的影响.真是个好主意.

解决方法:

我认为你在Ajax调用的页面上缺少session_start().

你需要:

<?php
session_start();
if(isset($_SESSION['views']))
    { echo "Views: " . $_SESSION['views'];} 
    else 
    { echo "Views: NOT SET";}
?>

标签:php,ajax,session-variables
来源: https://codeday.me/bug/20190926/1819128.html