Python 은 사용자 로그 인 을 실현 하고 세 번 의 오 류 를 입력 한 후 이 사용 자 를 잠 금 합 니 다.

사용자 로그 인 을 실현 하고 오 류 를 세 번 입력 한 후 이 사용 자 를 잠 금 합 니 다.
나의 테스트 환경,win 7,python 3.5.1
사용자 이름과 비밀 번 호 를 입력 하 는 것 을 알려 줍 니 다.
잠 겨 있 는 지 여 부 를 판단 합 니 다.
사용자 이름과 비밀번호 가 일치 하 는 지 판단 합 니 다.
입력 오류 세 번,계 정 잠 금
사고의 방향

부호 블록

name = 'alex'   #      
passwd = '123456'  #     
lock_usr = []   #      

for i in range(0,3):
 usr_name = input("   :")
 usr_passwd = input("  :")
 if usr_name == name and usr_passwd == passwd:
  print("     ...")
  break
 elif name != usr_name or passwd != usr_passwd:
  if i < 2:
   print("       ,     !")
  else:
   lock_usr.append(usr_name)     #                   
   print("   !      ,         ")
 elif usr_name in lock_usr:
  print("      ,      ")
PS:아래 는 c\#를 통 해 비밀 번 호 를 세 번 입력 하 는 오 류 를 실현 한 후 사용자 기능 을 잠 금 합 니 다.

#region                
  #region          
  ///<summary>
  ///         
  ///</summary>
  private void IncErrorTime()
  {
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand updateCmd = conn.CreateCommand())
    {
     updateCmd.CommandText = "update T_Admin set errortime=errortime+1 whereUsername=@username";
     updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
     conn.Open();
     updateCmd.ExecuteNonQuery();
    }
   }
  } 
  #endregion
  #region      0
  ///<summary>
  ///     0
  ///</summary>
  private void NotErrorTime()
  {
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand updateCmd = conn.CreateCommand())
    {
     updateCmd.CommandText = "update T_Admin set errortime=0 whereUsername=@username";
     updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
     conn.Open();
     updateCmd.ExecuteNonQuery();
    }
   }
  } 
  #endregion
  #region     3 ,       30  
  ///<summary>
  ///    3 ,       30  
  ///</summary>
  private void IncLoginTime()
  {
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand updateCmd = conn.CreateCommand())
    {
     updateCmd.CommandText = "update T_Admin set logintime=@logintime whereUsername=@username";
     DateTime logintime = DateTime.Now.AddMinutes(30);
     updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
     updateCmd.Parameters.Add(new SqlParameter("logintime", logintime.ToString()));
     conn.Open();
     updateCmd.ExecuteNonQuery();
    }
   }
  } 
  #endregion
  #region           3        30  
  private void BtnClike()
  {
   string username = cmbuserName.Text;
   string password = txtPwd.Text;
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand cmd = conn.CreateCommand())
    {
     cmd.CommandText = "select * from T_Admin whereusername=@username";
     cmd.Parameters.Add(new SqlParameter("username", username));
     conn.Open();
     using (SqlDataReader reader = cmd.ExecuteReader())
     {
      if (reader.Read())
      {
       //    
       string dbpassword = reader.GetString(reader.GetOrdinal("password"));
       DateTime logintime = reader.GetDateTime(reader.GetOrdinal("logintime"));
       //                 
       if (logintime > DateTime.Now)
       {
        MessageBox.Show("         ");
        return;
       }
       //      
       if (dbpassword == txtPwd.Text)
       {
        NotErrorTime();
        MessageBox.Show("    !");
       }
       //      
       else
       {
        int errortime = reader.GetInt32(reader.GetOrdinal("errortime"));
        if (errortime >= 2)
        {
         MessageBox.Show("        !");
         IncLoginTime();
         NotErrorTime();
         return;
        }
        MessageBox.Show("    !");
        IncErrorTime();//    ,   1
       }
      }
      else//      
      {
       MessageBox.Show("      !");
       return;
      }
     }
    }
   }
  }
  #endregion
  #endregion
총결산
위 에서 말 한 것 은 소 편 이 소개 한 Python 이 사용자 로그 인 을 실현 하고 오 류 를 세 번 입력 한 후에 이 사용 자 를 잠 그 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기