<?php
//随机生成一个4位数的数字验证码
$num=rand(1000,9999);//"";
// for($i=0;$i<4;$i++){
// $num .= rand(0,9);
// }
//4位验证码也可以用rand(1000,9999)直接生成
//将生成的验证码写入session,备验证页面使用
Session_start();
$_SESSION["Checknum"] = $num;
//创建图片,定义颜色值
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);
$im = imagecreate(66,30);
$black = ImageColorAllocate($im, 0,0,0);
$gray = ImageColorAllocate($im, 237,237,237); //200,200,200 改成和背景一个灰色 2017-2-17
imagefill($im,0,0,$gray);
//随机绘制两条虚线,起干扰作用 $style = array($black, $black, $black, $black, $black, $gray, $gray, $gray, $gray, $gray); imagesetstyle($im, $style); $y1=rand(0,28); $y2=rand(0,28); $y3=rand(0,28); $y4=rand(0,28); imageline($im, 0, $y1, 66, $y3, IMG_COLOR_STYLED); imageline($im, 0, $y2, 66, $y4, IMG_COLOR_STYLED); // 少画一条线 //在画布上随机生成大量黑点,起干扰作用; for($i=0;$i<60;$i++) { imagesetpixel($im, rand(0,66), rand(2,28), $black); } //将四个数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 $strx=6;//rand(5,12); $text_color = imagecolorallocate($im, 0, 0, 185);//蓝色 // imagecolorallocate($im, 233, 14, 91); 红色 255,0,0 大红 $font='C:\Windows\Fonts\arial.ttf'; for($i=0;$i<4;$i++){ $strpos=24;//rand(2,7); //imagestring($im,5,$strx,$strpos, substr($num,$i,1), $text_color); ImageTTFText($im, 18, 10, $strx, $strpos, $text_color, $font, substr($num,$i,1)); //imagettftext($im, 20, 0, 10, 20, $text_color,$font,"a"); $strx+=14;//rand(8,14); } ImagePNG($im); ImageDestroy($im);
?>
登录页输出验证码
function imgclick()
{
reflash();
}
function reflash()
{
document.getElementById("xxx").src ="xxx.php?tm="+Math.random();
}
随机生成验证码
最新推荐文章于 2021-03-16 22:34:45 发布