search
HomeBackend DevelopmentPHP TutorialAn article explaining in detail how to set a random verification code in PHP

Random verification codes are widely used in the registration, login, and password retrieval functions of many websites. It can effectively prevent malicious attacks and robot attacks, increasing the security of the website. As a popular server scripting language, PHP can easily implement random verification codes.

Below we will introduce in detail how to use PHP to generate random verification codes.

  1. Generate a random number

First, we need to generate a random number. This can be achieved using the rand function in PHP. The rand function accepts two parameters: starting value and ending value. For example, if we want to generate a 6-digit random number, we can use the following code:

$code = rand(100000, 999999);

This will generate an integer between 100000 and 999999.

  1. Create verification code image

Next, we need to draw the verification code on the image. We can create images using GD library in PHP.

First, we need to create a blank image:

$image = imagecreate(100, 50);

This will create a 100x50 blank image.

Next, we need to specify the background color and font color of the image:

$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色
$text_color = imagecolorallocate($image, 0, 0, 0); // 黑色

This will specify the background color and font color of the image respectively.

Next, we can use the imagestring function to draw the verification code on the image:

imagestring($image, 5, 20, 15, $code, $text_color);

This will draw the verification code string at the (20,15) position of the image.

  1. Output the verification code image

We have generated the verification code image and now need to output it to the browser.

First, we need to tell the browser that what we will output is an image:

header('Content-Type: image/png');

Next, we can use the imagepng function to output the image:

imagepng($image);

Complete The code is as follows:

$code = rand(100000, 999999);

$image = imagecreate(100, 50);
$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色
$text_color = imagecolorallocate($image, 0, 0, 0); // 黑色
imagestring($image, 5, 20, 15, $code, $text_color);

header('Content-Type: image/png');
imagepng($image);

The above code will generate a 6-digit random number verification code image and output it to the browser.

  1. Using the verification code in the web page

Finally, we need to embed the generated verification code image into the web page.

You can display the verification code image through the following code:

<img  src="/static/imghwm/default1.png" data-src="captcha.php" class="lazy" alt="An article explaining in detail how to set a random verification code in PHP" >

This will display a verification code image in the web page, where captcha.php is the name of the PHP file that generates the verification code image.

When the user fills in the verification code and submits the form, we need to verify whether the verification code entered by the user is correct. This can be verified by the following code:

session_start();

if (isset($_POST['code']) && $_POST['code'] == $_SESSION['code']) {
    // 验证码正确,继续执行
} else {
    // 验证码错误,给出错误提示
}

This will check whether the submitted form contains a parameter named code and compare it with the verification code stored in the session. If the verification code entered is consistent with the verification code in the session, the user is allowed to continue performing related operations; otherwise, an error message is given.

Summary

Using PHP to generate random verification codes is not complicated. You only need to use simple random number generation and GD library to draw pictures. Through the use of verification codes, the security and reliability of the website can be effectively improved.

The above is the detailed content of An article explaining in detail how to set a random verification code in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement
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
PHP Dependency Injection Container: A Quick StartPHP Dependency Injection Container: A Quick StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Dependency Injection vs. Service Locator in PHPDependency Injection vs. Service Locator in PHPMay 13, 2025 am 12:10 AM

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHP performance optimization strategies.PHP performance optimization strategies.May 13, 2025 am 12:06 AM

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHP Email Validation: Ensuring Emails Are Sent CorrectlyPHP Email Validation: Ensuring Emails Are Sent CorrectlyMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

How to make PHP applications fasterHow to make PHP applications fasterMay 12, 2025 am 12:12 AM

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

PHP Performance Optimization Checklist: Improve Speed NowPHP Performance Optimization Checklist: Improve Speed NowMay 12, 2025 am 12:07 AM

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

PHP Dependency Injection: Improve Code TestabilityPHP Dependency Injection: Improve Code TestabilityMay 12, 2025 am 12:03 AM

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

PHP Performance Optimization: Database Query OptimizationPHP Performance Optimization: Database Query OptimizationMay 12, 2025 am 12:02 AM

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

See all articles

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 Article

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool