Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 会话和jQuery_Php_Jquery_Session - Fatal编程技术网

Php 会话和jQuery

Php 会话和jQuery,php,jquery,session,Php,Jquery,Session,我有一个网站,我正在建设一个主要的前端在域名(它还没有在生产-所以希望细节不需要)。在client.domain.com上有一个客户计费网站 计费系统是经过编码的——我对它几乎没有控制权,但是有一个很好的API 我试图通过jQuery从该客户机区域获取一些信息,以显示在前端。令人费解的是,这在两天前才起作用,现在已经停止了 我用来获取所需内容的jquery很简单: $(document).ready(function(){ $.get("client/loginchec

我有一个网站,我正在建设一个主要的前端在域名(它还没有在生产-所以希望细节不需要)。在client.domain.com上有一个客户计费网站

计费系统是经过编码的——我对它几乎没有控制权,但是有一个很好的API

我试图通过jQuery从该客户机区域获取一些信息,以显示在前端。令人费解的是,这在两天前才起作用,现在已经停止了

我用来获取所需内容的jquery很简单:

     $(document).ready(function(){
        $.get("client/logincheck.php", function(data){
           $('#dynamicsidebar').append(data);
        });
     });
现在-我调用的页面(logincheck.php)位于站点的客户端区域。就目录结构而言,它位于前端的webroot下-在client/目录中,因此我可以使用相对路径调用它

目前,出于调试的目的,我只是简单地包含了计费信息的必需文件(我已成功登录)。然后,我打印$u会话数组的输出,该数组由计费系统(编码代码)填充,然后退出:

client/logincheck.php的代码

    require("dbconnect.php");
    require("includes/functions.php");
    require("includes/clientareafunctions.php");

    print_r($_SESSION);
    die();
如果我在浏览器(client.domain.com/logincheck.php)中直接浏览到该URL,我会得到以下输出:

    Array ( [calinkupdatecc] => 0 [calinkupdatesq] => 0 [uid] => 1 [upw] => a49de38fe12d325feb11bc9be1762482 [cainvorderby] => status [cainvsort] => DESC [cadomorderby] => domain [cadomsort] => ASC [caemailsorderby] => date [caemailssort] => DESC [caprodorderby] => product [caprodsort] => ASC ) 
这就是我所期望的

但是,从前端开始,div只附加了一个空数组:

    Array()
如果jQuery正在工作,那么它应该是会话数组,不是吗

如果这是相关的-我的php.ini文件中有session.cookie\u domain-.domain.com设置

谢谢你的帮助

**编辑**

我将client/logincheck.php中的代码替换为:

    if ($_SESSION['uid']) {
        echo "Logged In";
    } else {
       echo "Not logged in";

   }
   die();
现在奇怪的是——我直接浏览到页面,然后在屏幕上得到“登录”输出。在前端,我听到“未登录”的回声

那么,直接访问URL如何显示有效的会话,而使用GET检索页面如何显示其他内容呢?

我不知道每个人说的“正确”答案,但我首先要尝试以下方法:

  • 打开webkit浏览器(Chrome、Safari等)
  • 打开开发人员工具,以便捕获AJAX请求(在“网络”选项卡下)
  • 看看“请求头”
  • 看看“回应”
  • 我建议查看请求头,因为
    $.get
    方法试图智能地猜测返回的数据类型,除非您填写该参数[1]。我不是100%确定这可能与它有什么关系,但如果它认为它正在返回一种不同的数据类型,那么可能在幕后发生了一些奇怪的事情

    我还建议查看实际的响应标题,这样您就可以看到实际返回的内容。我在后端做了类似的事情,我得到了一个对象数组,所以当我附加响应时,它输出
    array

    正如我所说,这只是一个起点,我需要查看代码以更好地帮助您

    [1] jQuery$.get documentation:

    我不知道每个人说的“正确”答案,但我首先要尝试的是:

  • 打开webkit浏览器(Chrome、Safari等)
  • 打开开发人员工具,以便捕获AJAX请求(在“网络”选项卡下)
  • 看看“请求头”
  • 看看“回应”
  • 我建议查看请求头,因为
    $.get
    方法试图智能地猜测返回的数据类型,除非您填写该参数[1]。我不是100%确定这可能与它有什么关系,但如果它认为它正在返回一种不同的数据类型,那么可能在幕后发生了一些奇怪的事情

    我还建议查看实际的响应标题,这样您就可以看到实际返回的内容。我在后端做了类似的事情,我得到了一个对象数组,所以当我附加响应时,它输出
    array

    正如我所说,这只是一个起点,我需要查看代码以更好地帮助您


    [1] jQuery$.get documentation:

    我从未尝试过向jQuery发送php数组。您确定jquery可以从结构上理解它吗?也许可以尝试用json编码?如果您认为json可能有所帮助,下面是一个json示例。您是否尝试过使用FireBug查看您的Javascript是否有问题?也许您只需要在
    打印之前使用
    会话启动()
    ?大家好-谢谢-我将在下面添加相同的评论。我已经编辑了上面的帖子,显示用简单文本替换输出。问题似乎是GET查询没有显示会话数组集。我从未尝试过向jquery发送php数组。您确定jquery可以从结构上理解它吗?也许可以尝试用json编码?如果您认为json可能有所帮助,下面是一个json示例。您是否尝试过使用FireBug查看您的Javascript是否有问题?也许您只需要在
    打印之前使用
    会话启动()
    ?大家好-谢谢-我将在下面添加相同的评论。我已经编辑了上面的帖子,显示用简单文本替换输出。问题似乎是GET查询没有显示会话数组集。看看这是否给了你一些想法?我唯一能说的就是检查你2天前的源代码管理,看看有什么变化。您的
    会话.cookie\u参数设置正确,可以处理子域,因此绝对不是这样。不过,我需要查看完整的代码,因为听起来您的会话正在被覆盖。您是否编辑了该文件中的全部代码?如果不是的话,那就是那个街区上面的东西。也许可以检查一下传入的XMLHttpRequests是否得到了不同的处理?嗨,我在问题的底部添加了一个编辑,以排除数据复杂性因素。看看这是否给了你一些想法?我唯一能说的就是检查你的源代码管理