php - Kohana 持久 session 和子域

标签 php kohana

我正在 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/

相关文章:

php - url::redirect 在 kohana 3.1 中

kohana - 如何在 Kohana 中获取当前请求的完整地址?

php - Preg_replace BBCode 链接

php - 视频缩略图生成imagemagick?

php - 此查询是否获取不必要的信息?我应该更改查询吗?

php - Kohana 3.0 中的 .htaccess 规则?

php - 旧版本的 PHP/MYSQL 是否有 NOT NULL 列的默认值?

Kohana 示例 CRUD 应用程序

javascript - PHP & cURL——奇怪的输出

php - XAMPP 正在删除带有下划线的 HTTP header