Home  >  Article  >  Backend Development  >  How to create a verification code image using PHP?

How to create a verification code image using PHP?

PHPz
PHPzOriginal
2023-09-13 11:40:531534browse

How to create a verification code image using PHP?

How to create a verification code image using PHP?

Verification code (CAPTCHA) is a commonly used method to verify whether the user is a human rather than a machine. On websites, we often see verification code images, which require users to enter random characters or numbers displayed on the image to complete operations such as login, registration, and commenting. This article will introduce how to use PHP to create a verification code image and provide specific code examples.

1. PHP GD library

To create a verification code image, we need to use PHP's GD library. The GD library is an extension library for image processing. It provides a series of functions for creating, processing and outputting images. First, we need to ensure that the GD library is enabled on the server. You can check the settings of the GD library by executing the phpinfo() function in the code.

If the GD library is enabled, you can start creating verification code images.

2. Create a verification code image

The main steps to create a verification code image include generating random strings, creating images, drawing interference lines and noise points, and outputting images.

  1. Generate a random string

First, we need to generate a random string as the content of the verification code. You can use the mt_rand() function to generate a random sequence of numbers or letters of a specified length, as shown below:

$length = 6; // 验证码长度
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$code = '';
for ($i = 0; $i < $length; $i++) {
    $code .= $chars[mt_rand(0, strlen($chars) - 1)];
}
  1. Create a picture

Next , we need to create a blank verification code image. You can use the imagecreate() function to create an image with a specified width and height, as shown below:

$width = 120; // 图片宽度
$height = 40; // 图片高度
$image = imagecreate($width, $height);
  1. Set the background color and text color

us You can use the imagecolorallocate() function to set the background and text color of the image, as follows:

$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色背景
$text_color = imagecolorallocate($image, 0, 0, 0); // 黑色文字
  1. Draw text

Use imagestring ()The function draws random strings onto the verification code image, as shown below:

$font_size = 18; // 文字大小
$x = ($width - strlen($code) * $font_size) / 2; // 文字起始位置横坐标
$y = ($height - $font_size) / 2; // 文字起始位置纵坐标
imagestring($image, $font_size, $x, $y, $code, $text_color);
  1. Draw interference lines and noise points

In order to improve the performance of the verification code Safety, you can draw some interference lines and noise on the picture. You can use the imagesetpixel() function to draw noise points and the imageline() function to draw interference lines.

for ($i = 0; $i < 100; $i++) {
    $x = mt_rand(0, $width - 1);
    $y = mt_rand(0, $height - 1);
    imagesetpixel($image, $x, $y, $text_color);
}

for ($i = 0; $i < 5; $i++) {
    $x1 = mt_rand(0, $width / 2);
    $y1 = mt_rand(0, $height - 1);
    $x2 = mt_rand($width / 2, $width - 1);
    $y2 = mt_rand(0, $height - 1);
    imageline($image, $x1, $y1, $x2, $y2, $text_color);
}
  1. Output image

Finally, we need to output the verification code image to the browser. You can use the header() function to set the Content-Type of the image, and use the imagejpeg() function to output the image to the browser.

header('Content-Type: image/jpeg');
imagejpeg($image);
  1. Destroy image resources

Remember to destroy image resources after completing image output to save server memory.

imagedestroy($image);

3. Complete code example

The following is a complete PHP code example for creating a verification code image:

Save the above code as captcha.php and pass Access the file with a browser and you will see the generated verification code image.

Summary

This article introduces how to use the GD library and PHP to create verification code images, and provides specific code examples. By understanding the principle of generating verification code images, we can carry out customized development according to actual business needs and improve the security and reliability of user verification. Hope this article helps you!

The above is the detailed content of How to create a 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