您的位置:首页 > 其它

随机生成验证码

2017-07-05 15:15 155 查看
<?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();}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: