当前位置: 首页 > 知识库问答 >
问题:

没有用ajax保留PHP会话变量

梁明辉
2023-03-14

我有一个一页的网站,使用AJAX加载新的php文件和更新显示。

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

UPDATE:在将session_id()调用添加到主页面和子页面之后,我看到两个页面都有相同的session_id。然而,它仍然不能拉出会话变量,如果我给它赋值,两个同名会话变量将保持相互独立。

这个问题产生的问题的答案:我发现我必须在php.ini文件中设置一个静态session_save路径。对于大多数付费的webhosting服务,它们只是有一个默认的会话容器,但它受到负载平衡的影响。真是个释放者。

共有1个答案

沃皓轩
2023-03-14

我认为Ajax调用的页面中缺少session_start()

您需要:

<?php
session_start();
if(isset($_SESSION['views']))
    { echo "Views: " . $_SESSION['views'];} 
    else 
    { echo "Views: NOT SET";}
?>
 类似资料:
  • 问题内容: 我有一个使用AJAX加载新php文件并更新显示的单页网站。 我从主页开始php会话,但是当我使用ajax更新内部html时,我需要这些会话变量来加载新的php文件。 这篇文章与此类似:PHP会话变量未保留。但是我检查了一下,我的php.ini有 主页PHP: 在用户输入之后,我使用ajax调用php文件并加载页面的一个小节: 有人可以告诉我我缺少哪些重要步骤吗?谢谢。 更新: 在主页和

  • 问题内容: 如果我有一个用户登录到我的网站,并将其ID存储在中,则从他的浏览器中单击“保存”按钮,这将向服务器发出AJAX请求。他和cookie是否会保留在此请求中,我是否可以安全地依赖出现在ID中的ID ? 问题答案: 答案是肯定的: 会话在服务器端维护。就服务器而言,AJAX请求和常规页面请求之间没有区别。它们都是HTTP请求,并且都以相同的方式在标头中包含cookie信息。 无论是常规请求还

  • 问题内容: 我不确定这是否可能。 我的“活动”网站正在处理注册并将其保存到我们的数据库中,但是我们的主站点负责处理信用卡处理。通过在主网站上处理当前的购买,会话可用于将数据传递到付款/抄送屏幕。 不必更改我的付款代码(例如接受$ _GET参数),我的变量是否应该传递过来? 例: 我的页面在上面查找地址会话变量。 问题答案: 跨域会话ID 默认情况下,使用cookie传递会话ID。由于您的网站位于不

  • 我是使用会话变量的新手,尽管我在网上搜索了解会话变量,但我一直在苦苦挣扎。 所以基本上我有一个页面(search.php)。我加载一个基于搜索表单的动态数据表。加载表后,我通过AJAX执行以下操作: 正如您在Success和单击table row记录时所看到的,我的想法是通过AJAX发布一个变量以供以后使用。并将用户重定向到update.php页面。 然后,我希望使用发布的AJAX变量在sessi

  • 我有以下代码: 但是由于某种原因,$_SESSION变量不保留值。输出如下: 注意:未定义的索引:lang in/home/claudio/public_html/index。第13行的php数组()数组([get]= 警告:需要(lang/. php):打开流失败:第23行的 /home/claudio/public_html/index.php中没有这样的文件或目录 致命错误:require(

  • 问题内容: 有没有一种方法可以在PHP中启动持久性会话而无需放置会话cookie?是否还有其他方法可以跨页面维护会话,例如基于IP地址的解决方案? 我问的原因是,尽管大多数用户都启用了cookie,但我想看看是否有一种方法可以使禁用它的用户使用登录系统(即使我个人认为禁用cookie只是不必要的偏执狂)。 问题答案: 我认为要求您的用户启用Cookie并不过分。当人们完全关闭它们时,我觉得很愚蠢。