Home  >  Article  >  Backend Development  >  How to generate verification code image using PHP

How to generate verification code image using PHP

WBOY
WBOYOriginal
2023-08-19 14:12:341927browse

How to generate verification code image using PHP

How to use PHP to generate a verification code image

Verification code (CAPTCHA) is a common technology used to verify user identity or restrict access to automated programs. By generating random images and requiring users to identify the correct characters or images, CAPTCHAs can effectively prevent bot attacks and spam registrations. In this article, we will introduce how to use PHP to generate a verification code image and display it on the page.

  1. First, we need to create a PHP file to generate a verification code image. You can name it captcha.php and make sure the file extension is .php.
  2. In the captcha.php file, we need to define some variables to set the width, height and number of characters of the verification code image. We can also define an array to store all possible characters. The code example is as follows:
<?php
$width = 120; // 验证码图片的宽度
$height = 40; // 验证码图片的高度
$characters = 4; // 验证码字符个数

$possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1. Next, we need to create a blank image and set some basic image properties, such as color and font. The code example is as follows:
$image = imagecreatetruecolor($width, $height);

$backgroundColor = imagecolorallocate($image, 255, 255, 255); // 背景颜色为白色
$textColor = imagecolorallocate($image, 0, 0, 0); // 文字颜色为黑色

imagefill($image, 0, 0, $backgroundColor);

$font = 'path/to/your/font.ttf'; // 字体文件路径,可以根据自己的需求修改
  1. Now, we need to randomly generate characters and draw them on the picture. We can use PHP's random function to select characters from the character array and use the imagettftext function to write the characters to the image. The code example is as follows:
$captcha = '';

for ($i = 0; $i < $characters; $i++) {
    $randomChar = $possibleChars[rand(0, strlen($possibleChars) - 1)];
    $captcha .= $randomChar;

    $x = ($width / $characters) * $i + 10; // 10为字体边距
    $y = $height / 2 + 15; // 15为字体居中偏移量

    imagettftext($image, 20, 0, $x, $y, $textColor, $font, $randomChar);
}
  1. Finally, we need to store the generated verification code in the session for subsequent verification. The code example is as follows:
session_start();
$_SESSION['captcha'] = $captcha;
  1. In the last step, we need to output the generated verification code image and set the corresponding header information. The code example is as follows:
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);

Conclusion

Through the above steps, we successfully generated a simple verification code image and displayed it on the web page. Each time the user refreshes the page, he or she will get a new verification code to ensure the uniqueness and security of the verification code. In practical applications, we can compare the verification code entered by the user with the verification code stored in the session to verify the user's identity.

This is a simple example of PHP generating a verification code image. You can further improve and expand this function according to your own needs. I hope this article will help you understand and apply verification code technology!

The above is the detailed content of How to generate verification code image using 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