功能介绍

此类基于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);