Home > Article > Backend Development > PHP entry-level PHP verification code program_PHP tutorial
We will use PHP graphics processing functions to generate verification codes, such as imagecreate, imagepng, header and other functions. Let's take a look at a simple example.
Examples
The code is as follows | Copy code | ||||
$im = imagecreate(80,30);//Create image $color = imagecolorallocate($im,rand(150,200),rand(150,200),rand(150,200));//Set the picture background $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";//Generate a random string for($i=0;$i<5;$i++){ $code .= $str[rand(0,(strlen($str)-1))]; $_SESSION['code'] = $code; for($a=0;$a<5;$a++){ //Write string into image resource $x = $a*10 + 15; $y = rand(5,10); // www.bKjia.c0m Imagechar($im,5,$x,$y,$code{$a},imagecolorallocate($im,0,0,0)); } header("Content-type:image/png");//Output image resources imagepng($im); ?>
|
代码如下 | 复制代码 |
if(!isset($_SESSION)){ //判断session是否开启 $img=imagecreate($width,$height); } |
The code is as follows | Copy code |
if(!isset($_SESSION)){ //Determine whether the session is open session_start(); //Open session } $width=70; //Width of canvas $height=25; //Height of canvas $length=4;//Verification code length $code=getcode($length); //Get a random string $_SESSION['verfyCode'] = $code;<🎜> <🎜>$img=imagecreate($width,$height); $bgcolor=imagecolorallocate($img,240,240,240); $rectangelcolor=imagecolorallocate($img,150,150,150); imagerectangle($img,1,1,$width-1,$height-1,$rectangelcolor);//Draw a border for($i=0;$i<$length;$i++){//Loop writing $codecolor=imagecolorallocate($img,mt_rand(50,200),mt_rand(50,128),mt_rand(50,200)); $angle=rand(-20,20); $charx=$i*15+8; $chary=($height+14)/2+rand(-1,1); imagettftext($img,15,$angle,$charx,$chary,$codecolor,'C:WINDOWSFontsSIMKAI.TTF', $code[$i]); } for($i=0;$i<20;$i++){//Loop to draw lines $linecolor=imagecolorallocate($img,mt_rand(0,250),mt_rand(0,250),mt_rand(0,250)); $linex=mt_rand(1,$width-1); $liney=mt_rand(1,$height-1); imageline($img,$linex,$liney,$linex+mt_rand(0,4)-2,$liney+mt_rand(0,4)-2,$linecolor); } for($i=0;$i<100;$i++){//Loop to draw points $pointcolor=imagecolorallocate($img,mt_rand(0,250),mt_rand(0,250),mt_rand(0,250)); imagesetpixel($img,mt_rand(1,$width-1),mt_rand(1,$height-1),$pointcolor); } function getcode($length){//Generate php random numbers $pattern = '1234567890ABCDEFGHIJKLOMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ';//Character pool for($i=0;$i<$length;$i++) { $key .= $pattern{mt_rand(0,35)}; } return $key;<🎜> <🎜>} ob_clean(); header('Content-type:image/png'); imagepng($img); ?> |
The rendering is as follows