ECJiaWiki:UCenterApi:user/merge

来自ECJiaWiki
跳到导航 跳到搜索

应用场景

 把重名用户合并到到家

接口名称

 user/merge

Body请求参数

字段名 变量名 必填 示例值 描述
模块 m user 模块
控制器 c merge 控制器
固定参数 inajax 2 固定参数
API版本日期 release 20170101 API版本日期
应用ID appid 1 应用ID

接口描述

 本接口函数用于把重名的用户合并到到家

请求参数

字段名 变量名 必填 类型 示例值 描述
用户名 oldusername string ecjia 老用户名
用户名 newusername string ecjianew 新用户名
用户 ID uid integer 用户 ID
密码 password string 密码
电子邮件 email string 电子邮件

举例如下

  • 用户合并示例
function getmaxuid() {
	global $ucdb;
	$query = $ucdb->query("SHOW CREATE TABLE ".UC_DBTABLEPRE."members");
	$data = $ucdb->fetch_array($query);
	$data = $data['Create Table'];
	if(preg_match('/AUTO_INCREMENT=(\d+?)[\s|$]/i', $data, $a)) {
		return $a[1] - 1;
	} else {
		return 0;
	}
}

$maxuid = getmaxuid();

$query = $db->query("SELECT * FROM {$tablepre}members");

while($data = $db->fetch_array($query)) {
	$salt = rand(100000, 999999);
	$password = md5($data['password'].$salt);
	$data['username'] = addslashes($data['username']);
	$lastuid = $data['uid'] += $maxuid;
	$queryuc = $ucdb->query("SELECT count(*) FROM ".UC_DBTABLEPRE."members WHERE username='$data[username]'");
	$userexist = $ucdb->result($queryuc, 0);
	if(!$userexist) {
		$ucdb->query("INSERT LOW_PRIORITY INTO ".UC_DBTABLEPRE."members SET uid='$data[uid]', username='$data[username]', password='$password',
			email='$data[email]', regip='$data[regip]', regdate='$data[regdate]', salt='$salt'", 'SILENT');
		$ucdb->query("INSERT LOW_PRIORITY INTO ".UC_DBTABLEPRE."memberfields SET uid='$data[uid]'",'SILENT');
	} else {
		$ucdb->query("REPLACE INTO ".UC_DBTABLEPRE."mergemembers SET appid='".UC_APPID."', username='$data[username]'", 'SILENT');
	}
}

$ucdb->query("ALTER TABLE ".UC_DBTABLEPRE."members AUTO_INCREMENT=".($lastuid + 1));
  • 把重名用户合并到到家的示例
$uid = uc_user_merge($_GET['username'], $_GET['usernamenew'], $user['uid'], $_GET['password'], $user['email']);

if($uid > 0) {
	echo '用户名可用';
} elseif($uid == -1) {
	echo '用户名不合法';
} elseif($uid == -2) {
	echo '包含要允许注册的词语';
} elseif($uid == -3) {
	echo '用户名已经存在';
}

$db->query("UPDATE {$tablepre}members SET username='$_GET[usernamenew]' WHERE uid='$uid'");

返回值

含义

integer

  • 大于 0:返回用户 ID,表示用户注册成功
  •       -1:用户名不合法
  •       -2:包含不允许注册的词语
  •       -3:用户名已经存在