【问题标题】:Need to pass subdomain codeIgniter info to domain with wordpress需要使用 wordpress 将子域 codeIgniter 信息传递给域
【发布时间】:2012-08-23 08:48:06
【问题描述】:

我有一个域。对于这个问题,我们称它为 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 时,我总是会选择“关闭”或“打开”来确定我是否在其中。 memberKey 可能是 0 表示未登录,或者是基于某人在数据库中的对应键的数字。我希望我能够从 www 端(在 Wordpress 中)运行类似 THIS 的东西

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

...我可以根据此人是否登录采取行动。好吧,显然这里的缺陷是,当我调用上述函数时,我总是会因为我的结果而“关闭”,因为我是从服务器进行调用,而不是从需要此信息的客户端进行调用.

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

【问题讨论】:

    标签: php wordpress codeigniter cookies subdomain


    【解决方案1】:

    嗯,我意识到我已经完成了这个过程,我不想让任何人挂起,所以我的解决方案是这样的:

    首先,我知道对于我的 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"; }
    }
    

    然后,我现在有一种方法可以确定成员是否登录到“成员”端。问题是...我正在做的事情有什么漏洞需要我担心吗?

    【讨论】:

    • +1 花时间实际提供您的解决方案。你没有理由不能做你正在做的事情,只要你确保它是安全的:)
    猜你喜欢
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2011-10-18
    • 2014-06-21
    • 1970-01-01
    • 2011-12-19
    • 2018-07-02
    • 2019-08-03
    相关资源
    最近更新 更多