将会话数据共享到所有子域codeigniter

时间:2014-03-23 08:42:07

标签: codeigniter session wildcard-subdomain

我正在尝试为所有子域使用一个session数据。

我在subdomain中创建了cpanel,如下所示:*.mydomain.in

我的*.mydomain.in使用与mydomain.in示例相同的路径:

mydomain.in使用我服务器上的路径:/public_html/mydomain.in

*.mydomain.in使用我服务器上的路径:/public_html/mydomain.in

现在问题是我每次访问该网站时都会创建一个不同的会话。例如:

我访问mydomain.in ....它会创建一个会话。

我访问example.mydomain.in ....它会创建一个不同的会话

我再次访问mydomain.in ...它会创建一个不同的会话。

我的codeigniter config文件:

$config['encryption_key'] = 'MY-SECRET-KEY-HERE';

$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;

$config['cookie_prefix'] = "";
$config['cookie_domain'] = ".mydomain.in";
$config['cookie_path'] = "/";
$config['cookie_secure'] = FALSE;

任何帮助或建议都会有很大帮助。提前谢谢。

1 个答案:

答案 0 :(得分:10)

以下是我解决问题的方法。

 $config['sess_cookie_name'] = 'ci_session';
 $config['sess_expiration'] = 0;
 $config['sess_expire_on_close'] = TRUE;
 $config['sess_encrypt_cookie'] = TRUE;
 $config['sess_use_database'] = TRUE;
 $config['sess_table_name'] = 'ci_sessions';
 $config['sess_match_ip'] = TRUE;
 $config['sess_match_useragent'] = FALSE;
 $config['sess_time_to_update'] = 300000000;


 $config['cookie_prefix'] = "etc_anything_";
 $config['cookie_domain'] = ".mydomain.in";
 $config['cookie_path'] = "/";
 $config['cookie_secure'] = FALSE;