繁体   English   中英

需要通过Wordpress将子域代码点火器信息传递给域

[英]Need to pass subdomain codeIgniter info to domain with wordpress

我有一个域。 我们将此问题称为www.example.com 多亏了我如何设置和/或设置Wordpress的奇迹,如果我输入example.com ,它将把我重定向到www.example.com,而Wordpress将完成它的工作。 我还拥有一个名为members.example.com的子域,在该子域中,我使用CodeIgniter将一个复杂的系统构建到public_html的/ members文件夹中。

在一个理想的世界中,我想做的是能够将一些PHP代码放入Wordpress中,从而允许某人阅读事物的“ www”面能够确定他们当前是否也已登录“成员”事物的一面。 我知道CodeIgniter会话会持续存在,以便每当我跳到成员端时,我仍会登录。我的第一个想法是在CI中放一个快速页面来完成此任务:

public function isLogged()
{
    $x = "off";
    if ($this->session->userdata('memberKey') != 0) {
        $x = "on";
    }
    echo $x;
}

然后,每当我运行链接members.example.com/login/isLogged时 ,我总是会“ off”或“ on”来确定我是否在里面。 memberKey将为0(表示未登录),或者为基于某人在数据库中对应密钥的数字 我希望我能够在www端(在Wordpress中)运行类似THIS的东西

$homepage = file_get_contents('http://members.example.com/login/isLogged');

...然后我就可以对该人是否登录进行操作。 好吧,显然这里的缺点是,当我调用上面的函数时,我总是会得到“ off”作为结果,因为我是从服务器而不是从需要此信息的客户端进行该调用。

能够读取此信息的最优雅的解决方案是什么? 有没有办法跨平台读取Cookie?

好吧,我意识到我已经完成了整个过程,并且我不想让任何人挂着,所以我的解决方案是:

首先,我知道对于我的Cookie,我进入了codeIgniter的/application/config/config.php并将以下内容作为我的Cookie域(第269行-并且我已经更改了此处的域名以保护我的客户端)

$config['cookie_domain']    = ".example.com";

我在这里要小心,并使用“。” 域之前,以覆盖所有子域。

我也知道我正在将会话数据写入数据库。 因此,在Wordpress方面,我将这段代码放在某个位置:

$memCCinfo = unserialize(stripslashes($_COOKIE['ci_session'])); // Changed for OBVIOUS reasons
$mysqli = mysql_connect('localhost', 'NAME', 'PASSWORD'); // Changed for OBVIOUS reasons
$mysqlDatabase = mysql_select_db('DATABASE',$mysqli); // Changed for OBVIOUS reasons
$isLoggedCC = "off";
$sessInfoQry = mysql_query('SELECT user_data FROM ci_sessions WHERE session_id = "' . $memCCinfo['session_id'] .'"',$mysqli);
while ($sessInfo = mysql_fetch_assoc($sessInfoQry)) { 
    $breakOutInfo = unserialize(stripslashes($sessInfo['user_data']));      
    if (is_array($breakOutInfo)) { $isLoggedCC = "on"; }
}

然后,我现在有一种方法来确定成员是否已登录到“成员”侧。 问题是... 我应该担心的事情有什么漏洞吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM