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生成EXCEL的东东
Oct 09 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
php使用curl访问https示例分享
Jan 17 PHP
PHP的cURL库简介及使用示例
Feb 06 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
Joomla开启SEF的方法
May 04 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
php-fpm中max_children的配置
Mar 15 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
PHP的介绍以及优势详细分析
Sep 05 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
php基础知识:类与对象(5) static
2006/12/13 PHP
深入解析php之apc
2013/05/15 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
视光学专业毕业生推荐信
2013/10/28 职场文书
产品推广策划方案
2014/05/10 职场文书
小学数学教研活动总结
2014/07/01 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
募捐感谢信
2015/01/22 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫