PHP简单验证码功能机制实例详解
网络编程 2021-07-04 23:24www.168986.cn编程入门
这篇文章主要介绍了PHP简单验证码功能机制,结合实例形式深入浅出的分析了php验证码的原理、实现步骤及相关操作技巧,需要的朋友可以参考下
本文实例讲述了PHP简单验证码功能机制。分享给大家供大家参考,具体如下
网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几位数字字母混乱的验证码,有的进行手机发送短信进行验证,有的使用邮箱发送邮件进行验证,这个验证码功能机制是如何实现的呢?狼蚁网站SEO优化就为大家详细解释验证码功能机制的实现思路以及简单的实现方法。
1、验证码功能机制实现思路
① 常规的验证码实现
a、产生一张png的图片
b、为图片设置背景色
c、设置字体颜色和样式
d、产生4位数的随机的验证码
e、把产生的每个字符调整旋转角度和位置画到png图片上
f、加入噪点和干扰线防止注册机器分析原图片来恶意注册
g、输出图片
h、释放图片所占内存
i、将验证码保存到session或是数据库
j、将和输入的验证码进行对比
② 短信(邮箱)验证码机制
a、产生4-6位数的随机的验证码
b、把产生的每个字符保存到session或是数据库
c、将验证码发送到用户的手机(邮箱)
d、用户在规定时间内进行输入
e、将验证码从session或是数据库中取出
f、将和输入的验证码进行对比验证
2、简单的实现验证码功能机制
① 新建captcha.php,写入以下代码
<?php / ======================================= Created by WeiBang Technology. User: Wei ZhiHua Date: 2016/10/12 0020 Time: 下午 4:14 Power: 实现验证码功能 ======================================= / //开启session session_start(); //创建一个大小为 10030 的验证码 $image = imagecreatetruecolor(100, 30); $bgcolor = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $bgcolor); $captch_code = ''; for ($i = 0; $i < 4; $i++) { $fontsize = 6; $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120)); $data = 'abcdefghijkmnpqrstuvwxy3456789'; $fontcontent = substr($data, rand(0, strlen($data) - 1), 1); $captch_code .= $fontcontent; $x = ($i 100 / 4) + rand(5, 10); $y = rand(5, 10); imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor); } //就生成的验证码保存到session $_SESSION['authcode'] = $captch_code; //在图片上增加点干扰元素 for ($i = 0; $i < 200; $i++) { $pointcolor = imagecolorallocate($image, rand(50, 200), rand(50, 200), rand(50, 200)); imagesetpixel($image, rand(1, 99), rand(1, 29), $pointcolor); } //在图片上增加线干扰元素 for ($i = 0; $i < 3; $i++) { $linecolor = imagecolorallocate($image, rand(80, 220), rand(80, 220), rand(80, 220)); imageline($image, rand(1, 99), rand(1, 29), rand(1, 99), rand(1, 29), $linecolor); } //设置头 header('content-type:image/png'); imagepng($image); imagedestroy($image); ?>
② 新建form.php,写入以下代码
<?php / ======================================= Created by WeiBang Technology. User: Wei ZhiHua Date: 2016/10/12 0021 Time: 下午 4:14 Power: 实现验证码功能 ======================================= / if (isset($_REQUEST['authcode'])) { session_start(); if (strtolower($_REQUEST['authcode']) == $_SESSION['authcode']) { echo "输入正确!"; } else { echo "输入错误!"; } exit(); } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <title>确认验证码</title> </head> <body> <form method="post" action="./form.php"> <p>验证码图片 <img id="captcha_img" border="1" src="./captcha.php?r=<?php echo rand(); ?>" width=100 height=30> <a href="javascript:void(0)" rel="external nofollow" onClick="document.getElementById('captcha_img').src='./captcha.php?r='+Math.random()">换一个?</a> </p> <p>请输入图片中的内容<input type="text" name="authcode" value=""/></p> <p><input type="submit" value="提交" style="padding:6px 20px;"></p> </form> </body> </html>
以上就是php验证码的制作思路和实现方法,从简单到复杂,可以根据这些写出非常完美的验证码功能机制。
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程