随机生成验证码

<?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(); }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值