我试图让我的脚本使用 url 会话 ID 而不是 cookie。下面的页面没有选择 url 中的变量作为会话 id。我肯定错过了什么。
首页http://www.website.com/start.php
ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
session_start();
$session_id = session_id();
header("location: target.php?session_id=". $session_id );
Run Code Online (Sandbox Code Playgroud)
以下页面 - http://www.website.com/target.php?session_id=rj3ids98dhpa0mcf3jc89mq1t0
ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
print_r($_SESSION);
print(session_id())
Run Code Online (Sandbox Code Playgroud)
结果是不同的会话 ID,会话为空。
数组([调试] => 否)pt1t38347bs6jc9ruv2ecpv7o2
看起来你只需要在第二页上调用session_start()即可。
来自文档:
session_start() 根据通过请求(例如 GET、POST 或 cookie)传递的当前会话 ID 创建一个会话或恢复当前会话。
编辑:
也就是说,您也可以尝试手动从查询字符串中获取会话 ID。在第二页上,您需要执行以下操作:
ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
session_id($_GET['session_id']);
print_r($_SESSION);
print(session_id());
Run Code Online (Sandbox Code Playgroud)
请注意,如果将 id 作为参数传递给session_id()函数,它将设置 id。
| 归档时间: |
|
| 查看次数: |
44639 次 |
| 最近记录: |