- 论坛徽章:
- 0
|
需要什么源码?
是PHP登陆的代码吗?
我贴在这里如果你需要其它什么日志或者什么的。请加我QQ好吗?谢谢了
- /*
- * //登陆检测
- */
- function actionCheckLogin()
- {
- if(@$_SESSION['errorCount']){
- $_SESSION['errorCount'] += 1;
- }else {
- $_SESSION['errorCount'] = 1;
- }
- $json_data['status'] = 'no';
-
- //检测是否为禁止IP
- $ipp = $_SERVER['REMOTE_ADDR'];
- $eret = "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$";
- if(!eregi($eret, $ipp))
- {
- return $this->_redirectmessage(
- "登陆错误",
- "系统无法获取你的IP,警告!登陆失败五次将锁IP,当前您已出错 ".$_SESSION['errorCount'].' 次',
- url("users/login")
- );
- }
- $ip = Ip::find('ip=?', $ipp)->getOne();
- if($ip->ip)
- {
- $json_data['status'] = 'yes';
- $json_data['username'] = "'禁止访问'";
- return json_encode($json_data);
- }
-
- if( $this->_context->isPOST() )
- {
- try{
- //使用 acluser 插件的 validateLogin() 方法验证登录并取得有效的 user 对象
- $user = User::meta()->validateLogin($this->_context->username, $this->_context->password);
- //将登录用户的信息存入 SESSION,以便应用程序记住用户的登录状态
- if($user->ispass)
- {
- //2009-4-24更改,将原来的SESSION方式更改为数据库
- $key = Q::Ini('appini/key');
- $sessionid = md5(session_id().$key);
- //存入cookie
- setcookie('sessionId', $sessionid);
- $session = Session::find('sessionid=?', $sessionid)->getOne();
- if($session->sessionid)
- { //如果session数据表有这个记录,则执行update
- $session->save();
- }else{
- //没有这个记录的话将新的登陆信息存放进去以供查询
- $roles = NULL;
- foreach($user->roles as $list)
- {
- $roles .= $list->name.",";
- }
- $date = array(
- 'sessionid' => $sessionid,
- 'username' => $user->username,
- 'id' => $user->user_id,
- 'roles' => substr($roles, 0, -1),
- );
- $session = new Session($date);
- $session->save();
- }
- $_SESSION['errorCount'] = 0;
- $usernew = User::find('user_id=?', $user->user_id)->getOne();
- $logData = array(
- 'title' => '用户 '.$usernew->username.' 登陆成功,IP:'.$usernew->login_ip,
- );
- $log = new Jfblog($logData);
- $log->save();
- // 登录成功后,重定向浏览器
- return $this->_redirect(url("news/admin"));
- }else{
- return $this->_redirectmessage("登陆错误", "用户 {$this->_context->username} 还没有得到管理员的批准", url("users/login"));
- }
- }
- catch (AclUser_UsernameNotFoundException $ex){
- if($_SESSION['errorCount'] > 5)
- {
- $data = array('ip' => $_SERVER['REMOTE_ADDR']);
- $ip = new Ip($data);
- $ip->save();
- }
- return $this->_redirectmessage("登陆错误", "您输入的用户名 {$this->_context->username} 不存在.警告!登陆失败五次将锁IP,当前您已出错 ".$_SESSION['errorCount'].' 次', url("users/login"));
- }
- catch (AclUser_WrongPasswordException $ex) {
- if($_SESSION['errorCount'] > 5)
- {
- $data = array('ip' => $_SERVER['REMOTE_ADDR'] );
- $ip = new Ip($data);
- $ip->save();
- }
- $json_data['username'] = "您输入的密码不正确<br />警告,登陆失败五次将锁IP,当前您已出错 ".$_SESSION['errorCount'].' 次';
- return $this->_redirectmessage(
- "登陆错误",
- "您输入的密码不正确,警告!登陆失败五次将锁IP,当前您已出错 ".$_SESSION['errorCount'].' 次',
- url("users/login")
- );
- }
- }
- }
复制代码 |
|