PHP实现验证码功能
来源:互联网 发布:淘宝联盟购物车没了 编辑:程序博客网 时间:2024/04/30 10:14
//先做个记录,功能还不完善,界面还太丑
画图的时候要安装扩展库gd2,我安装的命令是sudo apt-get install php-gd,加上php版本号之后说找不到包,就多尝试几次了
captcha.php
<?php //设置session,开启会话功能 session_start(); //设置验证码图片大小 $image = imagecreatetruecolor(100,30);//新建一个真彩色图像,第一个参数为长,第二个参数为高 //设置验证码的颜色 $bgcolor = imagecolorallocate($image,255,255,255);//#ffffff白色 //区域填充 imagefill($image,0,0,$bgcolor);//将(0,0)所在的区域填上$bgcolor的颜色 //生成随机数字 for( $i = 0; $i < 4; $i++){ //设置字体大小 $fontsize = 6; //设置字体颜色,随机颜色 0-120深色 $fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); //设置数字 $fontcontent = rand(0,9); //连续定义变量 $captcha_code .= $fontcontent; //设置坐标 $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } //存到session中作为全局变量 $_SESSION['authcode'] = $captcha_code; //增加干扰元素,设置雪花点 for( $i = 0; $i < 200; $i++){ //设置点的颜色,50-200颜色比数字要浅,不干扰阅读 $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200)); //imagesetpixel() 画一个单一元素 imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor); } //增加干扰元素,设置横线 for( $i = 0; $i < 4; $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); } //设置头部 image/png header("Content-Type: image/png"); //imagepng()建立png图形函数 imagepng($image); //imagedestroy()结束图形函数 销毁$image imagedestroy($image); ?>
index.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> <!-- r=echo rand();防止图片一成不变 --> 验证码:<img id="captcha_img" border="1" src="captcha.php?r=echo rand()" style="width:100px; height:30px" /><br> <a href="index.html" 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" name="提交" style="padding:6px 5px;"/> </p> </form></body></html>
form.php
<?php header("Content-Type:text/html;charset=utf-8"); //设置头部信息 //isset()检测变量是否设置 if(isset($_REQUEST['authcode'])){ session_start(); //strtolower()小写函数 if(strtolower($_REQUEST['authcode']) == $_SESSION['authcode']){ //跳转页面 echo "<script language=\"javascript\">"; echo "alert('输入正确!');"; echo "document.location=\"./form.php\""; echo "</script>"; }else{ //提示以及跳转页面 echo "<script language=\"javascript\">"; echo "alert('输入错误!');"; echo "document.location=\"./form.php\""; echo "</script>"; } exit(); }
阅读全文
0 0
- Php实现验证码功能
- PHP实现验证码功能
- PHP实现验证码功能
- 用PHP实现验证码功能
- 用PHP实现验证码功能
- 用PHP实现随机验证码功能
- 用PHP实现验证码功能
- 用PHP实现验证码功能(一)
- 用PHP实现验证码功能(二)
- 用PHP实现验证码功能
- [PHP] 验证码校验功能的实现
- PHP实现生成GIF动态验证码图片功能
- PHP实例————实现验证码功能
- PHP实现短信宝发送短信验证码功能
- PHP实现短信宝发送短信验证码功能
- PHP实现简单的验证码功能机制
- php实现Ajax带有验证码的登陆注册功能
- 实现验证码功能
- 绿盟网络科技面试经验
- 常用Linux命令
- C++复习第四天 引用不简单(本质是指针)
- 数据库中等值连接与自然连接的区别
- CentOS7安装MySQL5.7
- PHP实现验证码功能
- jenkins的安装与配置
- Android开发规范
- 算法提高 ADV-197 P1001
- 【动态规划】求最大上升子序列
- top命令
- IO流的InputStream和OutputStream
- C++ 四种类型转换
- Java 中的异常和处理详解