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

1hdlvixo  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(130)

我正在尝试为所有子域使用一个session数据。
我在cpanel中创建了一个subdomain,如下所示:*.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 ...它创建了一个不同的会话。
我的代码点火器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;

任何帮助或建议都将是一个很大的帮助。提前感谢。

q9rjltbz

q9rjltbz1#

我是这样解决这个问题的。

$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;
nuypyhwy

nuypyhwy2#

Mohamed Sufian的答案基本上是正确的,但请注意,根据会话文档,会话驱动程序会忽略cookie_prefix设置。如果您希望拥有示例特定的cookie名称,则需要编辑sess_cookie_name配置选项。
例如:

$config['sess_cookie_name'] = 'my_prefix_ci_session';

 $config['cookie_prefix'] = "my_prefix_"; // Only relevant for non-session cookies
 $config['cookie_domain'] = ".example.com";
 $config['cookie_path'] = "/";

相关问题