我正在 Kohana v2 中使用数据库 session 驱动程序。为了使 session 持久化,Kohana 创建了一个 token cookie。这个cookie使用了我认为的cookie配置。
当我设置这样的 session 时:
$this->session->set('UserID', $user->UserID);
即使浏览器关闭, session 变量 UserID 仍然可用。不错。
cookie 使用此配置设置:
$config['domain'] = '.mydomain.com';
设置 session 变量时如何设置域?每个用户都有自己的子域,因此它是一个动态值。
最佳答案
在引导过程之前,您可以在 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" ;
关于php - Kohana 持久 session 和子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793259/