-
-
Save wjch/11314672 to your computer and use it in GitHub Desktop.
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
wjch
commented
Apr 26, 2014
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Weibo</title>
<meta name="viewport" content="width=device-width">
{{ HTML::style('laravel/css/style.css') }}
</head>
<body>
<img src="/home/authcode" />
</body>
</html>
$session_code = SESSION::get("authcode");
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment