>  기사  >  백엔드 개발  >  ThinkPHP3.2.3 인증 코드 표시, 새로 고침 및 확인

ThinkPHP3.2.3 인증 코드 표시, 새로 고침 및 확인

不言
不言원래의
2018-06-08 10:40:001600검색

이 글은 주로 ThinkPHP3.2.3 인증 코드 표시, 새로 고침, 인증에 대해 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.

ThinkPHP3.2.3 인증 코드 표시, 새로 고침 및 인증 세부 사항은 다음과 같습니다.

인증 코드 표시

먼저 Home/Controller 아래에 공용 컨트롤러 PublicController를 생성합니다

<?php
namespace Home\Controller;

use Think\Controller;
use Think\Verify;

class PublicController extends Controller
{

  /* 生成验证码 */
  public function verify()
  {
    $config = [
      &#39;fontSize&#39; => 19, // 验证码字体大小
      &#39;length&#39; => 4, // 验证码位数
      &#39;imageH&#39; => 34
    ];
    $Verify = new Verify($config);
    $Verify->entry();
  }

  /* 验证码校验 */
  public function check_verify($code, $id = &#39;&#39;)
  {
    $verify = new \Think\Verify();
    $res = $verify->check($code, $id);
    $this->ajaxReturn($res, &#39;json&#39;);
  }
}

verify 함수 확인 코드를 생성하는 데 사용되는 config는 확인 코드 표시를 위한 속성을 구성하는 데 사용됩니다. 이 속성의 구성 가능한 항목은 여기서 설명하지 않는 Thinkphp/Library/Think/Verify.class.php 파일을 참조하세요.

check_verify 기능은 인증 코드의 정확성을 확인하는 데 사용됩니다. 템플릿은 사용자가 입력한 확인 코드를 이 함수에 게시하고 확인에 성공하면 $res==true를 반환하고 확인에 실패하면 false를 반환합니다.
프런트 엔드 템플릿 페이지에서 index.html을 생성하세요

 <p class="">
 <label for="j_verify" class="t">验证码:</label> <input id="j_verify"
 name="j_verify" type="text" class="form-control x in">
 <img id="verify_img" alt="点击更换" title="点击更换"
 src="{:U(&#39;public/verify&#39;,array())}" class="m">
 </p>

Thinkphp의 U 메소드를 사용하여 그림을 형성하여 인증 코드를 생성하세요.

인증코드 새로고침을 클릭하세요

위의 인증코드 생성 링크를 보면 /public/verify 도메인 이름으로 인증코드를 생성할 수 있음을 알 수 있습니다. Thinkphp의 인증 코드 생성 메커니즘은 새로운 인증 코드를 생성해야 하는 경우 링크 뒤에 변수 값을 추가하기만 하면 된다는 것입니다.

변수 값의 공개/확인/양식 URL 구현을 고려할 수 있습니다.

$("#verify_img").click(function() {
  var verifyURL = "public/verify";
  var time = new Date().getTime();
  $("#verify_img").attr({
   "src" : verifyURL + "/" + time
  });
});

JS를 사용하여 현재 타임스탬프를 가져와서 URL에 추가하세요.

이제 인증 코드의 클릭하여 새로 고침 기능을 구현할 수 있습니다. 구체적인 표현 형식은 귀하에게 달려 있습니다.

인증 코드 비동기 인증

일부 웹사이트에서 인증 코드를 입력하면 입력 과정에서 텍스트 상자 뒤에 오류가 표시되고, 인증이 완료될 때까지 인증하라는 메시지가 표시되는 것을 보셨을 것입니다. 입력하세요. 올바른 형식을 코딩하세요. 다음 코드를 얻을 수 있습니다:

$("#j_verify").keyup(function() {
  $.post("public/check_verify", {
    code : $("#j_verify").val()
    }, function(data) {
    if (data == true) {
      //验证码输入正确
    } else {
      //验证码输入错误
    }
  });
});

onekeyup을 사용하세요. 원리는 따로 설명할 필요가 없습니다!

이러한 방식으로 사용자 이름과 비밀번호를 제출하기 전에 인증 코드 확인을 수행할 수 있으며, 사용자 경험을 개선하기 위해 양식이 제출된 후에 다시 확인을 수행할 수 있습니다!

아직 끝나지 않았습니다:

위 양식을 채택하여 인증 코드를 두 번 인증하면 반드시 첫 번째 비동기 인증에 성공하지만 양식을 제출할 때 오류가 발생하는 상황이 있을 것입니다. 인증번호에! 실제로 그 이유는 Thinkphp의 verify.class.php에 있습니다.

다음은 이 클래스의 초기 구성 구성입니다.

protected $config =  array(
    &#39;seKey&#39;   => &#39;ThinkPHP.CN&#39;,  // 验证码加密密钥
    &#39;codeSet&#39;  => &#39;2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY&#39;,       // 验证码字符集合
    &#39;expire&#39;  => 1800,      // 验证码过期时间(s)
    &#39;useZh&#39;   => false,      // 使用中文验证码 
    &#39;zhSet&#39;   => &#39;……此处不粘贴了,太多了!&#39;,       // 中文验证码字符串
    &#39;useImgBg&#39; => false,      // 使用背景图片 
    &#39;fontSize&#39; => 25,       // 验证码字体大小(px)
    &#39;useCurve&#39; => false,      // 是否画混淆曲线
    &#39;useNoise&#39; => false,      // 是否添加杂点  
    &#39;imageH&#39;  => 0,        // 验证码图片高度
    &#39;imageW&#39;  => 0,        // 验证码图片宽度
    &#39;length&#39;  => 5,        // 验证码位数
    &#39;fontttf&#39;  => &#39;&#39;,       // 验证码字体,不设置随机获取
    &#39;bg&#39;    => array(243, 251, 254), // 背景颜色
    &#39;reset&#39;   => true,      // 验证成功后是否重置
    );

마지막 속성 재설정은 성공한 후 확인을 재설정할지 여부를 나타냅니다. 인증 코드. 첫 번째 인증을 통과한 후 인증 코드가 실제로 유효하지 않게 되었다는 사실을 모두가 이해한다고 믿습니다. 그러나 비동기 인증을 사용했기 때문에 페이지가 새로 고쳐지지 않아 두 번째 인증 신청 시간이 더 이상 동일하지 않습니다. 시스템이 생산합니다. 따라서 이 이중 확인 스타일이 마음에 들면 재설정을 false로 구성하는 것을 고려해 볼 수 있습니다.

좋아요, 오늘 Thinkphp3.2.3을 기반으로 한 인증 코드 문제를 마무리하겠습니다. 구현 방법에 대해서만 간략하게 말씀드렸습니다. 구체적인 내용은 TP 공식 매뉴얼을 참고해주세요. 오류가 있으면 지적해주세요.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

thinkPHP5.0 프레임워크 구성 형식, 로드, 구문 분석 및 읽기 방법

thinkPHP 인증 코드의 간단한 구현 방법

위 내용은 ThinkPHP3.2.3 인증 코드 표시, 새로 고침 및 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.