function login() { if (isset($_GET['dosubmit'])) { $username = trim($this->input->post('username')); $password = trim($this->input->post('password')); $code = trim($this->input->post('code')); $login_url = $this->admin_url . 'main_index/index/login'; $this->load->model('a_system_model'); $r = $this->a_system_model->get_one(array('username' => $username, 'sts' => 0), $this->tb_admini); //if ($this->session->userdata('adlogin_verifycode') != strtolower($code)) {//判断验证码 //$this->showmessage('error',lang('com_verifycode_error'),$login_url); //} if (!$r) { $this->showmessage('goback', lang('password_error'), $login_url); } $password = md5(md5($password . $r['encrypt'])); $maxloginfailedtimes = 5; $logintime = time() - 7200; $rtime = $this->a_system_model->get_one(array('username' => $username, 'isadmin' => 1, 'logintime >' => $logintime), $this->tb_times); // if($rtime && $rtime['times'] > $maxloginfailedtimes) { // $this->showmessage('error',lang('com_login_maxtimes_error'),$login_url); // } if ($r['password'] != $password) { $ip = ip(); if ($rtime && $rtime['times'] < $maxloginfailedtimes + 1) { $times = $maxloginfailedtimes - intval($rtime['times']); $this->a_system_model->update_set(array('username' => $username), array('ip' => $ip, 'isadmin' => 1, 'data_set' => array('times' => 'times+1')), $this->tb_times); } else { $this->a_system_model->del(array('username' => $username, 'isadmin' => 1), 'sys_times'); $this->a_system_model->add(array('username' => $username, 'ip' => $ip, 'isadmin' => 1, 'logintime' => time(), 'times' => 1), $this->tb_times); $times = $maxloginfailedtimes; } if ($times >= 3) { //密码输入错误小于3次时提示 $this->showmessage('error', lang('com_login_error'), $login_url); } else { $com_login_error = lang('com_login_times_error'); $com_login_error = cc_str_replace($com_login_error, array('times' => $times)); $this->showmessage('error', $com_login_error, $login_url); } } $this->a_system_model->del(array('username' => $username, 'isadmin' => 1), $this->tb_times); $last_login_time = empty($r['this_login_time']) ? time() : $r['this_login_time']; $loghash = random(6, 'abcdefghigklmnopqrstuvwxwyABCDEFGHIGKLMNOPQRSTUVWXWY0123456789'); $this->a_system_model->update(array('id' => $r['id']), array('last_login_ip' => ip(), 'last_login_time' => $last_login_time, 'this_login_time' => time()), $this->tb_admini); $ses_data = array('admin_user_id' => $r['id'], 'admin_username' => $username, 'admin_role_id' => $r['role_id'], 'admin_area_id' => $r['areaids'], 'admin_login' => 'logined', 'loghash' => $loghash); $this->session->set_userdata($ses_data); redirect($this->admin_url . 'main_index/index/?loghash=' . $loghash); } $this->cismarty->display('login.html'); }
/** * 自动模板调用 * * @param $module * @param $template * @param $istag * @return unknown_type */ protected function view($view_file, $page_data = false, $module = '') { $now_pos = array('name' => '', 'isshop' => '0'); if (isset($page_data['isleft']) && $page_data['isleft'] == 1) { $member_left = getcache('member_left', 'member', 'file', 'array'); foreach ($member_left as $k => $v) { if ($this->_roule_c == $v['sel_c'] && $this->_roule_a == $v['sel_a']) { $now_pos = array('name' => $v['name'], 'isshop' => $v['isshop']); } if ($v['sel_c'] == 'shop') { $msg = $v['url']; $member_left[$k]['url'] = cc_str_replace($msg, array('shop_id' => $this->session->userdata['member_user_id'])); } } $page_data['member_left'] = $member_left; } $url['m'] = $this->_roule_m; $url['c'] = $this->_roule_c; $url['a'] = $this->_roule_a; $page_data['mvc'] = $url; $page_data['now_pos'] = $now_pos; parent::view($view_file, $page_data, $module); }