首先,在我进行所有必要的代码更改以在我的网站中实现此功能之前,我先问这个问题。我的应用程序中99%的数据是通过ajax生成的,并作为json传回javascript,后者负责生成所有html内容。这与Angular.js类似,但有一个php后端。 index.php
唯一能做的就是启动会话,以及其他与会话相关的任务,例如区分访客和登录用户,以及更新访客/用户IP地址的最后时间。
这是我想做的事情:
session_id()
创建会话ID以获取会话的ID。我的问题是如果在这个问题上存储php会话ID,在向我的ajax api发出请求时,php仍会将会话视为有效吗?我试图构建一个带有静态html / js前端的应用程序,它完全通过这个ajax api进行交互。我们的目标是提供与Angular.js相似的特性和性能。这是可能的,如果是这样可取吗?
答案 0 :(得分:2)
看看Can an AJAX response set a cookie?。没有必要通过json和javascript设置cookie。 PHP和http将为您完成。
答案 1 :(得分:1)
如果您使用Javascript更改会话ID,则除非您将旧会话ID和新会话ID发送到服务器并将旧会话ID设置为php中的新会话ID,否则php不会将其显示为有效。
我不确定你是否愿意这样做。
答案 2 :(得分:1)
不要那样做。如果你这样做,会话劫持将更容易完成。坚持PHP使用选项httponly设置cookie。单独选择' httponly'使会话劫持变得更加困难。