integer uc_user_register(string username , string password , string email)
函数参数
参数
含义 |
string username
用户名 |
string password
密码 |
string email
电子邮件 |
返回值
值
含义 |
integer
大于 0:返回用户 ID,表示用户注册成功 -1:用户名不合法 -2:包含不允许注册的词语 -3:用户名已经存在 -4:Email 格式有误 -5:Email 不允许注册 -6:该 Email 已经被注册
|
本接口函数用于新用户的注册。用户名、密码、Email 为一个用户在 UCenter 的基本数据,提交后 UCenter 会按照注册设置和词语过滤的规则检测用户名和 Email 的格式是否正确合法,如果正确则返回注册后的用户 ID,否则返回相应的错误信息。
$uid = uc_user_register($_POST['username'], $_POST['password'], $_POST['email']);
if($uid <= 0) {
if($uid == -1) {
echo '用户名不合法';
} elseif($uid == -2) {
echo '包含要允许注册的词语';
} elseif($uid == -3) {
echo '用户名已经存在';
} elseif($uid == -4) {
echo 'Email 格式有误';
} elseif($uid == -5) {
echo 'Email 不允许注册';
} elseif($uid == -6) {
echo '该 Email 已经被注册';
} else {
echo '未定义';
}
} else {
echo '注册成功';
}
用户登录
array uc_user_login(string username , string password [, bool isuid])
函数参数
参数
含义 |
string username
用户名 / 用户 ID |
string password
密码 |
bool isuid
是否使用用户 ID登录 1:使用用户 ID登录 0:(默认值) 使用用户名登录
|
返回值
值
含义 |
array
integer [0]
大于 0:返回用户 ID,表示用户登录成功 -1:用户不存在,或者被删除 -2:密码错
|
string [1]
用户名 |
string [2]
密码 |
string [3]
Email |
bool [4]
用户名是否重名 |
本接口函数用于用户的登录验证,用户名及密码正确无误则返回用户在 UCenter 的基本数据,否则返回相应的错误信息。如果应用程序是升级过来的,并且当前登录用户和已有用户重名,那么返回的数组中 [4] 的值将返回 1。
list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);
if($uid > 0) {
echo '登录成功';
} elseif($uid == -1) {
echo '用户不存在,或者被删除';
} elseif($uid == -2) {
echo '密码错';
} else {
echo '未定义';
}
获取用户数据
array uc_get_user(string username [, bool isuid])
函数参数
参数
含义 |
string username
用户名 |
bool isuid
是否使用用户 ID获取 1:使用用户 ID获取 0:(默认值) 使用用户名获取
|
返回值
值
含义 |
array
integer [0]
用户 ID |
string [1]
用户名 |
string [2]
Email |
本接口函数用于获取用户在 UCenter 的基本数据,如用户不存在,返回值为 integer 的数值 0。
if($data = uc_get_user($username)) {
list($uid, $username, $email) = $data;
} else {
echo '用户不存在';
}
更新用户资料
integer uc_user_edit(string username , string oldpw , string newpw , string email [, bool ignoreoldpw])
函数参数
参数
含义 |
string username
用户名 |
string oldpw
旧密码 |
string newpw
新密码,如不修改为空 |
string email
Email,如不修改为空 |
bool ignoreoldpw
是否忽略旧密码 1:忽略,更改资料不需要验证密码 0:(默认值) 不忽略,更改资料需要验证密码
|
返回值
值
含义 |
integer
1:更新成功 0:没有做任何修改 -1:旧密码不正确 -4:Email 格式有误 -5:Email 不允许注册 -6:该 Email 已经被注册 -7:没有做任何修改 -8:该用户受保护无权限更改
|
本接口函数用于更新用户资料。更新资料需验证用户的原密码是否正确,除非指定 ignoreoldpw 为 1。如果只修改 Email 不修改密码,可让 newpw 为空;同理如果只修改密码不修改 Email,可让 email 为空。
$ucresult = uc_user_edit($_POST['username'], $_POST['oldpassword'], $_POST['newpassword'], $_POST['emailnew']);
if($ucresult == -1) {
echo '旧密码不正确';
} elseif($ucresult == -4) {
echo 'Email 格式有误';
} elseif($ucresult == -5) {
echo 'Email 不允许注册';
} elseif($ucresult == -6) {
echo '该 Email 已经被注册';
}
删除用户
integer uc_user_delete(string/array username)
函数参数
参数
含义 |
string username
用户名 |
返回值
同步登录
string uc_user_synlogin(integer uid)
函数参数
返回值
值
含义 |
string
同步登录的 HTML 代码 |
如果当前应用程序在 UCenter 中设置允许同步登录,那么本接口函数会通知其他设置了同步登录的应用程序登录,把返回的 HTML 输出在页面中即可完成对其它应用程序的通知。输出的 HTML 中包含执行远程的 javascript 脚本,请让页面在此脚本运行完毕后再进行跳转操作,否则可能会导致无法同步登录成功。同时要保证同步登录的正确有效,请保证其他应用程序的 Cookie 域和 Cookie 路径设置正确。
list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);
if($uid > 0) {
echo '登录成功';
echo uc_user_synlogin($uid);
} elseif($uid == -1) {
echo '用户不存在,或者被删除';
} elseif($uid == -2) {
echo '密码错';
} else {
echo '未定义';
}
同步退出
string uc_user_synlogout()
返回值
值
含义 |
string
同步退出的 HTML 代码 |
如果当前应用程序在 UCenter 中设置允许同步登录,那么本接口函数会通知其他设置了同步登录的应用程序退出登录,把返回的 HTML 输出在页面中即可完成其它应用程序的通知。输出的 HTML 中包含执行远程的 javascript 脚本,请让页面在此脚本运行完毕后再进行跳转操作,否则可能会导致无法同步退出登录。同时要保证同步退出登录的正确有效,请保证其他应用程序的 Cookie 域和 Cookie 路径设置正确。
检查 Email 地址
integer uc_user_checkemail(string email)
函数参数
返回值
值
含义 |
integer
1:成功 -4:Email 格式有误 -5:Email 不允许注册 -6:该 Email 已经被注册
|
本接口函数用于检查用户输入的 Email 的合法性。
$ucresult = uc_user_checkemail($_GET['email']);
if($ucresult > 0) {
echo 'Email 格式正确';
} elseif($ucresult == -4) {
echo 'Email 格式有误';
} elseif($ucresult == -5) {
echo 'Email 不允许注册';
} elseif($ucresult == -6) {
echo '该 Email 已经被注册';
}
检查用户名
integer uc_user_checkname(string username)
函数参数
参数
含义 |
string username
用户名 |
返回值
值
含义 |
integer
1:成功 -1:用户名不合法 -2:包含要允许注册的词语 -3:用户名已经存在
|
本接口函数用于检查用户输入的用户名的合法性。
$ucresult = uc_user_checkname($_GET['email']);
if($ucresult > 0) {
echo '用户名可用';
} elseif($ucresult == -1) {
echo '用户名不合法';
} elseif($ucresult == -2) {
echo '包含要允许注册的词语';
} elseif($ucresult == -3) {
echo '用户名已经存在';
}
添加保护用户
integer uc_user_addprotected(string/array username , string admin)
函数参数
参数
含义 |
string/array username
保护用户名 |
string admin
操作的管理员 |
返回值
本接口函数用于添加被保护的用户。
删除保护用户
integer uc_user_deleteprotected(string/array username)
函数参数
参数
含义 |
string/array username
保护用户名 |
返回值
本接口函数用于删除被保护的用户。
得到受保护的用户名列表
integer uc_user_getprotected()
返回值
本接口函数用于获得被保护的用户列表。
把重名用户合并到 UCenter
integer uc_user_merge(string/ oldusername , string newusername, integer uid, string password, string email)
函数参数
参数
含义 |
string oldusername
老用户名 |
string newusername
新用户名 |
integer uid
用户 ID |
string password
密码 |
string email
电子邮件 |
返回值
值
含义 |
integer
大于 0:返回用户 ID,表示用户注册成功 -1:用户名不合法 -2:包含不允许注册的词语 -3:用户名已经存在
|
本接口函数用于把重名的用户合并到 UCenter。
用户的合并和用户重名的处理
如果您的应用程序集成到 UCenter 时包含旧的用户数据,我们建议您可以采取以下范例的方式把您的用户导入到 UCenter。
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));
本方式的基本流程是:首先,获取当前 UCenter 中的最大用户 ID 的值。然后,读取应用程序自己的用户表,判读用户名是否在 UCenter 重复。如果重复,把重名的用户名保存到 UCenter 的 mergemembers 表中,不合并这个用户。如果不重名,则按正常方式导入用户进行合并。当用户插入到 mergemembers 表后,用户在这个应用程序登录的时候,登录状态的返回数组中 [4] 的值将返回 1(
请参考上面关于 uc_user_login() 函数的说明)。当登录状态返回重名状态后建议您在应用程序中判读用户合法性后进行更名的处理,调用本接口函数。
分享到:
相关推荐
1. **说明.txt**:这个文件通常包含了API的详细使用说明,包括调用方法、参数解释、返回值等内容,对于开发者来说非常重要,应该首先阅读。 2. **uc_client**:这是一个目录,通常包含了Ucenter客户端的所有文件,...
《DZ论坛Ucenter API Java版详解:解决中文乱码问题及使用指南》 DZ论坛,即Discuz!,是中国最流行的社区软件之一,其Ucenter是集成用户管理、登录验证、同步登录等功能的核心组件。为了方便Java开发者与DZ论坛进行...
1. API概述:介绍Ucenter API的基本概念和使用场景。 2. API调用方法:包括GET、POST等请求方式,以及如何传递参数。 3. 授权和安全:讲解如何设置和验证API密钥,防止非法访问。 4. 用户管理接口:如注册、登录、...
### UCenter 表结构说明 #### 一、`uc_adminaԱ` 表 此表主要存储了管理员的权限设置。 - **uid**: `mediumint(8)` 类型,管理员的唯一标识符(ID)。 - **username**: `char(15)` 类型,管理员用户名。 - **...
4. 测试与调试:完成API集成后,应进行详尽的测试,确保用户在各个应用间的操作能够正确地同步到Ucenter,并反映到其他关联应用。 四、Ucenter的安全考虑 Ucenter的安全性至关重要,因此在设计和使用过程中需要...
标签"UCenter,用户手册大全"进一步明确了资料的内容,表明这是一系列关于UCenter的文档和教程集合,可能包括文字说明、视频解说等多种形式,帮助用户全面了解和掌握UCenter的使用。 在提供的压缩文件中,"UCenter ...
- Ucenter的API调用需要严格按照其文档说明,避免因参数错误导致的调用失败。 通过以上步骤,你就可以成功地将ThinkPHP与Ucenter1.6整合,实现用户数据的统一管理。这种整合方式不仅提高了用户管理的便捷性,也简化...
【标签】"UCenter Asp.net应用"说明了这个项目的核心技术点:一是UCenter的API接口使用,二是Asp.net应用程序的开发。 【文件解析】: 1. `Default.aspx`:这是Asp.net应用的默认页面,通常用于展示网站的欢迎界面...
8. **文档说明**:良好的 API 文档是必不可少的,它会详细解释每个接口的功能、参数、返回值以及可能出现的错误情况,帮助开发者理解和使用这个 Java 包。 9. **版本兼容性**:开发者需要关注这个 Java 包是否兼容...
- 开发API接口,使得UcenterHome能够与外部系统交互。 5. **测试调试**: - 进行单元测试与集成测试,确保新增功能的正确性。 - 对性能进行优化,提高系统的响应速度和稳定性。 6. **上线部署**: - 将开发好...
对于UCenter1.5.1,这个文件可能详细说明了升级、安装步骤以及可能遇到的问题和解决方法。 - `upload`:这是一个目录,通常包含所有需要上传到服务器的文件。这个目录下的文件可能是UCenter的源代码,包括PHP脚本、...
` - UCenter 的 API 地址,确保与 UCenter 安装路径匹配。 11. `define('UC_CHARSET', 'utf-8');` - UCenter 的字符集,与上面的配置保持一致。 12. `define('UC_IP', '127.0.0.1');` - UCenter 的 IP 地址,一般为 ...
Ucenter 是一个集成用户中心系统,它主要用于统一管理和授权多个应用程序中的用户数据。数据库是存储这些数据的核心,这里我们详细探讨 Ucenter 数据字典中涉及的几个关键表及其字段。 1. **uc_admins(管理员表)*...
这通常涉及修改应用的配置文件,设置UCenter的URL、API密钥等信息,使应用能够通过UCenter进行用户认证和数据交换。 7. **安全优化**:为了保障系统安全,建议删除安装目录或移动安装文件,避免被恶意利用。同时,...
5. **API文档**:为开发者提供详细的接口说明,帮助他们进行二次开发。 6. **升级文件**:如果用户已有旧版本的UCenter,此部分将指导如何平滑地升级到1.6.0版本。 7. **示例应用**:可能包含一些接入UCenter的...
8. **文档**:可能包含开发说明、安装指南、API文档等,对开发者理解和维护项目非常有帮助。 通过对"farm-ucenter1.5.zip"的剖析,我们可以窥见一个社交网络游戏背后的技术框架和设计思路。无论是对游戏开发感兴趣...
同时,关注readme.txt中的更新说明和建议,确保UcenterHome运行的稳定性和安全性。 UcenterHome的部署涉及到服务器环境配置、数据库管理、权限设置等多个方面,需要一定的PHP和Web服务基础。在实际操作中,可能还会...
开发者可能需要在此文件中配置Ucenter的API地址、应用程序ID、密钥等信息,以使接口能够正确地与Ucenter服务器通信。 此外,压缩包中的其他文件可能是项目文档、说明或者链接,例如`源码必读.txt`可能包含了使用和...
3. **readme**:这个文件通常是安装指南或使用说明,会详细介绍如何安装、配置以及使用UCenter,对于初次接触的用户非常有帮助。 4. **advanced**:可能包含了高级功能或特定设置,如自定义API接口、高级权限控制等...
在"document"这个文件中,通常会包含详细的API文档、示例代码、错误代码说明和使用指南等内容。开发者应仔细阅读这份文档,理解每个接口的功能、参数、返回值以及可能遇到的问题。此外,文档中可能还会包含最佳实践...