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 22 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
PHP/HTML混写的四种方式总结
Feb 27 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
设定php简写功能的方法
Nov 28 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
显示、隐藏密码
2006/07/01 Javascript
经验几则 推荐
2006/09/05 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
python异步任务队列示例
2014/04/01 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python和c语言的主要区别总结
2019/07/07 Python
python常用排序算法的实现代码
2019/11/08 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Python处理PDF与CDF实例
2020/02/26 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
报关员个人职业生涯规划书
2014/03/12 职场文书
男女朋友协议书
2014/04/23 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
天坛导游词
2015/02/02 职场文书
通知函格式范文
2015/04/27 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
nginx日志格式分析和修改
2022/04/28 Servers