Created
July 3, 2013 14:55
-
-
Save jackey/5918864 to your computer and use it in GitHub Desktop.
laravel 验证码
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
public function action_authcode() { | |
//随机生成一个4位数的数字验证码 | |
$num=""; | |
for($i=0;$i<4;$i++){ | |
$num .= rand(0,9); | |
} | |
//4位验证码也可以用rand(1000,9999)直接生成 | |
//将生成的验证码写入session,备验证页面使用 | |
SESSION::put("authcode", $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); | |
} |
Author
jackey
commented
Jul 3, 2013
他框架没自带验证码函数吗??
谢~
请问views里面是如何获得controller里面生成的验证码图片的?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment