这篇文章给大家介绍的内容是关于php实现验证码的步骤以及服务端校验的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
验证码是什么:验证码是一种区分用户是计算机还是人的公共程序
制作验证码需要四步
1:生成底图
2:生成验证内容
3:生成验证码内容
4:校验验证内容
先分步,第一步,生成底图:
目标:通过php生成一张100*30大小的图片
方法:imagecreatetruecolor($width,$height);
注意事项:依赖GD扩展
在输出图片前,必须提前输出那张图片的header 信息 --》》发送原生http头
该方法默认输出黑色背景
imagecreatetruecolor() 新建一个真彩色图像 用$image来表示,之后,会大量用到
既然是创建真彩图像,那就要有多样的颜色 ,下面imagecolorallocate(选画布,三色参数)
要用什么意思填充 imagefill(选画布,开始位置 ,颜色)
致此,生成了底图,下面开始加点作料
$image = imagecreatetruecolor(100,30)
$bgcolor = imagecolorallocate($image,255,255,255);
imagefill($image,0,0,$bgcolor)
第二步:生成验证内容
目标:随机生成数字(大小,开始位置,内容,颜色)
方法:通过循环,imagestring 函数 ,水平的生成一行字符串(根据imagestring里面参数位置,往进填)
注意事项:控制好字体大小,N/n
for($i=0;$c9e659fac7a5a6ecc6eac25339d3e184" 对于这个r 找了资料,没什么大用
d2825b58604bcb8390106474b7af88d1 本意是这样
他这里还用t 呢,所以r 呀 t 呀
考虑到大小写,这里使用strtolower() 将用户输入的大写字母,统统转化为小写字母
<?php if(isset($_REQUEST['code'])) { session_start(); if (strtolower($_REQUEST['code'])==$_SESSION['code']) { header('Content-type: text/html; charset=UTF8'); echo '<h1 color="#0000CC">输入正确</h1>'; } else{ header('Content-type: text/html; charset=UTF8'); echo '<h1 color="#CC0000"><b>输入错误</b></h1>'; } exit(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>确认验证</title> </head> <body> <form method="post" action="form.php"> <p>验证码图片:<img border="1" src="captcha-2.php?r=<?php echo rand();?>" width="100" height="30"> </p> <p>请输入图片的内容:<input type="text" name="code" value=""/></p> <p><input type="submit" value="提交" style="padding:6px 20px;"></p> </form> </body> </html>
相关文章推荐:
如何用PHP将txt文件内容转换成数组并按行数获取指定内容(示例)
以上是php实现验证码的步骤以及服务端校验的代码的详细内容。更多信息请关注PHP中文网其他相关文章!