php实现点击可刷新验证码


Posted in PHP onNovember 07, 2015

本文实例为大家分享了php点击可刷新验证码的具体代码,供大家参考,具体内容如下

验证码类文件 CreateImg.class.php

<?php 
 
class ValidationCode 
{ 
private $width,$height,$codenum; 
public $checkcode;  //产生的验证码 
private $checkimage; //验证码图片 
private $disturbColor = ''; //干扰像素 
 
function __construct($width='80',$height='20',$codenum='4') 
{ 
 $this->width=$width; 
 $this->height=$height; 
 $this->codenum=$codenum; 
} 
function outImg() 
{ 
 //输出头 
 $this->outFileHeader(); 
 //产生验证码 
 $this->createCode(); 
 
 //产生图片 
 $this->createImage(); 
 //设置干扰像素 
 $this->setDisturbColor(); 
 //往图片上写验证码 
 $this->writeCheckCodeToImage(); 
 imagepng($this->checkimage); 
 imagedestroy($this->checkimage); 
} 
 
private function outFileHeader() 
{ 
 header ("Content-type: image/png"); 
} 
 
private function createCode() 
{ 
 $this->checkcode = strtoupper(substr(md5(rand()),0,$this->codenum)); 
} 
 
private function createImage() 
{ 
 $this->checkimage = @imagecreate($this->width,$this->height); 
 $back = imagecolorallocate($this->checkimage,255,255,255); 
 $border = imagecolorallocate($this->checkimage,0,0,0); 
 imagefilledrectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$back); // 白色底 
 imagerectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$border); // 黑色边框 
} 
 
private function setDisturbColor() 
{ 
 for ($i=0;$i<=200;$i++) 
 { 
 $this->disturbColor = imagecolorallocate($this->checkimage, rand(0,255), rand(0,255), rand(0,255)); 
 imagesetpixel($this->checkimage,rand(2,128),rand(2,38),$this->disturbColor); 
 } 
} 
 
private function writeCheckCodeToImage() 
{ 
 for ($i=0;$i<=$this->codenum;$i++) 
 { 
 $bg_color = imagecolorallocate ($this->checkimage, rand(0,255), rand(0,128), rand(0,255)); 
 $x = floor($this->width/$this->codenum)*$i; 
 $y = rand(0,$this->height-15); 
 imagechar ($this->checkimage, rand(5,8), $x, $y, $this->checkcode[$i], $bg_color); 
 } 
} 
function __destruct() 
{ 
 unset($this->width,$this->height,$this->codenum); 
} 
} 
?>

包含文件imgcode.php

<?php 
session_start(); 
require_once('CreateImg.class.php'); 
$image = new ValidationCode('80','20','4'); //图片长度、宽度、字符个数 
$image->outImg(); 
$_SESSION['validationcode'] = $image->checkcode; //存贮验证码到 $_SESSION 中 
?>

前台文件 demo.php

?php 
session_start(); 
$test = $_POST['test']; 
$test = strtoupper(trim($test)); 
$submit = $_POST['submit']; 
if(isset($submit)){ 
if($test==$_SESSION['validationcode']){ 
 echo 'true'; 
} else { 
 echo 'false'; 
} 
} 
?> 
 
<html> 
<head> 
<title>Image</title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<script language="javascript"> 
function newgdcode(obj,url) { 
obj.src = url+ '?nowtime=' + new Date().getTime(); 
//后面传递一个随机参数,否则在IE7和火狐下,不刷新图片 
} 
</script> 
<body> 
<img src="imgcode.php" alt="看不清楚,换一张" align="absmiddle" style="cursor: pointer;" onclick="javascript:newgdcode(this,this.src);" /> 
<form method="POST" name="form1" action="image.php"> 
<input type="text" name="test"> 
<br /> 
<input type="submit" name="submit" value="提交"> 
</form> 
</body> 
</head> 
</html>

以上就是为大家介绍的php点击验证码即可刷新的全部代码,希望对大家的学习有所帮助。

PHP 相关文章推荐
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
php牛逼的面试题分享
Jan 18 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
php微信小程序解包过程实例详解
Mar 31 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 #PHP
使用PHP similar text计算两个字符串相似度
Nov 06 #PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 #PHP
php创建无限级树型菜单
Nov 05 #PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 #PHP
PHP递归创建多级目录
Nov 05 #PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 #PHP
You might like
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
分享php邮件管理器源码
2016/01/06 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Form表单及django的form表单的补充
2019/07/25 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
领导证婚人证婚词
2014/01/13 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
秘书英文求职信范文
2014/01/31 职场文书
趣味活动策划方案
2014/02/08 职场文书
学习交流会主持词
2014/04/01 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
补充协议书范本
2014/04/23 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
结婚保证书
2015/01/16 职场文书
宣传委员竞选稿
2015/11/19 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python