Detailed introduction to the principle of PHP verification code implementation

黄舟
Release: 2023-03-06 14:28:02
Original
1454 people have browsed it

Expansion

We need to enable gd expansion. You can use the following code to check whether gd expansion is enabled.

Copy after login

Then search the gd option on the browserCtrl+Fto verify whether you have installed this extension. If not, you need to install the extension yourself.

Background image

imagecreatetruecolor

Default generates black background


        
Copy after login

imagecolorallocate

Create a fill color and use imagefill(image, x ,y,color) method to attach.


        
Copy after login

imagepng

Before using this method, you must set the header information first, otherwise the image will not be displayed normally

imagedestory(image)

Timely release of resources will reduce the pressure on server requests.

Simple digital verification code

imagecolorallocate

Generate color information to facilitate processing later.

$fontcolor=imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));
Copy after login

imagestring

Write the content information to the corresponding position of the image.

imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
Copy after login

Increase recognition interference

Increase points

// 生成一些干扰的点,这里是200个 for($i=0;$i<200;$i++){ $pointcolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255)); imagesetpixel($image,rand(0,100),rand(0,30),$pointcolor); }
Copy after login

Increase lines

// 生成一些干扰线 这里是5个 for($i=0;$i<5;$i++){ // 设置为浅色的线,防止喧宾夺主 $linecolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255)); imageline($image,rand(0,99),rand(0,29),rand(0,99),rand(0,29),$linecolor); }
Copy after login

Mixed alphanumeric verification code


        
Copy after login

Use verification code

The timing of opening the session

Note: The session must be opened at the beginning

The principle of verification

The verification process is The verification code entered by the client is compared with the verification code existing in the session field. That is:

if(isset($_REQUEST['checkcode'])){ session_start(); if($_REQUEST['checkcode']==$_SESSION['checkcode']){ echo "Success!"; }else{ echo "Failed!"; } exit(); }
Copy after login

Optimization verification

However, there is a disadvantage in simple verification, that is, the capitalization of letters is prone to errors. So we need to do a conversion to change all the values entered by the user into lowercase.

if(strtolower($_REQUEST['checkcode'])==$_SESSION['checkcode']){···}
Copy after login

Small case

Generate verification code

         
         
Copy after login

Form verification

Success!"; }else{ echo "Failed!"; } exit(); }?>   验证验证码信息 

验证码图片:

看不清楚
请输入验证码

Copy after login

Summary

Finally, let’s give a summary.

  • Using php to create verification codes requires the support of gd extension.

  • Use the imagecreatetruecolor method to generate the background color, and use imagefill to fill a color generated by imagecolorallocate.

  • Use imagestring to combine the verification code and background image

  • Use imagesetpixel to add interference points

  • Use imageline to add interference lines

  • Before using session, you must enable the session_start() method at the beginning

  • Use JavaScript to dynamically modify The src of the verification code is used to meet the user's need to "change another one".

The above is the detailed content of Detailed introduction to the principle of PHP verification code implementation. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!