How to implement verification code applet in php
This article mainly introduces the specific implementation method of the verification code applet based on PHP, and makes detailed comments, which is conducive to understanding and learning. Friends who need it can take a look together
Verification code function ( Personal understanding):
Reduce the pressure on the server (such as the verification code function of 12306);
Prevent violent registration
Personal idea: Generate n-digit random numbers from a-z, A-Z, 1-9 to form a new verification code.
Several small functions for generating verification codes
range() //Specify a range to output an array
a) For example: range(1,9)
array_merge()//Merge arrays
a) array_merge(array 1, array 2….)
array_rand (array, quantity)
a) Randomly take out several subscripts from the array and return an array
shuffle(array)//Will shuffle the array again Element
mt_rand (specify a range) //Generate a better random number
such as: mt_rand(1,5) // Generate an arbitrary number between 1-5
Generate verification code
<?php $arr1=range('a', 'z');//指定范围输出一个数组 $arr2=range('A', 'Z'); $arr3=range(1,9); $arr=array_merge($arr1,$arr2,$arr3); //合并数组 $index = array_rand($arr,5); //在$arr中随机取5个数,返回值是$arr的下标 Shuffle($index); $code = '';//定义一个空的字符串来存储生成的验证码用'点'来进行拼接 foreach ($index as $key => $value) {//遍历数组 $code.= $arr[$value];//根据下标取数组中的值 } var_dump($code); ?>
Screenshots of running results
Perfection: Add the verification code to the image so that the verification code is realistic
Before improving, let’s introduce the image creation The rough steps
Create an image
Method 1: Create a true color image (empty canvas)
imagecreatetruecolor(width, height) //Create a true color image
Description:
width: width of the canvas (pixels)
height: the height of the canvas (pixels)
The return value is the image resource
is a true color image: fill color
imagefill(image, x, y, color) //Fill the image resource with color
- image //Image resource
- x, y, filled coordinate point (note: filled with the color closest to this point)
- color; //What color to use To fill
for a true color image: Assign color
##imagecolorallocate(image, red, green, blue)Description:
- image //Image resource
- red: //Red color(0 -255) or 0x(00-ff) //That is, expressed in hexadecimal (0xff is 255)
- green//Green color (0-255)
- blue //Blue color (0-255)
- Code demonstration of imagefill and imagecolorallocate
When the canvas is not filled with color Effect
The effect and code when filling the canvas with color
<?php //创建图像资源(空白画布)默认显示为黑色 $image = imagecreatetruecolor(300, 400); //1.image //图像资源 //2.red: //红颜色(0-255) 或 0x(00-ff) //即十六进制来表示 (0xff就是255) //3.green//绿颜色(0-255) //4.blue //蓝颜色(0-255) $color = imagecolorallocate($image, 255, 0, 0); //1.image //图像资源 //2.x,y,填充的坐标点(注意:填充的与此点最接近的颜色) //3.color; //用什么颜色来填充 imagefill($image, 0, 0, $color); //输出图像 header('content-type:image/jpeg'); imagejpeg($image); //销毁图像资源 imagedestroy($image); ?>
## Result screenshot;
#Output image (take jpeg as an example)
Output image to browser
a ) header('content-type:image/jpeg'); //Set to view the image through browsing
b) imagejpeg (image resource)Output the image by file
a) imagejpeg(image resource,'image path',image quality) //Quality value 0-100
b) Note:Note: Only jpeg format has the quality parameter.
Destroy the image
imagedestroy($image); / /Destroy images and release memory resources.
Verify The entire code of the code:
<?php //实例:让文本居于图像的正中 //创建图像资源(空白的画布) $image = imagecreatetruecolor(100, 50); $color = imagecolorallocate($image, mt_rand(20,200), mt_rand(20,200), mt_rand(20,200)); //为图像资源填充颜色 imagefill($image, 0, 0, $color); //绘制图像 $font = 5; //验证码的开始 $arr1 = range('a','z'); $arr3 = range('A','Z'); $arr2 = range(1,9); //array_merge — 合并一个或多个数组 $arr = array_merge($arr1,$arr2,$arr3); $index = array_rand($arr,5); //随机从原数组中找出5个下标 $string = ''; foreach ($index as $value) { //$value 两个功能,即是$index中的值,又是$arr中的下标 $string .= $arr[$value]; //将得到字符进行连接 } //验证码的结束 //mt_rand — 生成更好的随机数 //echo mt_rand(1,5);die; //加入点干扰 $pointcolor = imagecolorallocate($image, mt_rand(20,200), mt_rand(20,200), mt_rand(20,200)); //循环创建1000个干扰点 for ($i=0; $i <1000 ; $i++) { imagesetpixel($image, mt_rand(0,imagesx($image)), mt_rand(0,imagesy($image)), $pointcolor); } //加入线的干扰 $lintecolor = imagecolorallocate($image, mt_rand(20,200), mt_rand(20,200), mt_rand(20,200)); // 循环创建50个线干扰 for ($i=0; $i <50 ; $i++) { imageline($image, mt_rand(0,imagesx($image)), mt_rand(0,imagesy($image)), mt_rand(0,imagesx($image)), mt_rand(0,imagesy($image)) ,$lintecolor); } //一个字符的宽度 imagefontwidth($font) //字符串的个数: strlen(字符串) //一个字符的宽度*字符串的个数 //所有字符串宽度和= 一个字符的宽度*字符串的个数 //$x = (画布的宽度-所有字符串宽度和)/2 $x = (imagesx($image)-imagefontwidth($font)*strlen($string))/2; //$y = (画布的高度-字符的高度)/2; //字符的高度: imagefontheight($font) $y = (imagesy($image)-imagefontheight($font))/2; $stringcolor = imagecolorallocate($image, mt_rand(20,200), mt_rand(20,200), mt_rand(20,200)); imagestring($image, $font, $x, $y, $string, $stringcolor); //输出图像 header('content-type:image/jpeg'); //设置将图像通过浏览来查看 imagejpeg($image,'',100); //将图像资源输出 //销毁图像资源 imagedestroy($image); //销毁图像
Understand some functions in the code
Add interference points
imagesetpixel(image, x, y, color)
Description: x, y is a point Coordinates
说明: x1,y1是线的一个端点坐标; x2,y2是线的另一个端口的坐标; 由两点画一条线 让验证码居于图像的正中 最后运行结果 再次完善(和html代码结合起来) Html代码 理解; 最后结果截图 以上就是本文的全部内容,希望对大家的学习有所帮助。 相关推荐: The above is the detailed content of How to implement verification code applet in php. For more information, please follow other related articles on the PHP Chinese website!imageline(image, x1, y1, x2, y2, color)
imagefontheight(font)获取字体的高度:
imagefontwidth(font)获取字体的宽度:
strlen(字符串)//获取字符串的长度
imagesx(image) //获取画布的宽度
imagesy(image) //获取画布的高度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form name='frm' method='post' action=''>
<table width="30%" border="2" align="center" rules="all" cellpadding="10">
<tr>
<th colspan="2">请输入信息</th>
</tr>
<tr>
<th>姓名:</th>
<th><input type="text" name="username"></input></th>
</tr>
<tr>
<th>密码:</th>
<th><input type="password" name="userpwd"></input></th>
</tr>
<tr> 555556
<th>验证码</th>
<th><input type = 'text' name = 'checkcode'></input><img src="21.php" style="cursor:pointer" onclick="this.src='21.php'?+Math.random()"></th>
</tr>
<tr>
<th colspan="2"><input type="submit" name="submit" value="提交"></input></th>
</tr>
</table>
</form>
</body>
</html>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.
