• 整合 ucenter 注册自动激活


    http://my.oschina.net/banbo/blog/311691


    应用整合 UCenter,同步注册到 Discuz 的用户,在 Discuz 登录时得手动激活,用户体验很不好,不过解决方法很简单~
    修改应用下的 ./uc_client/model/user.php 文件,大概在 138 行(UCenter 1.6)处的 function add_user 函数里添加代码:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function add_user($username$password$email$uid = 0, $questionid ''$answer ''$regip '') {
        $regip empty($regip) ? $this->base->onlineip : $regip;
        $salt substr(uniqid(rand()), -6);
        $password = md5(md5($password).$salt);
        $sqladd $uid "uid='".intval($uid)."'," '';
        $sqladd .= $questionid > 0 ? " secques='".$this->quescrypt($questionid$answer)."'," " secques='',";
        $this->db->query("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='$regip', regdate='".$this->base->time."', salt='$salt'");
        $uid $this->db->insert_id();
        $this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid='$uid'");
        // BEGIN
        $this->db->query("INSERT INTO ".DISCUZ_DBTABLEPRE."common_member SET uid='$uid', username='$username', password='$password', email='$email', adminid='0', groupid='10', regdate='".$this->base->time."', credits='0', timeoffset='9999'");
        $this->db->query("INSERT INTO ".DISCUZ_DBTABLEPRE."common_member_status SET uid='$uid', regip='$regip', lastip='$regip', lastvisit='".$this->base->time."', lastactivity='".$this->base->time."', lastpost='0', lastsendmail='0'");
        $this->db->query("INSERT INTO ".DISCUZ_DBTABLEPRE."common_member_profile SET uid='$uid'");
        $this->db->query("INSERT INTO ".DISCUZ_DBTABLEPRE."common_member_field_forum SET uid='$uid'");
        $this->db->query("INSERT INTO ".DISCUZ_DBTABLEPRE."common_member_field_home SET uid='$uid'");
        $this->db->query("INSERT INTO ".DISCUZ_DBTABLEPRE."common_member_count SET uid='$uid', extcredits1='0', extcredits2='0', extcredits3='0', extcredits4='0', extcredits5='0', extcredits6='0', extcredits7='0', extcredits8='0'");
        // END
        return $uid;
    }

    注意这些表都是 Discuz 的表,不是 UCenter 的表,不能使用 UC_DBTABLEPRE ! 我自己在 UCenter 配置文件 config.inc.php 中定义了 DISCUZ_DBTABLEPRE:

    ?
    1
    define('DISCUZ_DBTABLEPRE''`ultrax`.pre_');

  • 相关阅读:
    关于ashx的基本应用
    sqlserver中在存储过程中写事务
    安装 SQL Server 2008 需要 Windows PowerShell
    Visual Studio .NET 无法创建或打开应用程序。问题很可能是因为本地WEB本地服务器上没有安装所需的组件。
    Android开发之旅:环境搭建及HelloWorld
    sqlserver 2005 两个表之间的更新操作。
    MS SQLSERVER SELECT FOR XML 中字符的限制问题
    把SVN设置成系统服务
    vs2005 水晶报表部署时处理方法
    Expression Studio简体中文正式版 AND KEY
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4926722.html
Copyright © 2020-2023  润新知