如何在使用XMLHttpRequest时保留PHP中生成的对象

如何在使用XMLHttpRequest时保留PHP中生成的对象,php,javascript,ajax,Php,Javascript,Ajax,我正在开发包含主文件index.php的网页,如下所示: 这是我的ajax脚本: 当我点击下个月触发的按钮时,我得到了错误: 致命错误:在第41行的/var/www/../html/calendar.php中对非对象调用成员函数check_date 这意味着对象用户不存在,所以我不能使用用户类中的方法。在calendar.php中创建用户的新实例是不可能的,因为每当用户尝试将calndar视图更改为下个月时,它都会注销该用户。在执行所有这些AJAX操作时,我应该如何从index.php保存/

我正在开发包含主文件index.php的网页,如下所示:

这是我的ajax脚本:

当我点击下个月触发的按钮时,我得到了错误:

致命错误:在第41行的/var/www/../html/calendar.php中对非对象调用成员函数check_date


这意味着对象用户不存在,所以我不能使用用户类中的方法。在calendar.php中创建用户的新实例是不可能的,因为每当用户尝试将calndar视图更改为下个月时,它都会注销该用户。在执行所有这些AJAX操作时,我应该如何从index.php保存/传递对象?谢谢

您需要php层是状态完整的,这是通过会话完成的。

HTTP是无状态的。您可能想使用cookies。我已经阅读了更多关于该问题的内容,您必须使用序列化函数在许多php页面之间传递对象。-并解释如下:
include('UserClass.php');
include('html/top.php');
$user = new User();
if (isset($_POST['user'], $_POST['pass']))
{
   $user->login($_POST['user'], $_POST['pass']);
}

if ($user->logged != 1)
{
   include('html/forms/login.html');
   include('html/forms/register.html');
   include('html/calendar.php');
}
function nextMonth()
{
   var xmlhttp = new XMLHttpRequest();
   xmlhttp.onreadystatechange=function()
   {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
         document.getElementById("text").innerHTML=xmlhttp.responseText;
      }
   }
   xmlhttp.open("GET", "html/calendar.php", true);
   xmlhttp.send();
}