功能介绍
此类基于EapiDb.php开发,用于简化对会员数据的操作。包括会员的登陆、注册、退出等等。
功能演示
演示地址:https://demo.ecms.maiyapai.com/ecmsapi/index.php?mod=user&act=index
insert
功能:注册会员
参数:
- $data 会员信息数组,至少包含帐号(username)与密码 (password)
示例:
// 注册一个会员
$data = array(
'user' => 'test001',
'password' => '123456',
'phone' => '1381111000' // 副表中的电话字段
);
$userid = $api->load('user')->insert($data);
if(false === $userid){
//注册失败返回false 获取错误并打印
$errorinfo = $api->load('user')->getError();
var_dump($errorinfo);
}else{
// 注册成功,返回用户的userid
var_dump($userid);
}
delete
功能:删除会员
参数:
$id 数字表示userid 字符串表示username
示例:
// 删除id为1的用户
$api->load('user')->delete(1);
// 删除帐号为 baidu 的用户
$api->load('user')->delete('baidu');
// 注意 下面代码表示删除用户名为 1 的用户。
$api->load('user')->delete('1');
// 例如 $uid = "1" 与 $uid = 1; 执行下面的代码,结果是不一样的
$api->load('user')->delete($uid);
// 你可以强制的将变量类型转化
$api->load('user')->delete((int)$uid); // 转成数字,表示按userid删除
$api->load('user')->delete((string)$uid); //转成字符串 表示按username删除
update
功能:更新指定会员的信息
参数:
- $data 需要更新的字段信息
- $uid 用户ID或用户名 此参数用法类型与delete方式一致
示例:
// 将用户id为1的电话号码改成 13011110000
$api->load('user')->update(['phone' => '13011110000'] , 1);
// 将用户帐号为baidu的电话号码改成 13011110000
$api->load('user')->update(['phone' => '13011110000'] , 'baidu');
one
功能:获取指定的会员
参数:
$id 数字表示userid 字符串表示username
示例:
// 获取id为1的用户
$api->load('user')->one(1);
// 获取帐号为 baidu 的用户
$api->load('user')->one('baidu');
// 参数类型注意事项应该和delete方法一样
getList
功能:获取会员列表
参数:
- $field 查询字段,所有字段填写 *
- $map 查询条件 不限制填写 1 或者 1=1
- $pagination 翻页参数 格式 数量,页码 如 20,2 表示每页显示20条,并获取第2页的
- $orderby 排序方式 默认为 userid desc
示例:
// 获取未审核的会员列表,每页显示100条
$userlist = $api->load('user')->getList('*' , 'checked=0' , '100,1');
setGroup
功能:设置会员用户组
参数:
- $uid 用户id
- $gid 目标会员组id
示例:
// 将id为1的会员,设置到会员组3
$api->load('user')->setGroup(1,3);
hasUser
功能:根据条件查询用户是否存在
参数:
- $map 查询条件
示例:
// 查询id为1的用户是否存在
$api->load('user')->hasUser('userid=1');
hasUserByUsername
功能:根据用户名查询用户是否存在
参数:
- $username 用户名
示例:
// 查询用户名为baidu的用户是否存在
$api->load('user')->hasUserByUsername('baidu');
// 同等于
$api->load('user')->hasUser('username="baidu"');
hasUserByUserid
功能:根据用户id查询用户是否存在
参数:
- $userud 用户id
示例:
// 查询用户id为1的用户是否存在
$api->load('user')->hasUserByUserid(1);
// 同等于
$api->load('user')->hasUser('userid=1');
hasUserByEmail
功能:根据用户邮箱查询用户是否存在
参数:
- $email 用户邮箱
示例:
// 查询用邮箱为baidu@qq.com的用户是否存在
$api->load('user')->hasUserByEmail('baidu@qq.com');
// 同等于
$api->load('user')->hasUser('email="baidu@qq.com"');
setSession
功能:将用户设置为登陆状态
参数:
- $user 用户ID(数字) 或 用户名(字符串)或 用户数据(数组)
- $time 保持登陆时长,单位秒。默认0 表示不限制
示例:
// 将ID为1的用户设置为登陆状态
$api->load('user')->setSeesion(1);
// 将帐号为baidu的用户设为登陆状态
$api->load('user')->setSeesion('baidu');
// 因为直接传入ID或用户名,此方法会再次查询数据库验证用户。
// 所以为了减少数据查询量,之前如果已查询过用户信息。直接传入用户信息即可
$user = $api->load('user')->one(1);
$api->load('user')->setSession($user);
// 上面的所有方法,登陆成功返回true 失败返回false
if( false === $api->load('user')->setSeesion(1) ){
// 打印错误信息
var_dump($api->load('user')->getError());
}
clearSession
功能:退出用户登陆
示例:
// 不需要传任何参数
$api->load('user')->clearSession();
getSession
功能:检测用户是否已登陆,若已登陆则返回会员信息
参数:
- $field 需要获取的用户字段 默认为 * 表示获取所有字段信息
示例:
// 检测用户是否已登陆
$user = $api->load('user')->getSession();
// 若成功打印会员信息,失败打印错误信息
if(false === $user){
var_dump($api->load('user')->getError());
}else{
var_dump($user);
}
code
功能:验证或清空指定的验证码
参数:
- $name 验证码类型
- $code 验证码字符串 默认为false 表示清空$name所指定的验证码
示例
// 假如我们开启了会员登陆验证码,用户提交的验证码是 123456
// 验证123456是否正确,方法如下
//第一个参数 login 表示验证码类型为登陆验证码 ,若为其它值,表示为注册验证码
$isok = $api->load('user')->code('login' , '123456');
// $isok 将返回数字 -1 0 1 分别代表 -1超时 0失败 1成功
// 清空登陆验证码
$api->load('user')->code('login');
checkAccounts
功能:验证用户帐号与密码是否一值,成功返回会员主表所有数据。此方法多半用于用户登陆验证。
参数:
- $accounts 帐号信息 可以上ID,邮箱,用户名等字段。需根据第三个参数设定。
- $password 密码
- $type 要验证的帐号字段 默认为 username
示例:
// 验证帐号 baidu 的密码是否为 123456
$result = $api->load('user')->checkAccounts('baidu' , '123456');
// 验证id为1的用户密码是否为 123456
$result = $api->load('user')->checkAccounts(1 , '123456' ,'userid');
createPassword
功能:生成用户密码
参数:
- $password 未加密的密码
- $salt 加密混淆字符
示例:
// 将id为1的用户密码修改成 abc123
$user = $api->load('user')->one(1); // 获取用户信息
if($user){
// 用户存在时进行修改操作
$passwd = $api->load('user')->createPassword('abc123' , $user['salt']);
$api->load('db')->update('[!db.pre!]enewsmember' , ['password' => $passwd] , 'userid='.$user['userid']); //修改密码
}else{
// 用户不存在的处理
}
// 上面的方法可以直接用update代替
$api->load('user')->update(['password' => 'abc123'] , 1);