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
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
php封装的表单验证类完整实例
Oct 19 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
Yii全局函数用法示例
Jan 22 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 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程序
2012/02/04 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
python getpass模块用法及实例详解
2019/10/07 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python实现加密的方式总结
2020/01/19 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
linux面试题参考答案(9)
2015/01/07 面试题
软件测试面试题
2015/10/21 面试题
学雷锋志愿服务月活动总结
2014/03/09 职场文书
迎新晚会主持词
2014/03/24 职场文书
房屋租赁意向书
2014/04/01 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android