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文件的实现方法
Mar 19 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php程序之die调试法 快速解决错误
Sep 17 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
浅析Yii2缓存的使用
May 10 PHP
linux下php上传文件注意事项
Jun 11 PHP
php实现的debug log日志操作类实例
Jul 12 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
CI框架常用方法小结
2016/05/17 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python元组知识点总结
2019/02/18 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Django-migrate报错问题解决方案
2020/04/21 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
商务英语本科生的自我评价分享
2013/11/15 职场文书
高中的自我鉴定
2013/12/16 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
就业表自我评价分享
2014/02/06 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
倡议书怎么写?
2019/04/11 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
浅谈pytorch中的dropout的概率p
2021/05/27 Python