我的用户已在CMS上的site_url.com
登录,但我现在正在子域m.site_url.com
上的CMS之外开发该网站的移动版本,并希望会话结转
我已经包含了一个包含所有CMS功能的文件,如下所示:
<?php include_once'/home/flyeurov/public_html/core/codon.config.php';?>
我可以在移动网站上正常登录:
<input type="hidden" name="mobileVersion" value="True">
<input type="hidden" name="redir" value="" />
<input type="hidden" name="action" value="login" />
<input class="login-btn" type="submit" name="submit" value="Log In" />
上述内容由login.php
处理。但是,CMS登录会将其重定向到CMS的页面,我需要将移动版本重定向到m.site_url.com
子域指向的/ mobile目录中的页面。因此,在login.php
中(不要与mobile/login.php
混淆 - 主login.php
用于CMS)。我这样做了,它重定向到mobile/crew_center.php
- 一个应该在移动版本上重定向的页面。
if (isset($_POST['mobileVersion'])) {
header('Location: http://m.site_url.com/crew_center.php');
} else {
$this->post->redir = str_replace('index.php/', '', $this->post->redir);
header('Location: '.url('/'.$this->post->redir));
}
上述代码可能与我的问题有关。
我的问题是主CMS的会话没有转移到移动网站。在mobile/index.php
我有这个声明,这是行不通的。登录后,用户应该看到crew_center.php
,因为显示登录表单毫无意义。目前,当用户登录CMS时,登录页面仍会显示在移动版本上。
但是,如果我在浏览器中删除子域并输入site_url/mobile
,则会打开右侧页面crew_center.php
。
<?php include_once'/home/flyeurov/public_html/core/codon.config.php';
session_set_cookie_params(0, '/', 'site_url.com');
session_start();
if(Auth::LoggedIn())
{
header("Location: crew_center.php");
}
else
{
header("Location: login.php");
}
?>
如何解决此问题,如何使用PHP将会话数据从主域共享到子域?
codon.config.php - http://pastebin.com/BWcbddGG
答案 0 :(得分:1)
您需要相应地设置Cookie的域名 - 在您的域名中添加.
:
session_set_cookie_params(0, '/', '.site_url.com');
这将在您的所有子域和二级域中共享您的Cookie。