用户管理,主要讲的就是对用户以及其个人信息的增删改查的操作。其实所有这些操作的类都是在\lib\user\目录下面,当需要用到的时候调用相关的类就行了。下面是这个目录下的文件类及其作用。
Authentication.class.php 用户禁言类实名认证类
Banuser.class.php 用户禁言类
Behaviorservice.class.php 论坛操作记录类
Careerservice.class.php 用户信息相关类 工作经历和公司service
Customerfield.class.php 用户信息相关类
Customerfielddata.class.php 用户信息相关类
Customerfieldservice.class.php 用户信息相关类
Customerfieldtemplate.class.php 用户信息相关类 模板
Educationservice.class.php 用户信息相关类 教育
Membertagsservice.class.php 标签服务层类
Onlineservice.class.php 在线记录相关信息类
Register.class.php 注册相关
Registercheck.class.php 注册验证
Schoolservice.class.php 学校设置service
Ucuser.class.php 用户中心
Usercache.class.php 用户缓存
Usergroups.class.php 用户群组
Usermodedata.class.php 用户个人中心相关
Userservice.class.php 用户服务类文件
下面简单介绍一下对用户信息相关操作是如何实现的。
添加一个用户
$register = L::loadClass('Register', 'user'); /*加载注册类*/
/*下面组装要添加的数据,用户名、密码、邮箱等信息*/
$register->setField('username', $username);
$register->setField('password', $password);
$register->setField('email', $email);
$register->setField('groupid', $groupid);
$register->setField('yz', 1);
/*插入操作*/
$register->execute();
删除一个用户
$ucuser = L::loadClass('Ucuser', 'user'); /* @var
$ucuser PW_Ucuser */
$ucuser->delete($delid);
一般情况下在删除一个用户的时候,肯定还需要伴随着删除用户相关的一些其他信息,比如用户的收藏、日志等等,这些操作就需要另外在调用其他的方法配合使用了,例如当你删除了某个用户的时候,还要删除这个用户在论坛上的好友关系,那么可以用下面这段代码。
$friendService
= L::loadClass('friend', 'friend'); /* @var
$friendService PW_Friend */
$friendService->delFriendByFriendids($userIds);
当然,当你不想删除这个用户,而只想删除这个用户跟其他用户间的好友关系时,上面这段代码页可以独立使用。这种低耦合的方式把各个模块见的代码分割的比较清楚,使用起来非常方便。
修改用户的信息:
用户信息有很多,有积分信息还有用户的个人资料等等,这些不同的信息分布在不同的表里面,很多信息也是需要用不同的类来处理的。
比如要修改用户的积分,给用户增加1铜币
require_once (R_P .
'require/credit.php');
$credit->set($uid, 'money', -1);
修改用户的密码
$userService
= L::loadClass('UserService', 'user'); /* @var
$userService PW_UserService
*/
$userService->update($winduid,array('password'=>md5($new_password)));
获取用户的信息:
$userService
= L::loadClass('UserService', 'user'); /* @var
$userService PW_UserService
*/
$user_info = $userService->get($winduid);
例,制作一个简单的添加用户的例子。
<?php
//包含公共global.php
require_once('global.php');
//获取参数
S::gp(array('action'));
if ($action == 'addnew'){
S::gp(array('username','password','email','groupid'),'P');
/*下面一大段是相关信息的验证*/
if (!$username || !$password || !$email) {
adminmsg('setuser_empty');
}
!$groupid && $groupid
= '-1'; //用户组-1表示普通用户
$username = trim($username);
$S_key = array("\\",'&',' ',"'",'"','/','*',',','<','>',"\r","\t","\n",'#');
foreach ($S_key
as $value) {
if (strpos($username,$value)!==false) {
adminmsg('illegal_username');
}
if (strpos($password,$value)!==false) {
adminmsg('illegal_password');
}
}
if (strlen($username)>15 || strrpos($username,"|")!==false || strrpos($username,'.')!==false || strrpos($username,' ')!==false || strrpos($username,"'")!==false || strrpos($username,'/')!==false || strrpos($username,'*')!==false || strrpos($username,";")!==false || strrpos($username,",")!==false || strrpos($username,"<")!==false || strrpos($username,">")!==false) {
adminmsg('illegal_username');
}
if (strrpos($password,"\r")!==false || strrpos($password,"\t")!==false || strrpos($password,"|")!==false || strrpos($password,"<")!==false || strrpos($password,">")!==false) {
adminmsg('illegal_password');
} else {
$password = md5($password);
}
if ($email&&!ereg("^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,3}$",$email)) {
adminmsg('illegal_email');
}
if ($groupid
== '3' && !If_manager) {
adminmsg('manager_right');
}
$register = L::loadClass('Register', 'user');/*加载注册类*/
/*这里组装数据*/
$register->setField('username', $username);
$register->setField('password', $password);
$register->setField('email', $email);
$register->setField('groupid', $groupid);
$register->setField('yz', 1);
$register->execute();
/*添加用户的一些扩展字段*/
$customfieldService = L::loadClass('CustomerFieldService','user');/* @var
$customfieldService PW_CustomerFieldService
*/
$customfieldService->saveRegisterCustomerData();
//添加成功,跳转
refreshto("test.php", '添加成功');
}
?>
<html>
<head>
</head>
<body>
<form
action="test.php" name="FORM" id="mainForm"
method="post">
<h2 ><b>添加用户</b></h2>
<table >
<tr>
<td>用户名</td>
<td ><input type="text" maxlength="15"
name="username"></td>
</tr>
<tr >
<td >密码</td>
<td ><input type="password" name="password"></td>
</tr>
<tr >
<td >电子邮箱</td>
<td ><input type="text" name="email"></td>
</tr>
</table>
<button type="submit">提 交</button>
<input type="hidden" name="action" value="addnew" />
</form>
</body>
</html>