如何在PHP会话中跟踪来自同一用户的多个请求数据?

如何在PHP会话中跟踪来自同一用户的多个请求数据?,php,jquery,ajax,session,progress,Php,Jquery,Ajax,Session,Progress,所以问题有点复杂,让我解释一下。我的页面代码如下所示: 用户在搜索字段中输入查询并单击提交 1.1 jQuery加载新正文以显示进度数据 1.2 jQuery通过AJAX调用process.php,并提供query作为参数 1.3 jQuery启动setInterval定期更新以获取存储在$\u会话['prog']中的进度数据,并显示它 当process.php完成时,jQuery停止定期更新,显示最终信息并调用AJAX以清除$\u SESSION['prog']变量 目前,进度数据存储在一个变

所以问题有点复杂,让我解释一下。我的页面代码如下所示:

  • 用户在搜索字段中输入查询并单击提交

    1.1 jQuery加载新正文以显示进度数据

    1.2 jQuery通过AJAX调用process.php,并提供query作为参数

    1.3 jQuery启动setInterval定期更新以获取存储在$\u会话['prog']中的进度数据,并显示它

  • 当process.php完成时,jQuery停止定期更新,显示最终信息并调用AJAX以清除$\u SESSION['prog']变量

  • 目前,进度数据存储在一个变量中,这对于不同的用户来说是很好的(因为会话不同),但是如果同一个用户同时发出多个请求,$_SESSION['prog']变量将被交叉覆盖

    到目前为止,我已经想到了两种可能来区分来自同一用户(同一会话)的每个请求的数据

  • 让jQuery生成一些随机字符串,并将其与查询一起发送(希望避免共线,尽管这不太可能)

  • 进行2个AJAX调用,第一个请求新的\u请求\u id,第二个发送查询和新的\u请求\u id作为参数

  • 让AJAX在is完成之前从PHP返回一些东西

  • 我需要将每个浏览器窗口(每个请求)与每个正在运行的进程连接起来,因此在提交请求后我无法发回新的请求ID,因为我不知道在浏览器窗口中使用jQuery获取哪些数据。顺便说一句,我将把$\u SESSION['prog']改为$\u SESSION[request\u id]->request\u id就是我要找的

    它(request\u id)可能是最后一个\u insert\u id(),因为我正在为每个有效查询创建新的DB条目,但我不知道如何将它返回到每个不同的用户窗口

    我需要建议。只是刚刚开始用PHP、AJAX和jQuery编写代码,对会话了解不多。我应该如何解决这个问题


    很抱歉缺少代码,我将根据请求粘贴。

    除了会话ID之外,您可以为每个请求添加唯一的ID。例如,您需要以某种方式区分它们。例如,使用唯一的ID自动编号字段。MySQL有
    last\u insert\u id()
    ,非常有用,可以正确处理并发请求。

    避免在Ajax请求中使用会话变量。用GET(或POST)发送它们。即使调用
    会话_start()
    在Ajax请求中并从中获取
    $\u会话['prog']
    ,结果可能是意外的