search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

Table of Contents
PHP verification code generation principle and implementation, PHP verification code principle
Articles you may be interested in:
Home Backend Development PHP Tutorial PHP verification code generation principle and implementation, PHP verification code principle_PHP tutorial

PHP verification code generation principle and implementation, PHP verification code principle_PHP tutorial

Jul 12, 2016 am 09:00 AM
php principle Service-Terminal Verification code

PHP verification code generation principle and implementation, PHP verification code principle

Verification codes are implemented more and more in forms, but verification codes written in js always feel unsatisfactory It’s convenient, so I learned the verification code implemented in PHP. Well, I actually had nothing to do, but I didn’t want to waste time, so I learned how to implement verification codes in PHP. As the saying goes, having too many skills does not weigh you down. Moreover, it can also be encapsulated into a function, which is very convenient for future use. Of course, it is not encapsulated now.

First of all, here is a rendering:

Since registration codes are often used when registering to prevent malicious registration by machines, here I publish a basic image that generates a png image verification code. It is very simple but the idea is very clear:

1. Generate a png picture
2. Set the background color for the picture
3. Set font color and style
4. Generate a 4-digit random verification code
5. Adjust the rotation angle and position of each generated character and draw it on the png image
6. Add noise and interference lines to prevent the registration machine from analyzing the original image for malicious registration
7. Output pictures
8. Release the memory occupied by the picture

authcode.php file

Code

<?php
session_start ();
header ( 'Content-type: image/png' );
//创建图片
$im = imagecreate($x=130,$y=45 );
$bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
$fontColor = imageColorAllocate ( $im, 255, 255, 255 ); //字体颜色
$fontstyle = 'rock.ttf'; //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
//产生随机字符
for($i = 0; $i < 4; $i ++) {
$randAsciiNumArray = array (rand(48,57),rand(65,90));
$randAsciiNum = $randAsciiNumArray [rand ( 0, 1 )];
$randStr = chr ( $randAsciiNum );
imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
$authcode .= $randStr; 
}
$_SESSION['authcode'] = $randFourStr;//用户和用户输入的验证码做比较
//干扰线
for ($i=0;$i<8;$i++){
$lineColor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
}
//干扰点
for ($i=0;$i<250;$i++){
imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
}
imagepng($im);
imagedestroy($im); 
?>

The above is relevant knowledge about the principle and implementation of PHP verification code generation. I hope it will be helpful to everyone.

Articles you may be interested in:

  • A beautiful PHP verification code class (share)
  • When PHP generates the verification code, "the image cannot be displayed because it has errors" Solution
  • A summary of several ways to generate graphical verification codes in PHP
  • A useful PHP verification code class example sharing
  • ThinkPHP verification code usage concise tutorial
  • Solution to the problem that thinkphp verification code cannot be displayed
  • PHP generates image verification code and clicks to switch instances
  • PHP uses CURL to simulate login to a website with verification code

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1095278.htmlTechArticlePHP verification code generation principle and implementation, PHP verification code principle Verification codes are implemented more and more in forms, but I always find it inconvenient to write verification codes in js, so I learned how to implement them in php...
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

Undress AI Tool

Undress AI Tool

Undress images for free

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

ArtGPT

ArtGPT

AI image generator for creative art from text prompts.

Stock Market GPT

Stock Market GPT

AI powered investment research for smarter decisions

Popular tool

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)

How to install Redis cluster on Linux_Linux distributed cache deployment solution [Advanced] How to install Redis cluster on Linux_Linux distributed cache deployment solution [Advanced] Feb 08, 2026 pm 07:39 PM

The Redis6 cluster must be created with redis-cli--cluster. It requires a minimum of 3 masters and 3 slaves, a total of 6 nodes. The client port and the corresponding cluster bus port (10000) must be opened. Correct configuration but blocked ports is a common cause of failure.

How to dynamically set arbitrary depth value of nested array in PHP How to dynamically set arbitrary depth value of nested array in PHP Mar 04, 2026 am 11:15 AM

This article introduces a safe and efficient method to use key path arrays (such as ['key1', 'key2', 'key3']) to assign values ​​to the last nodes of multi-dimensional associative arrays, solve the problem of reference failure caused by value transfer, and take into account key existence verification.

How to import SQL files in mysql_mysql SQL file import method How to import SQL files in mysql_mysql SQL file import method Feb 09, 2026 pm 05:24 PM

The most common and reliable way to import SQL files into MySQL is the command line tool mysql, which supports cross-platform, high efficiency and stability, and is suitable for files of all sizes. It can also be executed in the client through the source command, or using graphical tools such as phpMyAdmin and MySQL Workbench.

Number statistics in pyramid loop in PHP: correct counting method of total, odd and even numbers Number statistics in pyramid loop in PHP: correct counting method of total, odd and even numbers Mar 04, 2026 pm 01:30 PM

This article explains in detail how to accurately count the total number, odd number and even number of all generated numbers in the PHP pyramid printing loop, correct common logic errors (such as misuse of variables, confusion of counting objects), and provide runnable examples and key precautions.

PHP batch processing of color mode and resolution of pictures in PPT PHP batch processing of color mode and resolution of pictures in PPT Mar 02, 2026 am 10:18 AM

To read PPTX images with PHP, you need to decompress the ZIP package first, because the images are stored in the ppt/media/ directory; directly calling the image function will report an error; you must use ZipArchive to decompress, Imagick to process CMYK to RGB conversion and scaling, and update the rels and [Content_Types].xml files simultaneously.

Where can I see the PHP operator priority table_php official operator priority [Reference] Where can I see the PHP operator priority table_php official operator priority [Reference] Mar 02, 2026 am 11:45 AM

The official description of PHP operator precedence is located at https://www.php.net/manual/en/language.operators.precedence.php. You need to directly search for "operatorprecedence" or manually enter the URL to access; == and === have the same priority and belong to the same level; error-prone combinations include &&/|| and and/or, ?: and ??, new and []; complex expressions must be bracketed.

How to deal with character sets after mysql upgrade_mysql encoding migration instructions How to deal with character sets after mysql upgrade_mysql encoding migration instructions Feb 09, 2026 pm 07:17 PM

After the MySQL 8.0 upgrade, the default character set becomes utf8mb4, but the old table character set remains unchanged; latin1/utf8 tables need to be manually migrated, and the source character set must be specified when exporting. ALTERTABLECONVERT will re-encode the data, and the connection layer must explicitly declare utf8mb4.

How to install ThinkPHP with composer_Steps to deploy TP framework using composer How to install ThinkPHP with composer_Steps to deploy TP framework using composer Feb 12, 2026 am 06:27 AM

The ThinkPHP stable version should be clearly specified, such as using composercreate-projecttopthink/thinktp6^6.3 to install the TP6.3LTS version to avoid pulling non-production-ready beta versions because dev-master has switched to the TP8 preview version.

Related articles