设为首页 收藏本站
查看: 322|回复: 0

[经验分享] PHP数字验证码的例子

[复制链接]

尚未签到

发表于 2017-3-27 12:18:45 | 显示全部楼层 |阅读模式
在php中实现验证码,关键点在于掌握php gd库与session的用法。
  纵观网上php 生成验证码的例子,无不是php gd库与session相结合,并利用php 生成随机数的方法来完成。
  PHP验证码,可以分为很多种,包括 php 图片验证码,php 随机验证码,以及php 中文验证码等,根据不同的应用场合来使用不同的验证码。
  这里分享一个php数字验证码,供大家参考。

1,数字验证码
[php] view plaincopy 



  • <?  
  • /* 
  • *Filename:authpage.php 
  • */  
  • session_start();  
  • //srand((double)microtime()*1000000);  
  • $authnum=$_SESSION['authnum'];  
  • //验证用户输入是否和验证码一致  
  • if(isset($_POST['authinput']))  
  • {  
  • if(strcmp($_POST['authinput'],$_SESSION['authnum'])==0)  
  • echo"验证成功!";  
  • else  
  • echo"验证失败!";  
  • }  
  •   
  •   
  • //生成新的四位整数验证码  
  •   
  •   
  • //while(($authnum=rand()%10000)<1000);  
  • ?>  
  • <formaction=test4.phpmethod=post>  
  • <table>  
  • 请输入验证码:<inputtype=textname=authinputstyle="width:80px"><br>  
  • <inputtype=submitname="验证"value="提交验证码">  
  • <inputtype=hiddenname=authnumvalue=<?echo$authnum;?>>  
  • <imgsrc=authimg.php?authnum=<?echo$authnum;?>>  
  • </table>  
  • </form>  


2,authimg.php[php] view plaincopy 



  • <?php  
  • //生成验证码图片  
  • Header("Content-type:image/PNG");  
  • srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用  
  •   
  • session_start();//将随机数存入session中  
  • $_SESSION['authnum']="";  
  • $im=imagecreate(62,20);//制定图片背景大小  
  •   
  • $black=ImageColorAllocate($im,0,0,0);//设定三种颜色  
  • $white=ImageColorAllocate($im,255,255,255);  
  • $gray=ImageColorAllocate($im,200,200,200);  
  •   
  • imagefill($im,0,0,$gray);//采用区域填充法,设定(0,0)  
  •   
  • while(($authnum=rand()%100000)<10000);  
  • //将四位整数验证码绘入图片  
  • // www.jbxue.com  
  • $_SESSION['authnum']=$authnum;  
  • imagestring($im,5,10,3,$authnum,$black);  
  • //用col颜色将字符串s画到image所代表的图像的x,y座标处(图像的左上角为0,0)。  
  • //如果font是1,2,3,4或5,则使用内置字体  
  •   
  • for($i=0;$i<200;$i++)//加入干扰象素  
  • {  
  • $randcolor=ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));  
  • imagesetpixel($im,rand()%70,rand()%30,$randcolor);  
  • }  
  • ImagePNG($im);  
  • ImageDestroy($im);  
  • ?>  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356139-1-1.html 上篇帖子: php 找不到加载点 下篇帖子: PHP常见数据类型的汇总分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表