찾다

 >  Q&A  >  본문

php - PC측에서는 사용자 로그인 수를 제한합니다!

로그인 오류 횟수와 시간을 세션에 저장합니다. 최대 오류 횟수에 도달하면 로그인할 수 없습니다. 단, 쿠키를 삭제한 후에도 로그인할 수 있습니다. 어떻게 해결해야 하나요? 아니면 로그인 횟수를 제한하는 다른 방법이 있나요? 감사해요!

怪我咯怪我咯2736일 전864

모든 응답(4)나는 대답할 것이다

  • 我想大声告诉你

    我想大声告诉你2017-05-31 10:35:27

    데이터베이스에 필드를 추가하고 횟수가 초과되면 계정을 잠급니다...

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:35:27

    캐시 제어를 위해 Memcache 또는 Redis를 사용하세요

    $key = 로그인 계정

    $value = 로그인 실패 횟수

    $this->set($key,$value);

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-31 10:35:27

    ip와 HTTP_USER_AGENT를 사용하여 동일한 사용자인지 확인하세요

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-31 10:35:27

    귀하와 같은 상황은 글로벌 캐싱을 통해서만 처리할 수 있습니다. 특정 사용자 이름에 대한 로그인 횟수를 제어하려면
    1. 키값 캐싱의 경우
    통합 데이터 구조 key=value => 사용자 이름={'로그인 수':1}를 사용하고 redis, memcache, mysql을 사용하세요. (캐시 테이블 생성, [키값] 컬럼, 인덱스 해시 키)
    $userinfo = $cacheobj->get('username')으로 직접 사용자 정보 획득, 로그인 횟수 확인, 로그인 횟수 증가 $cacheobj -> set('username', $userinfo) 답장

    2. 데이터베이스 로그인 정보 테이블 구조에 통합
    mysql 사용자 로그인 테이블에 새로운 로그인 번호 열을 추가한 후 sql을 호출하고 획득, 판단, 자동 증가 및 업데이트

    시간 위도를 포함하려면

    1. 키값 캐싱의 경우
    데이터 구조가 사용자 이름 = {'로그인 횟수': 1, '타임아웃 시간': 타임스탬프}로 업데이트되고, 타임아웃이 발생하면 판단에 시간 위도가 추가됩니다. 로그인 횟수는 0

    으로 설정되어 있습니다

    2. mysql이 아닌 키값 캐시(redis, memcache)
    Direct $cacheobj->set('username', 'number of logins', timeout)

    3. 데이터베이스 로그인 정보 테이블 구조에 통합하세요.
    이 경우 시간 초과 열을 추가하세요.

    실제 시나리오와 리소스에 따라 이를 구현하는 방법은 셀 수 없이 많습니다.

    회신하다
    0
  • 취소회신하다