辛星和您用更简单的方式去实现PHP中的验证码

php中文网
发布: 2016-06-23 13:53:05
原创
1100人浏览过

       说实话,提到验证码我想大家都不会陌生,确实,验证码还是挺常见的,现在搜索一下php的验证码类简直是海量的数据,那我们今天就来实现一个自己的验证码把,不过它比较简单,这也是我说的用更简单的方式去实现一个验证码。

       总的来说分成两步,第一步就是先实现一个验证码,第二步就是通过这个验证码来进行验证,我们先看一下如何去实现这个验证码,当然这里需要用到gd库的知识,请看下面的代码示例:

<?php//首先要开启sessionsession_start();//说明这是一张图片header("Content-type:image/png");//用来动态生成的数字和字母组合$str = "3,4,5,6,7,8,9,a,b,c,d,e,f,g";//转化为数组$list = explode(",",$str);//得到该数组的下标的最大值$max = count($list) - 1;//用于表示该验证码$verify = "";//生成验证码字符串for($i = 0; $i <5;$i ++){	$rand = mt_rand(0,$max);	$verify .= $list[$rand];}//写入session$_SESSION['code'] = $verify;//生成一个58x28的图片$im = imagecreate(58,28);//产生黑色$black = imagecolorallocate($im,0,0,0);//产生白色$white = imagecolorallocate($im,255,255,255);//先用白色背景把图片刷成白色imagefill($im,0,0,$white);//然后把字符串写到图片上去imagestring($im,5,10,8,$verify,$black);//生成png图片,并且显示到屏幕上imagepng($im);//销毁该图片imagedestroy($im);
登录后复制

      这里顺便说一下画图的基本步骤把:首先创建一个图像,我们用imagecreate函数,然后用imagecolorallocate来调色,然后用各种imagexxx来绘制图像,最后用imagexxx来生成各种样式的图片,最后imagedestroy来销毁图片,大致都是这么一个流程。其中我感觉比较值得一提的是imagestring的参数,第一个表示绘画的图片这个没的说,第二额参数表示的是字体,如果为0,1,2,3,4,5则表示内置字体,第三个参数表示绘画的左上角的x坐标,第四个表示绘画的左上角的y坐标,第五个参数是颜色,我们这里采用了黑色来绘图。

立即学习PHP免费学习笔记(深入)”;

来看一下我们生成的图片是什么样子的把:


北极象沉浸式AI翻译
北极象沉浸式AI翻译

免费的北极象沉浸式AI翻译 - 带您走进沉浸式AI的双语对照体验

北极象沉浸式AI翻译 0
查看详情 北极象沉浸式AI翻译

那么我们怎么使用该验证码呢?既然文件都写好了,那么我们再写一个文件来导入该验证码就可以了,然后从session里面来得到它的值,看如下代码:

<html>	<form action = "" method = "post">	<input type="text" name = "code" />	@@##@@	<button id = "change">更换</button><br />	<input type = "submit" value = "确定" />	</form> 	<script type="text/javascript"> 		document.getElementById("change").addEventListener("click",change); 		function change(){ 			//之所以加这个随机数是为了兼容IE浏览器 			document.getElementById("code").src ="ver.php?"+Math.random(); 		} 	</script></html><?phpsession_start();//一定要等post数据提交了在判断,//否则一开始就会显示信息if(isset($_POST['code'])){	if($_POST['code'] == $_SESSION['code']){		echo "验证码正确";	}else{		echo "验证码错误";	}}
登录后复制

   这里使用了部分Javascript,如果读者不熟悉Javascript,那么大可以跳过去,下面是运行效果截图:


看,当然,真正的工程要复杂的多,这里给出的是一个示例程序,希望我们一同进步。。



辛星和您用更简单的方式去实现PHP中的验证码
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号