我在Kohana v2中使用数据库会话驱动程序。为了使会话持久化,Kohana创建了一个令牌cookie。这个cookie使用我想的cookie配置。
当我设置这样的会话时:
$this->session->set('UserID', $user->UserID);
即使浏览器关闭,会话变量UserID也可用。好的。
Cookie使用此配置设置:
$config['domain'] = '.mydomain.com';
如何在设置会话变量时设置域?每个用户都拥有自己的子域,因此它是动态值。
答案 0 :(得分:3)
您可以在引导过程之前在index.php
中找出您正在使用的子域,然后在cookie配置文件中包含该变量。像(未经测试)的东西:
$myDomain = 'mydomain.com' ;
$currDomain = $_SERVER['SERVER_NAME'];
$subDomain = '' ;
//remove www if needed
if (substr($currDomain, 0, 4) == 'www.') {
$currDomain = substr($currDomain, 4) ;
}
$currDomainPos = strpos($currDomain, $myDomain) ;
if ($currDomainPos !== false) { //sanity check, myDomain string must exist
if ($currDomainPos !== 0) {
//got subdomain since SERVER_NAME doesn't start with myDomain
$subDomain = substr($currDomain, 0, $currDomainPos) ;
}
}
然后在cookie配置中:
$config['domain'] = "$subDomain.mydomain.com" ;