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 相关文章推荐
BBS(php &amp; mysql)完整版(五)
Oct 09 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php实例分享之二维数组排序
May 15 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 PHP
通过php动态传数据到highcharts
Apr 05 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
Laravel 实现密码重置功能
Feb 23 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中Array相关函数简介
2016/07/03 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
JavaScript 学习笔记(六)
2009/12/31 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
python制作抖音代码舞
2019/04/07 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
python中while和for的区别总结
2019/06/28 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
如何使用Python调整图像大小
2020/09/26 Python
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
介绍一下#error预处理
2015/09/25 面试题
人事行政主管岗位职责
2013/12/22 职场文书
安全责任书模板
2014/07/22 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
小学班长竞选稿
2015/11/20 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
django注册用邮箱发送验证码的实现
2021/04/18 Python
python获取带有返回值的多线程
2022/05/02 Python