public function register($member_group_id = 2, $username = null, $password = null, $email = null, $mobile = null)
 {
     if (IS_POST) {
         $data = array('member_group_id' => $member_group_id, 'username' => $username, 'password' => $password, 'email' => $email, 'mobile' => $mobile, 'account' => create_account(), 'create_time' => NOW_TIME, 'update_time' => NOW_TIME);
         //验证手机
         //if(empty($data['mobile'])) unset($data['mobile']);
         $user = D('Member');
         /* 添加用户 */
         if ($user->create($data)) {
             $user->password = ainiku_ucenter_md5($user->password);
             $user->member_group_id = $member_group_id;
             $result = $user->add();
             //return $this->$uid ? '注册成功' : '注册失败'; //0-未知错误,大于0-注册成功
             if (0 < $result) {
                 $this->success('注册成功', U('login'));
             } else {
                 $this->error('注册失败');
             }
         } else {
             return $this->error($user->getError());
         }
     } else {
         if (IS_AJAX) {
             $this->display('ajaxregister');
         } else {
             $this->display();
         }
     }
 }
 public function login($username = null, $password = null, $verify = null, $autologin = false)
 {
     if (IS_POST || $autologin) {
         /* 检测验证码 TODO: */
         if (!check_verify($verify) && !$autologin) {
             $this->error('验证码输入错误!');
         }
         //自动判断用户名是哪个字段的
         $map[get_account_type($username)] = $username;
         $map['password'] = ainiku_ucenter_md5($password);
         $map['status'] = 1;
         //$map['member_group_id']=1;
         $map['is_adminlogin'] = 1;
         $user = D('MemberView')->where($map)->find();
         if (empty($user)) {
             //登录失败
             cookie('__uid__', null);
             return $autologin ? false : $this->error('用户名或密码错误!');
         } else {
             //登陆成功
             /* 记录登录SESSION和COOKIES */
             $auth = array('uid' => $user['member_id'], 'username' => $user['username'], 'last_login_time' => $user['update_time']);
             session('user_auth', $auth);
             session('uinfo', $user);
             session('user_auth_sign', data_auth_sign($auth));
             //更新用户登录信息
             $this->updateLogin($user['member_id']);
             //把用户密码加密保存到cookie中
             if (!$autologin) {
                 $u['u'] = ainiku_encrypt($username);
                 $u['p'] = ainiku_encrypt($password);
                 //如果有验证码的话就再次设置记录时间cookie
                 $a = I('post.remember');
                 $b = 0;
                 switch ($a) {
                     case 1:
                         $b = 24 * 3600;
                         break;
                     case 2:
                         $b = 24 * 3600 * 7;
                         break;
                     case 3:
                         $b = 24 * 3600 * 30;
                         break;
                     default:
                         $b = -1;
                 }
                 cookie('__uid__', $u, $b);
             }
             return $autologin ? $user['member_id'] : $this->success('登录成功!', U($user['admin_index'], array('mainmenu' => 'true')));
         }
     } else {
         if (is_login() || $this->autologin()) {
             $user = session('uinfo');
             redirect(U($user['admin_index'], array('mainmenu' => 'true')));
         } else {
             $this->display();
         }
     }
 }
Esempio n. 3
0
/**
 *前台用户判断cookie自动登陆
 */
function autologin()
{
    $user = cookie('token');
    if (empty($user)) {
        return 0;
    } else {
        $username = ainiku_decrypt($user['u']);
        $password = ainiku_ucenter_md5(ainiku_decrypt($user['p']));
        $map['uesrname'] = $username;
        $map['password'] = $password;
        $info = M('Member')->where($map)->find();
        if (empty($info)) {
            return 0;
        } else {
            /* 记录登录SESSION和COOKIES */
            $auth = array('uid' => $info['member_id'], 'username' => $info['username'], 'last_login_time' => $info['last_login_time']);
            session('user_auth', $auth);
            session('uinfo', $info);
            session('user_auth_sign', data_auth_sign($auth));
            define('UID', $info['member_id']);
            $uid = $info['member_id'];
            $ip = get_client_ip();
            $location = get_iplocation($ip);
            $data = array('member_id' => $uid, 'update_time' => NOW_TIME, 'last_login_ip' => $ip, 'last_login_adr' => $location['country'] . $location['area']);
            M('Member')->where("member_id={$uid}")->setInc('login');
            M('Member')->save($data);
            //保存用户登陆日志
            M('MemberLog')->add(array('member_id' => $uid, 'ip' => $Ip, 'adr' => $location['country'] . $location['area'], 'create_time' => NOW_TIME));
            return $uid;
        }
    }
}
    /**
     *邮箱激活
     **/
    public function emailactivate($yz = '')
    {
        $uinfo = $this->uinfo;
        if (empty($yz)) {
            $yzm = ainiku_ucenter_md5($uinfo['username'] . $uinfo['password'] . date('Y/m/d H:i:s'));
            $url = C('WEBDOMIN') . U("Member/emailactivate", array('yz' => $yzm));
            $str = <<<eot
\t\t此链接10分钟内有效
\t\t<a target="_blank" href="{$url}">点击以激活邮箱</a>或复制这个链接并打开
\t\t{$url}
eot;
            $result = send_mail(array('to' => $uinfo['email'], 'toname' => $uinfo['email'], 'subject' => C('WEB_SITE_TITLE') . '的邮件验证', 'fromname' => C('WEB_SITE_TITLE'), 'body' => $str . date('Y/m/d H:i:s')));
            if ($result) {
                S('emailactivate' . UID, $yzm, 600);
                $this->success('激活邮件已经发送成功!');
            } else {
                $this->error('邮件发送失败!');
            }
        } else {
            if ($yz === S('emailactivate' . UID)) {
                S('emailactivate' . UID, null);
                M('Member')->where("member_id=" . UID)->save(array('email_activate' => 1));
                $this->success('邮箱验证成功!', U('Member/portal'));
            } else {
                $this->success('邮箱验证失败!', U('Member/portal'));
            }
        }
    }
 /**
  * 修改密码初始化
  * @author huajie <*****@*****.**>
  */
 public function updatepwd($member_id = '')
 {
     if (IS_POST) {
         $model = D('Member');
         if ($model->create()) {
             $model->password = ainiku_ucenter_md5($model->password);
             $result = $model->save();
             if (0 < $result) {
                 $this->success(L('_UPDATE_SUCCESS_'));
             } else {
                 $this->error('密码相同,没有更改');
             }
         } else {
             $this->error($this->showRegError($model->geterror()));
         }
     }
     $member_id = empty($member_id) ? UID : $member_id;
     $data = M('Member')->find($member_id);
     $this->data = $data;
     $this->meta_title = '修改密码';
     $this->display();
 }
Esempio n. 6
0
 /**
  * 用户登录认证
  * @param  string  $username 用户名
  * @param  string  $password 用户密码
  * @param  integer $type     用户名类型 (1-用户名,2-邮箱,3-手机,4-UID)
  * @return integer           登录成功-用户ID,登录失败-错误编号
  */
 public function login($username, $password, $type = 1)
 {
     $map = array();
     //        switch ($type) {
     //            case 1:
     //                $map['username'] = $username;
     //                break;
     //            case 2:
     //                $map['email'] = $username;
     //                break;
     //            case 3:
     //                $map['mobile'] = $username;
     //                break;
     //            case 4:
     //                $map['id'] = $username;
     //                break;
     //            default:
     //                return 0; //参数错误
     //        }
     $map[get_account_type($username)] = $username;
     $jin = __DB_PREFIX__ . "member_group as a on " . __DB_PREFIX__ . "member.member_group_id=a.member_group_id";
     $field = "*," . __DB_PREFIX__ . "member.status as status";
     $user = $this->field($field)->where($map)->join($jin)->find();
     if (is_array($user) && $user['status'] === '1' && $user['member_group_id'] == C('ALLOW_GROUP')) {
         /* 验证用户密码 */
         $md5pas = ainiku_ucenter_md5($password);
         if ($md5pas === $user['password']) {
             /* 记录登录SESSION和COOKIES */
             $auth = array('uid' => $user['member_id'], 'username' => $user['username'], 'last_login_time' => $user['update_time']);
             session('user_auth', $auth);
             session('uinfo', $user);
             session('user_auth_sign', data_auth_sign($auth));
             //更新用户登录信息
             $this->updateLogin($user['member_id']);
             return $user['member_id'];
             //登录成功,返回用户ID
         } else {
             return -2;
             //密码错误
         }
     } else {
         return -1;
         // '用户不存在或被禁用!'
     }
 }
 /**
  * 修改密码初始化
  * @author huajie <*****@*****.**>
  */
 public function updatepwd($member_id = '')
 {
     if (IS_POST) {
         $model = D('Member');
         $password = I('post.password');
         $repassword = I('post.repassword');
         if (empty($password)) {
             $this->error('密码不能为空!');
         }
         if ($password != $repassword) {
             $this->error('两次输入的密码不一样!');
         }
         if ($model->create()) {
             $model->password = ainiku_ucenter_md5($model->password);
             $model->update_time = NOW_TIME;
             $result = $model->save();
             if (0 < $result) {
                 A('Public')->logout(true);
                 $this->success('密码更新成功!请重新登陆!', U('Public/login'));
             } else {
                 $this->error('密码相同,没有更改');
             }
         } else {
             $this->error($model->geterror());
         }
     }
     $member_id = empty($member_id) ? UID : $member_id;
     $data = M('Member')->find($member_id);
     $this->data = $data;
     $this->meta_title = '修改密码';
     $this->display();
 }