我有一个域名,我也创建了一个名为www.join.domainname.com
的子域名,现在的问题是我在主域名登录页面www.domainname.com/support/login.php
上开始会话
同一域中的所有页面与会话正常工作,但当我试图检查会话时on: www.join.domainname.com/member.php
www.join.domainname.com/member.php
的代码:
session_start();
$session_key = (isset($_SESSION['userid'])) ? $_SESSION['userid'] : 'empty';
echo $session_key;
它返回结果empty
您必须将会话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');
根据我以前的经验,要使您的会话跨域/子域可用,您需要使用会话。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();