用户管理(CURD

用户管理,主要讲的就是对用户以及其个人信息的增删改查的操作。其实所有这些操作的类都是在\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>