예제 #1
0
 public function save()
 {
     //注册开关
     if (User_Reg == 0) {
         msg_url(L('reg_35'), Web_Path);
     }
     $userinfo = array();
     $token = $this->input->post('token', TRUE);
     if ($token != $_SESSION['token']) {
         msg_url(L('reg_02'), 'javascript:history.back();');
     }
     //判断验证码开关
     if (User_Code_Mode == 1) {
         $codes = str_checkhtml($this->input->post('usercode', TRUE));
         if (empty($codes) || $this->cookie->get_cookie('codes') != strtolower($codes)) {
             msg_url(L('reg_03'), 'javascript:history.back();');
         }
     }
     $userinfo['code'] = random_string('alnum', 6);
     $userinfo['name'] = $this->input->post('username', TRUE, TRUE);
     $userinfo['pass'] = $this->input->post('userpass', TRUE, TRUE);
     $userinfo['nichen'] = $this->input->post('usernichen', TRUE);
     $userinfo['email'] = $this->input->post('useremail', TRUE, TRUE);
     $userinfo['tel'] = $this->input->post('usertel', TRUE, TRUE);
     $userinfo['regip'] = getip();
     $userinfo['cion'] = User_Cion_Reg;
     $userinfo['jinyan'] = User_Jinyan_Reg;
     $userinfo['addtime'] = time();
     $userinfo['yid'] = 0;
     if ($userinfo['nichen'] == "0") {
         $userinfo['nichen'] = '';
     }
     if (!is_username($userinfo['name'])) {
         msg_url(L('reg_04'), 'javascript:history.back();');
     }
     if (!is_userpass($userinfo['pass'])) {
         msg_url(L('reg_05'), 'javascript:history.back();');
     }
     if (!empty($userinfo['nichen']) && !is_username($userinfo['nichen'], 1)) {
         msg_url(L('reg_06'), 'javascript:history.back();');
     }
     if (!is_email($userinfo['email'])) {
         msg_url(L('reg_07'), 'javascript:history.back();');
     }
     //判断保留用户名
     $ymext = explode('|', Home_Ymext);
     if (in_array($userinfo['name'], $ymext)) {
         msg_url(L('reg_08'), 'javascript:history.back();');
     }
     //判断同一IP注册时间限制
     if (User_RegIP > 0) {
         $row = $this->db->query("SELECT addtime FROM " . CS_SqlPrefix . "user where regip='" . $userinfo['regip'] . "' order by id desc")->row();
         if ($row && $row->addtime + 3600 * User_RegIP > time()) {
             msg_url(L('reg_09'), 'javascript:history.back();');
         }
     }
     //判断用户名是否注册
     $username = $this->CsdjDB->get_row('user', 'id', $userinfo['name'], 'name');
     if ($username) {
         msg_url(L('reg_10'), 'javascript:history.back();');
     }
     //判断邮箱是否注册
     $useremail = $this->CsdjDB->get_row('user', 'id', $userinfo['email'], 'email');
     if ($useremail) {
         msg_url(L('reg_11'), 'javascript:history.back();');
     }
     //下面选填字段
     $userinfo['qq'] = $this->input->post('userqq', TRUE);
     $userinfo['sex'] = intval($this->input->post('usersex', TRUE));
     $userinfo['city'] = $this->input->post('usercity', TRUE);
     $userinfo['skins'] = Home_Skins;
     $userinfo['qianm'] = '';
     if (!empty($userinfo['tel'])) {
         if (!is_tel($userinfo['tel'])) {
             msg_url(L('reg_12'), 'javascript:history.back();');
         }
         //判断手机号码是否注册
         $usertel = $this->CsdjDB->get_row('user', 'id', $userinfo['tel'], 'tel');
         if ($usertel) {
             msg_url(L('reg_13'), 'javascript:history.back();');
         }
     }
     //判断手机强制验证
     if (User_Tel == 1) {
         if (empty($userinfo['tel'])) {
             msg_url(L('reg_12'), 'javascript:history.back();');
         }
         $telcode = intval($this->input->post('telcode', TRUE));
         if ($telcode == 0 || $telcode != $_SESSION['tel_code']) {
             msg_url(L('reg_14'), 'javascript:history.back();');
         }
     }
     //是否需要人工验证
     if (User_RegFun == 1) {
         $userinfo['yid'] = 1;
         $title = L('reg_15');
     }
     //是否需要邮件验证
     if (User_RegEmailFun == 1) {
         $userinfo['yid'] = 2;
         $title = L('reg_16', array($userinfo['email']));
     }
     //--------------------------- Ucenter ---------------------------
     if (User_Uc_Mode == 1) {
         include CSCMS . 'lib/Cs_Ucenter.php';
         include CSCMSPATH . 'uc_client/client.php';
         $uid = uc_user_register($userinfo['name'], $userinfo['pass'], $userinfo['email']);
         if ($uid > 0) {
             $userinfo['uid'] = $uid;
         }
     }
     //--------------------------- Ucenter End ---------------------------
     //密码加密
     $userinfo['pass'] = md5(md5($userinfo['pass']) . $userinfo['code']);
     $regid = $this->CsdjDB->get_insert('user', $userinfo);
     if (intval($regid) == 0) {
         msg_url(L('reg_17'), 'javascript:history.back();');
     }
     //摧毁token
     unset($_SESSION['token']);
     $this->load->model('CsdjEmail');
     if (User_RegEmailFun == 1) {
         //发送激活邮件
         $key = md5($regid . $userinfo['name'] . $userinfo['pass'] . $userinfo['yid']);
         $Msgs['username'] = $userinfo['name'];
         $Msgs['url'] = userurl(site_url('user/reg/verify')) . "?key=" . $key . "&username="******"user_id", $regid, time() + 86400);
         $this->cookie->set_cookie("user_login", $user_login, time() + 86400);
         msg_url(L('reg_21'), userurl(site_url('user/space')), 'ok');
     } else {
         msg_url(L('reg_21') . $title . '~!', userurl(site_url('user/login')), 'ok');
     }
 }
예제 #2
0
 public function pass_save()
 {
     $token = $this->input->post('token', TRUE);
     if ($token != $_SESSION['token']) {
         msg_url(L('edit_02'), 'javascript:history.back();');
     }
     $pass = $this->input->post('userpass', TRUE, TRUE);
     $pass1 = $this->input->post('userpass1', TRUE, TRUE);
     $pass2 = $this->input->post('userpass2', TRUE, TRUE);
     if (empty($pass)) {
         msg_url(L('edit_13'), 'javascript:history.back();');
     }
     if (empty($pass1) || !is_userpass($pass1)) {
         msg_url(L('edit_14'), 'javascript:history.back();');
     }
     if ($pass1 != $pass2) {
         msg_url(L('edit_15'), 'javascript:history.back();');
     }
     //判断原密码
     $row = $this->db->query("select code,pass from " . CS_SqlPrefix . "user where id=" . $_SESSION['cscms__id'] . "")->row();
     if ($row->pass != md5(md5($pass) . $row->code)) {
         msg_url(L('edit_16'), 'javascript:history.back();');
     }
     //修改入库
     $userinfo['code'] = random_string('alnum', 6);
     $userinfo['pass'] = md5(md5($pass1) . $userinfo['code']);
     $this->CsdjDB->get_update('user', $_SESSION['cscms__id'], $userinfo);
     msg_url(L('edit_17'), 'javascript:history.back();');
 }