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学习教程之第2天
Jun 15 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
Nov 28 PHP
php实现parent调用父类的构造方法与被覆写的方法
Feb 11 PHP
PHP5.3新特性小结
Feb 14 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP实现权限管理功能示例
Sep 22 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 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
截获网站title标签之家内容的例子
2006/10/09 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
Three.js基础学习教程
2017/11/16 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Python上下文管理器和with块详解
2017/09/09 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
物业管理委托协议(2篇)
2014/09/23 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
社区服务活动报告
2015/02/05 职场文书
办公用品质量保证书
2015/05/11 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
Python+Appium自动化测试的实战
2021/06/30 Python
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA