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下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
php购物车实现代码
Oct 10 PHP
深入解析php之sphinx
May 15 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP钩子与简单分发方式实例分析
Sep 04 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 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
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
python中的列表推导浅析
2014/04/26 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
对Python w和w+权限的区别详解
2019/01/23 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
建龙钢铁面试总结
2014/04/15 面试题
会计岗位职责模板
2014/03/12 职场文书
金融事务专业求职信
2014/04/25 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL