【问题标题】:Mootool - Ajax vs $_SESSION PHPMootool - Ajax 与 $_SESSION PHP
【发布时间】:2011-01-27 08:16:35
【问题描述】:
var ajax = new Ajax('process.php', {
   method: 'post',
   data:options,
   onComplete: function(data){
         alert(data);
    }

  });

进程.php

    session_start();
    $_SESSION['data'] = 'hello';
    echo $_SESSION['data'];

index.php

  session_start();
   echo $_SESSION['data'];    // return null

运行 ajax 我得到警报“你好”。好的 运行 index.php 我什么也没得到 ​​p>

我无法获得 $_SESSION['data'] ,它是未定义的。为什么?

【问题讨论】:

  • process.php 应该被引用:'process.php'。你在哪里不能检索$_SESSION['data']
  • 加引号,我确定ajax运行成功
  • 您的 ajax 代码在哪个文件中?
  • 这看起来像是 PHP 会话而不是 mootools 的问题。需要 SID 吗?检查您的 php.ini 设置,imo。在 js 中,您可以创建类似 window.sessionStorage.setItem("data", "hello") -> window.sessionStorage.getItem("data"); // hello! 的后备(如果支持 - 检查窗口中的 sessionStorage 是否进行功能检测)

标签: php ajax session mootools


【解决方案1】:

如果您不知道 ajax 工作或不知道,您可以这样做: 在process.php中取

file_put_contents('test.txt', 'its work', FILE_APPEND);

如果测试文件创建它意味着你调用该文件 如果它没有设置会话,你必须遵守如下:

它在会话中写入,但如果您想阅读它,您必须再次启动会话才能阅读 每当您想从会话中读取时,再次从服务器上的会话文件中获取会话值

【讨论】:

  • 我添加了 session_start() 但仍然未定义
  • 你确定你调用了 process.php 吗?
  • 不需要额外的文件写入测试。在 process.php 中有一个回显,回显的文本由 alert 显示。因此,如果警告框中显示正确的文本,则 ajax 成功。
  • @highelf:是的。我确定,带有“你好”的警告框
  • 可能是你的 PHPSESSID 没有设置
【解决方案2】:

两件事:

  1. 您可能刚刚在示例中忽略了此代码,但您的 mootools 代码仅创建 Ajax 对象。要让它发送请求,你需要使用 request 方法:

    ajax.request();

  2. 您是否尝试在 ajax 请求中发送您希望 $_SESSION['data'] 等于的值?如果是这种情况,您将查看 $_POST 变量以获取您通过 Ajax 对象发送到服务器的值(因为您已将“post”设置为请求方法)。如果您希望在 $_SESSION 中设置您在请求中发送的值,您需要自己将它们放在 process.php 中。

试试这个代码(我最好的想法是你想要做什么):

对于 javascript/mootools:

var ajax = new Ajax('process.php', {
  method: 'post',
  data:{'data':'hello'}
});
ajax.request();

在process.php中:

session_start();
$_SESSION['data'] = $_POST['data']; /* $_SESSION['data'] = 'hello'*/

此外,如果您的 ajax javascript 包含在您正在回显 $_SESSION['data'] 的 index.php 页面中,那么您需要刷新 index.php 才能看到对 $_SESSION 所做的更改你的 ajax 请求。

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 2018-07-27
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多