随机生成验证码
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();}
//随机生成一个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();}
相关文章推荐
- 验证码无缓存随机生成,利用session随时验证。
- 简单的随机生成4个数字验证码的实现
- asp.net(C#) 生成随机验证码
- python生成随机验证码(中文验证码)示例
- Java web 开发: 随机生成验证码,支持大小写字母、数字;随机字体
- JAVA生成随机验证码图片
- Python随机生成一个6位的验证码代码分享
- 简单随机验证码的生成
- 用C#生成随机中文汉字验证码的基本原理
- 生成随机验证码
- 【Java】使用Servlet生成随机验证码图片
- 用C#生成随机中文汉字验证码的基本原理
- 随机生成验证码
- 随机生成验证码的两种方法
- Java 随机生成六位数验证码过程(含大小写字母及数字)
- java生成随机数字验证码图片
- 随机验证码生成工具类
- Java 生成6位随机验证码
- winform随机验证码生成和验证
- struct2生成随机验证码