是否可以通过ajax传输PHP会话id并将其与jquery cookie一起存储?

是否可以通过ajax传输PHP会话id并将其与jquery cookie一起存储?,php,ajax,json,session,Php,Ajax,Json,Session,首先,在我进行所有必要的代码更改以在我的网站中实现这一点之前,我要问这个问题。我的应用程序中99%的数据是通过ajax生成的,并作为json传输回负责生成所有html内容的javascript。其工作原理与Angular.js类似,但使用php后端。index.php所做的唯一一件事就是启动会话,以及一些其他与会话相关的任务,比如区分来宾和登录用户,并更新来宾/用户ip地址的最后一次查看时间 以下是我想做的: 使用session\u id()获取会话id,在创建会话后获取会话id 将其添加到数组

首先,在我进行所有必要的代码更改以在我的网站中实现这一点之前,我要问这个问题。我的应用程序中99%的数据是通过ajax生成的,并作为json传输回负责生成所有html内容的javascript。其工作原理与Angular.js类似,但使用php后端。
index.php
所做的唯一一件事就是启动会话,以及一些其他与会话相关的任务,比如区分来宾和登录用户,并更新来宾/用户ip地址的最后一次查看时间

以下是我想做的:

  • 使用
    session\u id()
    获取会话id,在创建会话后获取会话id
  • 将其添加到数组中,并对其进行json编码
  • 使用javascript解码json,并使用jQuery cookie插件手动创建/更新会话id cookie

  • 我的问题是,如果在这件事中存储php会话id,php在向我的ajax api发出请求时是否仍将会话视为有效?我试图构建一个应用程序,该应用程序使用静态html/js前端,完全通过这个ajax api进行交互。目标是提供与Angular.js类似的特性和性能。这可能吗?如果可能,这是否可取

    如果使用Javascript更改会话id,则除非将旧会话id和新会话id发送到服务器并在php中将旧会话id设置为新会话id,否则php不会将其显示为有效


    但是我不确定您是否希望这样做。

    如果您使用Javascript更改会话id,php将不会将其显示为有效,除非您将旧会话id和新会话id发送到服务器,并在php中将旧会话id设置为新会话id


    我不确定您是否愿意这样做。

    不要这样做。如果您这样做,会话劫持就会容易得多。坚持使用PHP,使用选项httponly设置cookie。单独使用“httponly”选项会使会话劫持更加困难。

    不要这样做。如果您这样做,会话劫持就会容易得多。坚持使用PHP,使用选项httponly设置cookie。仅“httponly”选项就更难进行会话劫持。

    请看。不需要通过json和javascript设置cookie。PHP和http将为您完成这项工作

    看看。不需要通过json和javascript设置cookie。PHP和http将为您完成这项工作

    为什么要通过json更新会话cookie?PHP将自动设置它。或者为什么不呢?@LorenzMeyer我正试图拥有一个静态index.html,并通过ajax控制器拥有所有php。因此希望通过json手动传递会话id,然后在浏览器中进行设置。我想完全取消php索引文件,选择一个完全html js前端。为什么要通过json更新会话cookie?PHP将自动设置它。或者为什么不呢?@LorenzMeyer我正试图拥有一个静态index.html,并通过ajax控制器拥有所有php。因此希望通过json手动传递会话id,然后在浏览器中进行设置。我想完全取消php索引文件,选择一个完全html js的前端。甚至不接近我所要求的,但我很感谢你的尝试。我说的是在php中创建会话并更新会话ID,然后在json响应中传递它们,并通过javascript设置/更新它们。由于所有Cookie都是通过http请求发送的,因此我认为只要会话前缀有效且会话id有效,这将起作用。虽然与我的要求相差不大,但我非常感谢您的尝试。我说的是在php中创建会话并更新会话ID,然后在json响应中传递它们,并通过javascript设置/更新它们。由于所有cookie都是通过http请求发送的,所以我的理论是,只要会话前缀有效,会话id有效,这将起作用。我相信这在HHVM中是自动的。会话已经被大修了很多。我相信这在HHVM中是自动的。会议进行了大量的改革。