Home Backend Development PHP Tutorial Display, refresh and verification of ThinkPHP3.2.3 verification code

Display, refresh and verification of ThinkPHP3.2.3 verification code

Jun 08, 2018 am 10:40 AM
thinkphp thinkphp3.2 Verification code

This article mainly introduces ThinkPHP3.2.3 verification code display, refresh, and verification. It has certain reference value. Interested friends can refer to it.

ThinkPHP3.2.3 verification code display, refresh, and verification are as follows:

Display verification code

First Create a public controller under 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;);
  }
}
Copy after login

verify function is used to generate verification codes, and config is used to configure the attributes for displaying verification codes. . For the configurable items of this attribute, you can view the Thinkphp/Library/Think/Verify.class.php file, which will not be described here.

The check_verify function is used to verify the correctness of the verification code. The template posts the verification code filled in by the user to this function, and returns $res==true if the verification passes and false if the verification fails.
Create index.html for the front-end template page

 <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>
Copy after login

Use Thinkphp's U method to form a picture that generates a verification code.

Click to refresh the verification code

From the above link to generate the verification code, we can see that the domain name /public/verify can generate the verification code . Thinkphp's verification code generation mechanism is that if we need to generate a new verification code, just add a variable value after the link.

We can consider implementing the public/verify/variable value form URL.

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

Use JS to get the current timestamp and add it to the URL.

At this point we can implement the click-to-refresh function of the verification code. The specific form of expression is up to you.

Asynchronous verification of verification code

You must have seen that on some websites, when we enter the verification code, the text in the input process An error is always displayed behind the box until we enter the correct form of the verification code. The following code can be achieved:

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

Use onekeyup. There is no need to explain the principle!

In this way, we can perform a verification code verification before submitting the username and password, and then perform verification again after the form is submitted to improve the user experience!

It’s not over yet:

When we adopt the above form to verify the verification code twice, there will definitely be the first asynchronous The verification is successful, but when submitting the form, it prompts an error in the verification code! In fact, the reason lies in Thinkphp's Verify.class.php:

The following is the initial config configuration of this class:

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,      // 验证成功后是否重置
    );
Copy after login

Please note that the last attribute reset indicates whether to reset the verification code after successful verification. I believe everyone understands that after we passed the first verification, the verification code actually became invalid. However, because we used asynchronous verification, the page was not refreshed, which resulted in the failure of the second application for verification. The time is no longer the same as what the system produces. So if you like this double verification style, you can consider configuring reset to false.

Okay, the verification code problem based on Thinkphp3.2.3 is summarized here today. I just briefly talked about the implementation method. Please refer to the TP official manual for specific content. If there are any errors, please point them out.

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

thinkPHP5.0 framework configuration format, loading, parsing and reading methods

thinkPHP verification Simple implementation method of code

The above is the detailed content of Display, refresh and verification of ThinkPHP3.2.3 verification code. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if Google Chrome does not display the verification code image? Chrome browser does not display the verification code? What should I do if Google Chrome does not display the verification code image? Chrome browser does not display the verification code? Mar 13, 2024 pm 08:55 PM

What should I do if Google Chrome does not display the verification code image? Sometimes you need a verification code to log in to a web page using Google Chrome. Some users find that Google Chrome cannot display the content of the image properly when using image verification codes. What should be done? The editor below will introduce how to deal with the Google Chrome verification code not being displayed. I hope it will be helpful to everyone! Method introduction: 1. Enter the software, click the "More" button in the upper right corner, and select "Settings" in the option list below to enter. 2. After entering the new interface, click the "Privacy Settings and Security" option on the left. 3. Then click "Website Settings" on the right

How to run thinkphp project How to run thinkphp project Apr 09, 2024 pm 05:33 PM

To run the ThinkPHP project, you need to: install Composer; use Composer to create the project; enter the project directory and execute php bin/console serve; visit http://localhost:8000 to view the welcome page.

There are several versions of thinkphp There are several versions of thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP has multiple versions designed for different PHP versions. Major versions include 3.2, 5.0, 5.1, and 6.0, while minor versions are used to fix bugs and provide new features. The latest stable version is ThinkPHP 6.0.16. When choosing a version, consider the PHP version, feature requirements, and community support. It is recommended to use the latest stable version for best performance and support.

How to run thinkphp How to run thinkphp Apr 09, 2024 pm 05:39 PM

Steps to run ThinkPHP Framework locally: Download and unzip ThinkPHP Framework to a local directory. Create a virtual host (optional) pointing to the ThinkPHP root directory. Configure database connection parameters. Start the web server. Initialize the ThinkPHP application. Access the ThinkPHP application URL and run it.

Can virtual numbers receive verification codes? Can virtual numbers receive verification codes? Jan 02, 2024 am 10:22 AM

The virtual number can receive the verification code. As long as the mobile phone number filled in during registration complies with the regulations and the mobile phone number can be connected normally, you can receive the SMS verification code. However, you need to be careful when using virtual mobile phone numbers. Some websites do not support virtual mobile phone number registration, so you need to choose a regular virtual mobile phone number service provider.

Which one is better, laravel or thinkphp? Which one is better, laravel or thinkphp? Apr 09, 2024 pm 03:18 PM

Performance comparison of Laravel and ThinkPHP frameworks: ThinkPHP generally performs better than Laravel, focusing on optimization and caching. Laravel performs well, but for complex applications, ThinkPHP may be a better fit.

Development suggestions: How to use the ThinkPHP framework to implement asynchronous tasks Development suggestions: How to use the ThinkPHP framework to implement asynchronous tasks Nov 22, 2023 pm 12:01 PM

"Development Suggestions: How to Use the ThinkPHP Framework to Implement Asynchronous Tasks" With the rapid development of Internet technology, Web applications have increasingly higher requirements for handling a large number of concurrent requests and complex business logic. In order to improve system performance and user experience, developers often consider using asynchronous tasks to perform some time-consuming operations, such as sending emails, processing file uploads, generating reports, etc. In the field of PHP, the ThinkPHP framework, as a popular development framework, provides some convenient ways to implement asynchronous tasks.

How to install thinkphp How to install thinkphp Apr 09, 2024 pm 05:42 PM

ThinkPHP installation steps: Prepare PHP, Composer, and MySQL environments. Create projects using Composer. Install the ThinkPHP framework and dependencies. Configure database connection. Generate application code. Launch the application and visit http://localhost:8000.

See all articles