thinkphp 3.2 클릭 하여 인증 코드 생 성

5528 단어 thinkphp인증번호
thinkphp 3.2 인증 코드 의 사용 방법 을 소개 하기 전에 먼저 ThinkpHP 인증 코드 를 상세 하 게 소개 합 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
씽 크 PHP 에는 인증번호 지원 이 내장 되 어 있어 직접 사용 할 수 있다.인증 코드 를 사용 하려 면 확장 라 이브 러 리 의 ORG.Util.Image 라 이브 러 리 와 ORG.Util.string 라 이브 러 리 를 가 져 와 야 합 니 다.
인증 코드 방법
우 리 는 모듈 클래스 에 verify 방법 을 추가 하여 인증 코드 를 표시 합 니 다.가장 간단 한 예:

Public function verify(){
  //   Image  
  import("ORG.Util.Image");
  Image::buildImageVerify();
}
import 방법 은 ThinkpHP 에 내 장 된 라 이브 러 리 와 파일 가 져 오 는 방법 입 니 다.이전에 가 져 온 파일 은 ThinkpHP 시스템 디 렉 터 리 아래 Lib/ORG/Util/Image.class.php 파일 입 니 다.Lib/ORG 와 같은 이미지 라 이브 러 리 를 현재 항목 으로 복사 했다 면:

import("@.Util.Image");
import 방법 은 ThinkpHP 에 내 장 된 라 이브 러 리 와 파일 가 져 오 는 방법 입 니 다.이전에 가 져 온 파일 은 ThinkpHP 시스템 디 렉 터 리 아래 Lib/ORG/Util/Image.class.php 파일 입 니 다.
액세스 인증번호
인증 코드 가 정상적으로 표 시 될 수 있 는 지 확인 하기 위해 브 라 우 저 에서 이 인증 코드 방법 을 직접 방문 할 수 있 습 니 다.
http://127.0.0.1/index.php/Public/verify
모든 것 이 정상 이면 인증 코드 를 다음 과 같이 표시 합 니 다.

폼 에 인증 코드 사용
폼 페이지 에서 인증 코드 를 사용 합 니 다.html img 태그 로 호출 합 니 다.

<input type="text" name="verify">
<img id="verifyImg" src="-Article-verify" onClick="changeVerify()" title="       " />
src 속성 값 은 인증 코드 방법 으로 주 소 를 방문 하 는 것 으로 실제 상황 에 따라 다르다.
인증번호 리 셋
인증 코드 그림 을 클릭 하면 JavaScript changeVerify()함수 가 인증 코드 를 다시 읽 어 인증 코드 새로 고침 을 실현 합 니 다.이 함 수 는 다음 과 같다.

<script language="JavaScript">
function changeVerify(){
 var timenow = new Date().getTime();
 document.getElementById('verifyImg').src='-Article/verify/'+timenow; 
}
</script>
인증번호
인증 코드 verify 를 호출 할 때 buildImageVerify 는 이번 인증 코드 의 MD5 정 보 를 기록 합 니 다.폼 검증 작업 에서 다음 과 같은 방법 으로 인증 코드 가 정확 한 지 확인 합 니 다.

if($_SESSION['verify'] != md5($_POST['verify'])) {
  $this->error('     !');
}
그 중$SESSION[verify]의 verify 이름 은 buildImageVerify 방법 으로 기본 SESSION 등록 이름 입 니 다.구체 적 으로 buildImageVerify 문법 을 보십시오.
위의 예 는 가장 간단 한 ThinkpHP 인증 코드 의 사용 방법 을 보 여 주 었 다.위의 예 인증 코드 는 4 자리 숫자 입 니 다.더 많은 스타일 의 인증 코드 와 중국어 인증 코드 를 사용 하려 면 이 절의 나머지 부분 을 참조 하 십시오.
인증번호 가 원인 을 표시 하지 않 음
인증 코드 를 표시 할 수 없 는 이 유 는 다음 과 같 습 니 다.
1.PHP 에 GD 라 이브 러 리 지원 이 설치 되 어 있 는 지 여부.
2.출력 전에 출력 이 있 는 지 여부(특히 UTF 8 의 BO Mhead 정보 출력).
3.Image 라 이브 러 리 가 올 바 르 게 가 져 올 지 여부 입 니 다.
4.폼 페이지 라면 인증 코드 표시 방법 이 올 바 르 게 호출 되 었 는 지 확인 하 십시오.
다음은 thinkphp 3.2 인증 코드 생 성과 클릭 하여 인증 코드 를 갱신 하 는 실현 방법 을 소개 합 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.인증 코드 를 생 성 하 는 클래스 를 예화 합 니 다.(이 방법 은 Index Controller 에 넣 으 면 접근 하기 쉽 습 니 다)

/** 
 * 
 *       
 */ 
public function verify_c(){ 
  $Verify = new \Think\Verify(); 
  $Verify->fontSize = 18; 
  $Verify->length  = 4; 
  $Verify->useNoise = false; 
  $Verify->codeSet = '0123456789'; 
  $Verify->imageW = 130; 
  $Verify->imageH = 50; 
  //$Verify->expire = 600; 
  $Verify->entry(); 
} 
2.프론트 데스크 톱 에서 인증 코드 를 생 성 해 야 하 는 그림 src 속성 지향

<p class="top15 captcha" id="captcha-container"> 
 <input name="verify" width="50%" height="50" class="captcha-text" placeholder="   " type="text">         
 <img width="30%" class="left15" height="50" alt="   " src="{:U('Home/Index/verify_c',array())}" title="    "> 
</p> 
3.위 에 있 는 것 을 다 쓴 후에 페이지 초기 화 된 인증 코드 가 나타 날 수 있 습 니 다.아래 에 쓸 것 은 인증 코드 그림 을 클릭 한 후에 새로운 인증 코드 그림 을 새로 고 치 는 것 입 니 다.(jquery 를 통 해 그림 의 src 속성 을 수정 하여 완성 합 니 다.요청 한 처리 함수 와 마찬가지 로 요청 한 후에 무 작위 수 를 추가 하여 이전 그림 의 요청 을 구별 합 니 다)

//       
var captcha_img = $('#captcha-container').find('img') 
var verifyimg = captcha_img.attr("src"); 
captcha_img.attr('title', '    '); 
captcha_img.click(function(){ 
  if( verifyimg.indexOf('?')>0){ 
    $(this).attr("src", verifyimg+'&random='+Math.random()); 
  }else{ 
    $(this).attr("src", verifyimg.replace(/\?.*$/,'')+'?'+Math.random()); 
  } 
}); 
4.인증 코드 의 입력 이 정확 한 지 확인 합 니 다.
a.common 디 렉 터 리 의 function.php 에 전역 함 수 를 추가 합 니 다.

/** 
 *       
 */ 
function check_verify($code, $id = ""){ 
  $verify = new \Think\Verify(); 
  return $verify->check($code, $id); 
} 
b.폼 에 제출 한 contrller 에 대응 하 는 처리 방법 에 검사 코드 를 추가 합 니 다.

//       
$verify = I('param.verify',''); 
if(!check_verify($verify)){ 
  $this->error(" ,       !",$this->site_url,9); 
} 
이 tp 3.2 인증 코드 를 사용 하면 됩 니 다.
보충:나 는 쓸 때 네 개의 b 단 계 를 하나의 ajax 에 넣 고 검증 결 과 를 되 돌려 줍 니 다.그 다음 에 반환 결과 에 따라 양식 을 제출 할 지 여 부 를 확인 하지만 인증 코드 가 첫 번 째 검 사 를 통과 한 후에 두 번 째 는 안 됩 니 다.아직 원인 을 알 수 없습니다.
이것 이 바로 본 고의 전체 내용 입 니 다.글 의 마지막 에 작은 의문 이 있 습 니 다.여러분 들 이 해결 방법 을 생각해 내 고 본 고가 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기