Last active
January 6, 2016 08:08
-
-
Save flowerains/3a90bde087e42ebb01e9 to your computer and use it in GitHub Desktop.
captcha 一个很简单的验证码插件
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//随机生成一个4位数的数字验证码 | |
session_start(); | |
$num=""; | |
$num=mt_rand(1000,9999); | |
//4位验证码也可以用rand(1000,9999)直接生成 | |
//将生成的验证码写入session,备验证页面使用 | |
$_SESSION["Checknum"] = $num; | |
//创建图片,定义颜色值 | |
Header("Content-type: image/PNG"); | |
srand((double)microtime()*1000000); | |
$im = imagecreate(60,20); | |
$black = ImageColorAllocate($im, 0,0,0); | |
$gray = ImageColorAllocate($im, 200,200,200); | |
imagefill($im,0,0,$gray); | |
//随机绘制两条虚线,起干扰作用 | |
$style = array($black, $black, $black, $black, $black, $gray, $gray, $gray, $gray, $gray); | |
imagesetstyle($im, $style); | |
$y1=rand(0,20); | |
$y2=rand(0,20); | |
$y3=rand(0,20); | |
$y4=rand(0,20); | |
imageline($im, 0, $y1, 60, $y3, IMG_COLOR_STYLED); | |
imageline($im, 0, $y2, 60, $y4, IMG_COLOR_STYLED); | |
//在画布上随机生成大量黑点,起干扰作用; | |
for($i=0;$i<80;$i++) | |
{ | |
imagesetpixel($im, rand(0,60), rand(0,20), $black); | |
} | |
//将四个数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 | |
$strx=rand(3,8); | |
for($i=0;$i<4;$i++){ | |
$strpos=rand(1,6); | |
imagestring($im,5,$strx,$strpos, substr($num,$i,1), $black); | |
$strx+=rand(8,12); | |
} | |
ImagePNG($im); | |
ImageDestroy($im); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment