thinkphp 3.2 클릭 하여 인증 코드 생 성
씽 크 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 에 넣 고 검증 결 과 를 되 돌려 줍 니 다.그 다음 에 반환 결과 에 따라 양식 을 제출 할 지 여 부 를 확인 하지만 인증 코드 가 첫 번 째 검 사 를 통과 한 후에 두 번 째 는 안 됩 니 다.아직 원인 을 알 수 없습니다.
이것 이 바로 본 고의 전체 내용 입 니 다.글 의 마지막 에 작은 의문 이 있 습 니 다.여러분 들 이 해결 방법 을 생각해 내 고 본 고가 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thinkphp의 S 캐시 사용법!텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.