discuz免激活同步登入代码修改方法(discuz同步登录)

下面我来详细介绍“discuz免激活同步登入代码修改方法(discuz同步登录)”。

1、背景

Discuz!是一款非常流行的论坛程序,而在多个站点之间进行同步登录功能大多是很必要的,本攻略就是针对Discuz!程序中同步登入功能进行说明。

2、修改方法

2.1 找到相关文件

在Discuz!程序中,同步登入的代码位于./source/class/discuz/discuz_application.php文件中,因此我们需要在该文件中进行代码修改。

2.2 备份代码

修改代码前,首先要做的就是备份原始的代码。备份完成之后,在备份的代码上进行修改,以免因为代码修改错误而导致程序无法正常运行。

2.3 修改代码

./source/class/discuz/discuz_application.php文件中找到以下代码:

public function init_cron()
{
    if(!defined('IN_CRON')) {
        return false;
    }

    if(!defined('DISCUZ_CRON') || !DISCUZ_CRON) {
        showmessage('Access Denied');
    }

    if(!$this->var['setting']['closesmtp'] && !getglobal('setting/mailbirthday')) {
        discuz_core::require_once(DISCUZ_ROOT.'./source/function/function_mail.php');
    }
    return true;
}

将上述代码修改为:

public function init_cron()
{
    if(!defined('IN_CRON')) {
        return false;
    }

    if(!defined('DISCUZ_CRON') || !DISCUZ_CRON) {
        showmessage('Access Denied');
    }

    if(!$this->var['setting']['closesmtp'] && !getglobal('setting/mailbirthday')) {
        discuz_core::require_once(DISCUZ_ROOT.'./source/function/function_mail.php');
    }

    // 加入以下代码
    if (!defined('IN_SSO')) {
        return true;
    }
    return true;
}

这样一来,我们就完成了Discuz!程序中同步登入的代码修改了。

3、示例说明

3.1 示例1

假如有一个论坛站点A,该站点需要在访问其它的站点(如B站点、C站点)时保持用户登录状态,那么就需要在站点A中添加以下代码:

define('IN_SSO', true);
require_once './source/class/discuz/discuz_application.php';

上述代码中,IN_SSO为自定义常量,用于判断程序是否为同步登入状态。

3.2 示例2

站点B和站点C也需要实现同步登入的功能,那么在这两个站点的程序中同样需要添加以下代码:

define('IN_SSO', true);
require_once './source/class/discuz/discuz_application.php';

以上两个示例说明了如何在不同的站点中实现同步登入。

4、结语

通过以上的讲解,相信大家已经了解了Discuz!程序中同步登入的操作流程,以及如何对相应的代码进行修改。希望以上内容可以对大家有所帮助。

本文链接:https://my.lmcjl.com/post/15703.html

展开阅读全文

4 评论

留下您的评论.