主站注册不同步Discuz解决办法

问题描述:

整合好主站与论坛正常通信的前提下,在主站注册后,UCenter可以正常同步,但是论坛里没有用户数据。


问题分析:

这是由于官方给的DEMO中只提供了同步UCenter的功能,并没有往论坛表中插入用户数据,所以我们只需要将这些少的代码放入相应的位置就可以了。


解决办法:

修改 /uc_client/model/user.php 文件,大概在 101 行左右的 function add_user 函数里添加以下代码:

$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_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 `".UC_DBNAME."`.pre_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 `".UC_DBNAME."`.pre_common_member_profile SET uid='$uid'");
$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_common_member_field_forum SET uid='$uid'");
$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_common_member_field_home SET uid='$uid'");
$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_common_member_count SET uid='$uid', extcredits1='0', extcredits2='0', extcredits3='0', extcredits4='0', extcredits5='0', extcredits6='0', extcredits7='0', extcredits8='0'");


完整的 function add_user 函数是这样的:

	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 `".UC_DBNAME."`.pre_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 `".UC_DBNAME."`.pre_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 `".UC_DBNAME."`.pre_common_member_profile SET uid='$uid'");
		$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_common_member_field_forum SET uid='$uid'");
		$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_common_member_field_home SET uid='$uid'");
		$this->db->query("INSERT INTO `".UC_DBNAME."`.pre_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;
	}


这样就可以达到在主站注册的同时、UCenter和论坛都会同步。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值