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 相关文章推荐
图书管理程序(三)
Oct 09 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
修改php.ini以达到屏蔽错误信息并记录日志
Jun 16 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
PHP编写RESTful接口
Feb 23 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
js实现圆盘记速表
2015/08/03 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
Python使用numpy实现BP神经网络
2018/03/10 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
python名片管理系统开发
2020/06/18 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
小学校园活动策划
2014/01/30 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
客户答谢会致辞
2015/07/30 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript