我有域名,我创建了一个名为www.join.domainname.com
的子域名,现在问题是我在主域登录页面上启动会话www.domainname.com/support/login.php
同一个域中的所有页面都能正常使用会话,但是当我尝试检查会话时
on:www.join.domainname.com/member.php
我没有得到任何我不知道为什么? Plz帮我解决了这个问题,这里是www.join.domainname.com/member.php
的代码:
session_start();
$session_key = (isset($_SESSION['userid'])) ? $_SESSION['userid'] : 'empty';
echo $session_key;
返回结果empty
。
答案 0 :(得分:2)
您必须将会话Cookie域设置为.domainname.com
,以便所有子域都可以访问它。
您可以使用session_set_cookie_params执行此操作。
session_set_cookie_params(0, '/', '.domainname.com');
session_start();
或者,您可以使用ini_set
ini_set('session.cookie_domain','.domainname.com');
答案 1 :(得分:0)
根据我之前的经验,您可以跨域/子域使用会话,您需要使用session.cookie_domain设置,例如
// Start the session
DEFINE('COOKIE_BASE_DOMAIN_NAME', '.domain.com');
$some_name = session_name("domain-name");
ini_set('session.cookie_domain', COOKIE_BASE_DOMAIN_NAME);
session_start();