An article explaining in detail how to set a random verification code in PHP

PHPz
Release: 2023-04-11 13:56:01
Original
1457 people have browsed it

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

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

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); // 黑色
Copy after login

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

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');
Copy after login

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

imagepng($image);
Copy after login

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

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:

Copy after login

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 {
    // 验证码错误,给出错误提示
}
Copy after login

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!

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
Popular Tutorials
More>
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!