1

我的用户在site_url.comCMS 上登录,但是我现在正在开发该网站的移动版本,位于子域上的 CMS 之外,m.site_url.com并希望继续进行会话。

我已经包含了一个包含所有 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 目录中的页面。因此,in login.php(不要与mobile/login.php- mainlogin.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

4

1 回答 1

1

您需要相应地设置 cookie 的域 - 在.您的域名中添加一个:

session_set_cookie_params(0, '/', '.site_url.com');

这将在您的所有子域和二级域中共享您的 cookie。

于 2013-07-26T11:57:56.940 回答