Home  >  Article  >  php教程  >  如何用PHP生成随机验证码(附代码)

如何用PHP生成随机验证码(附代码)

PHPz
PHPzOriginal
2016-06-06 20:32:511168browse

这篇文章主要讲了一个最简单的生成随机验证码图片的例子,有一定的参考价值,感兴趣的朋友可以看看。

代码如下:

<?php 
/** 默认首页 **/ 
class DefaultController extends AppController 
{ 
public function index() { 
$len = 5; 
$str = "ABCDEFGHIJKLNMPQRSTUVWXYZ123456789"; 
$im = imagecreatetruecolor ( 70, 20 ); 
$bgc = imagecolorallocate($im, 255, 255, 255); 
$bgtxt = imagecolorallocate($im, 220, 220, 220); 
//随机调色板 
$colors = array( 
imagecolorallocate($im, 255, 0, 0), 
imagecolorallocate($im, 0, 200, 0), 
imagecolorallocate($im, 0, 0, 255), 
imagecolorallocate($im, 0, 0, 0), 
imagecolorallocate($im, 255, 128, 0), 
imagecolorallocate($im, 255, 208, 0), 
imagecolorallocate($im, 98, 186, 245), 
); 
//填充背景色 
imagefill($im, 0, 0, $bgc); 
//随机获取数字 
$verify = ""; 
while (strlen($verify) < $len) { 
$i = strlen($verify); 
$random = $str[rand(0, strlen($str))]; 
$verify .= $random; 
//绘制背景文字 
imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $bgtxt); 
//绘制主文字信息 
imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $colors[rand(0, count($colors)-1)]); 
} 
//添加随机杂色 
for($i=0; $i<100; $i++) { 
$color = imagecolorallocate($im, rand(50,220), rand(50,220), rand(50,220)); 
imagesetpixel($im, rand(0,70), rand(0,20), $color); 
} 
//将验证码存入$_SESSION中 
sess("verify", $verify); 
//输出图片并释放缓存 
header(&#39;Content-type: image/png&#39;); 
imagepng($im); 
imagedestroy($im); 
} 
}; 
?>

【相关教程推荐】

1. php编程从入门到精通全套视频教程
2. php从入门到精通 
3. bootstrap教程

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