• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

二十四桥明月夜24

php 搞代码 3年前 (2022-01-23) 28次浏览 已收录 0个评论

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。

  好吧,其实是没有事情干,但是又不想浪费时间,所以学习了下php实现验证码。正所谓,技多不压身。而且,也可以封装成一个函数,以后使用的时候也是很方便的,当然现在未封装。

  现在来说说简单的纯数字验证码吧。

    如果是初学者,建议按照我代码的注释 //数字 一步步来。最简单的方法,还是把整个代码复制走了。

    新建一个captcha.php:

<?<span>php    </span><span>//</span><span>10>设置session,必须处于脚本最顶部</span><span>session_start</span><span>();    </span><span>$image</span> = imagecreatetruecolor(100, 30);        <span>//</span><span>1>设置验证码图片大小的函数    //5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);</span><span>$bgcolor</span> = imagecolorallocate(<span>$image</span>,255,255,255); <span>//</span><span>#ffffff    //6>区域填充 int imagefill(int im, int x, int y, int col)  (x,y) 所在的区域着色,col 表示欲涂上的颜色</span>    imagefill(<span>$image</span>, 0, 0, <span>$bgcolor</span><span>);    </span><span>//</span><span>10>设置变量</span><span>$captcha_code</span> = ""<span>;    </span><span>//</span><span>7>生成随机数字</span><span>for</span>(<span>$i</span>=0;<span>$i</span><4;<span>$i</span>++<span>){        </span><span>//</span><span>设置字体大小</span><span>$fontsize</span> = 6<span>;                </span><span>//</span><span>设置字体颜色,随机颜色</span><span>$fontcolor</span> = imagecolorallocate(<span>$image</span>, <span>rand</span>(0,120),<span>rand</span>(0,120), <span>rand</span>(0,120));            <span>//</span><span>0-120深颜色        //设置数字</span><span>$fontcontent</span> = <span>rand</span>(0,9<span>);        </span><span>//</span><span>10>.=连续定义变量</span><span>$captcha_code</span> .= <span>$fontcontent</span><span>;            </span><span>//</span><span>设置坐标</span><span>$x</span> = (<span>$i</span>*100/4)+<span>rand</span>(5,10<span>);        </span><span>$y</span> = <span>rand</span>(5,10<span>);        imagestring(</span><span>$image</span>,<span>$fontsize</span>,<span>$x</span>,<span>$y</span>,<span>$fontcontent</span>,<span>$fontcolor</span><span>);    }    </span><span>//</span><span>10>存到session</span><span>$_SESSION</span>['authcode'] = <span>$captcha_code</span><span>;    </span><span>//</span><span>8>增加干扰元素,设置雪花点</span><span>for</span>(<span>$i</span>=0;<span>$i</span><200;<span>$i</span>++<span>){        </span><span>//</span><span>设置点的颜色,50-200颜色比数字浅,不干扰阅读</span><span>$pointcolor</span> = imagecolorallocate(<span>$image</span>,<span>rand</span>(50,200), <span>rand</span>(50,200), <span>rand</span>(50,200<span>));                </span><span>//</span><span>imagesetpixel — 画一个单一像素</span>        imagesetpixel(<span>$image</span>, <span>rand</span>(1,99), <span>rand</span>(1,29), <span>$pointcolor</span><span>);    }    </span><span>//</span><span>9>增加干扰元素,设置横线</span><span>for</span>(<span>$i</span>=0;<span>$i</span><4;<span>$i</span>++<span>){        </span><span>//</span><span>设置线的颜色</span><span>$linecolor</span> = imagecolorallocate(<span>$image</span>,<span>rand</span>(80,220), <span>rand</span>(80,220),<span>rand</span>(80,220<span>));        </span><span>//</span><span>设置线,两点一线</span>        imageline(<span>$image</span>,<span>rand</span>(1,99), <span>rand</span>(1,29),<span>rand</span>(1,99), <span>rand</span>(1,29),<span>$linecolor</span><span>);    }    </span><span>//</span><span>2>设置头部,image/png</span><span>header</span>('Content-Type: image/png'<span>);    </span><span>//</span><span>3>imagepng() 建立png图形函数</span>    imagepng(<span>$image</span><span>);    </span><span>//</span><span>4>imagedestroy() 结束图形函数  销毁$image</span><b style="color:transparent">来&源gao@dai!ma.com搞$代^码%网</b><img>搞gaodaima代码</img>    imagedestroy(<span>$image</span>);


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:二十四桥明月夜24
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址