php实现可运算的验证码


Posted in PHP onNovember 10, 2015

本文分享了php实现可运算的验证码的代码实例,希望对大家的学习有所帮助。

demo.php代码

<?php 
session_start(); 
if(!emptyempty($_POST['Login'])){ 
  if(md5(strtoupper($_POST['Login'])) == $_SESSION['Login']){ 
    echo 'Correct'; 
  }else{ 
    echo 'Error';   
  } 
} 
?> 
 
<form method="post"> 
  <input type="text" name="Login" value="" /><img src="img.php?Action=Login&imgW=80&imgH=30" align="absmiddle"> 
  <input type="submit" value="Login" /> 
</form>

img.php代码

<?php 
session_start(); 
 /** 
* 随机的数字,之和验证码 
* 修改日期 2006-12-20 
*/ 
function getCode ($length = 32, $mode = 0) 
{ 
switch ($mode) 
{ 
   case '1': 
     $str = '123456789'; 
      break; 
 case '2': 
      $str = 'abcdefghijklmnopqrstuvwxyz'; 
      break; 
 case '3': 
      $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
      break; 
 case '4': 
      $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 
      break; 
 case '5': 
      $str = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; 
      break; 
    case '6': 
      $str = 'abcdefghijklmnopqrstuvwxyz1234567890'; 
      break; 
    default: 
      $str = 'ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'; 
      break; 
} 
 
$result = ''; 
$l = strlen($str)-1; 
for($i = 0;$i < $length;$i ++) 
{ 
 $num = rand(0, $l); 
 $result .= $str[$num]; 
} 
return $result; 
} 
//建立验证图片 
function createAuthNumImg($randStr,$imgW=100,$imgH=40,$fontName) 
{ 
header ("content-type: image/png"); 
$image = imagecreate($imgW , $imgH); 
$color_white = imagecolorallocate($image , 255 , 255 , 255); 
$color_gray = imagecolorallocate($image , 228 , 228 , 228); 
$color_black = imagecolorallocate($image , 255 , 102 , 204); 
for ($i = 0 ; $i < 1000 ; $i++) 
{ 
 imagesetpixel($image , mt_rand(0 , $imgW) , mt_rand(0 , $imgH) , $color_gray); 
} 
imagerectangle($image , 0 , 0 , $imgW - 1 , $imgH - 1 , $color_gray); 
for ($i=10;$i<$imgH;$i+=10) 
 imageline($image, 0, $i, $imgW, $i, $color_gray); 
imagettftext($image,16,5,3,25,$color_black,$fontName,$randStr); 
for ($i=10;$i<$imgW;$i+=10) 
 imageline($image, $i, 0, $i, $imgH, $color_gray); 
imagepng($image); 
imagedestroy($image); 
} 
 
$a=GetCode(1,1); 
$b=GetCode(1,1); 
$c=GetCode(1,1); 
$Passport=$a."+".$b."+".$c; 
$Total=$a+$b+$c; 
$Total; 
$_SESSION[$_GET['Action']]=md5(strtoupper($Total)); 
createAuthNumImg($Passport,$_GET['imgW'],$_GET['imgH'],"verdana.ttf"); 
?>

以上就是为大家介绍的php可运算的验证码全部代码,希望对大家的学习有所帮助。

PHP 相关文章推荐
在命令行下运行PHP脚本[带参数]的方法
Jan 22 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
PHP 加密解密内部算法
Apr 22 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 #PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 #PHP
深入理解PHP内核(一)
Nov 10 #PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 #PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 #PHP
再推荐十款免费的php开发工具
Nov 09 #PHP
php开发工具有哪五款
Nov 09 #PHP
You might like
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
Python用threading实现多线程详解
2017/02/03 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
python实现拼图小游戏
2020/02/22 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
线程同步的方法
2016/11/23 面试题
秘书行业自我鉴定范文
2013/12/30 职场文书
超市促销活动方案
2014/03/05 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python