【发布时间】:2011-11-25 17:43:36
【问题描述】:
有没有办法让 CGI::Session 将会话 ID 存储在 cookie 或查询字符串之外的其他东西中?
【问题讨论】:
-
你想把它存储在哪里?您可以手动将其放入 Javascript 变量或 DOM 元素属性中,但您还需要确保它仍能再次到达服务器。
有没有办法让 CGI::Session 将会话 ID 存储在 cookie 或查询字符串之外的其他东西中?
【问题讨论】:
在 cookie 或查询字符串中存储会话 ID 是 HTTP 协议允许在每个请求上传输会话 ID 的仅有的两种方式。如果将其存储在其他地方,则客户端和服务器无法知道它们正在使用同一个会话。
【讨论】:
您可以要求 CGI::Session 将会话数据保存在您选择的数据库中。对于 MySQL,您可以这样做:
use CGI::Session;
$session = new CGI::Session("driver:MySQL", undef, {Handle=>$dbh});
详情请见CGI::Session::MySql。
【讨论】: