Heim >Backend-Entwicklung >PHP-Tutorial >php用户登陆代码(限制用户错误登录次数)(1/2)_PHP教程

php用户登陆代码(限制用户错误登录次数)(1/2)_PHP教程

WBOY
WBOYOriginal
2016-07-20 11:08:221122Durchsuche

php用户登陆代码(限制用户错误登录次数)

php教程用户登陆代码(限制用户错误登录次数)

session_start();
include("mysql教程.class.php");
$db=new mysql('localhost', 'root', '', 'flx', 'conn', 'gbk');
  // 为方便测试,这里只是简单定义了一个特定的用户,在实际操作中,用户信息从数据库教程中得出;
   define('user','admin');
   define('pw', 123);
 $db->findall('limit_login');
 $row=$db->fetch_array();
 //print_r($row);
  if($_post['submit']){
   $username=$_post["username"];
      $pw=$_post["pw"];
      $_session['time']=time();
  /* 错误次数超限判断*/
   // 对于登陆出错超过三次的用户,如果现在时间,减去开始登陆的时间,小于特定的值时,就不允
许在登陆;
 if($username==user){
  //这里用户可以试着登陆3次,,下面写为2,是因为页面刷新与数据库的连接不同步,
  // 就是说,第二次的错误信息插入数据库时,这里获取的信息,还是第一次的,实际用户出错的
次数已经多一次了;
  if($row['login_times']>2){
   $current=time();
   $passed_time=$current-$row['login_date'];
   echo '现在已经过了'.$passed_time.'秒
';
   // 设定时间 900秒,在此时间段内,特定用户不能登陆系统;按
   if(($current-$row['login_date'])    //$test_pw=substr(md5(rand()),0,10);
    //现在admin (特定用户)用户已经登陆错误大于3次,那在限定的时间内,
    //即使他的密码输入正确,也不能在登陆系统;
    if($pw==pw){
       exit('你密码输入错误次数大于三次,请在15分钟后登陆系统!');
    }
    // 当然,这位用户输入的密码不是正确的密码,也给出这样的提示;
    if($pw!=pw){
     exit('你密码输入错误次数大于三次,请在15分钟后登陆系统!');
    }
   }else{
    //此时已经过了限制的时间,这位用户可以登陆了,在此用户在登陆之前,要把前次登陆的时间
清零;
    $mod_content="`login_times`=0,`login_date`=0";
     $condition="`id`=1";
        $db->update('limit_login',$mod_content,$condition);
   }
  }
 }

 

/* 用户登陆操作*/ 
  

if($username&&$pw){
      if($username==user&&$pw==pw){
       /* 用户登陆成功,*/
     // 更新数据表;表登陆次数和时间,都置零;
     $mod_content="`login_times`=0,`login_date`=0";
     $condition="`id`=1";
      $db->update('limit_login',$mod_content,$condition);
      echo '';
      }else{
       //在第一次出错时,设置密码出错次数为1,把登陆时是session 保存的时间放入数据库;
       if($row['login_times']==0&&$row['login_date']==0){
        $mod_content="`login_times`=1,`login_date`='".$_session['time']."'";
     $condition="`id`=1";
        $db->update('limit_login',$mod_content,$condition);
       }else{
        $mod_content="`login_times`=`login_times`+1";
     $condition="`id`=1";
        $db->update('limit_login',$mod_content,$condition);
       }
  /*  提示用户还有几次机会*/
        if($row['login_times']         $row['login_times']++;// 这里登陆次数加1,和上面的说的原因一样,是因不能同步连接
数据库所致;
         echo'密码错误!错误次数为:'.$row['login_times'].'次
';
          $remain_times=3-$row['login_times'];
          echo '你还有'.$remain_times.'登陆机会';
        }
      }
   }else{
    echo '用户名和密码不能为空!';
   }
  }
 


 
?>

 


  username:

  password:

 
 
 

 1 2

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444885.htmlTechArticlephp用户登陆代码(限制用户错误登录次数) php教程用户登陆代码(限制用户错误登录次数) session_start(); include(mysql教程.class.php); $db=new my...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn