php图像验证码生成代码


Posted in PHP onJune 08, 2017

本文实例为大家分享了php封装的一个生成图像验证码,供大家参考,具体内容如下

一、代码

index..php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>js+GD2函数制作无刷新验证码</title> 
<link rel="stylesheet" type="text/css" href="css/style.css" rel="external nofollow" > 
</head> 
<body> 
<div style="width: 750px; border: 1px solid #0D6C8C; text-align: left"> 
 <div style="width:100%; height:25px; border:1px #FFFFFF solid; background:url(img/t-background.gif); color:#FFFFFF; padding-top:5px; padding-left:20px; text-align:left">填写用户注册信息</div> 
 <div style="width:400px; text-align:left; padding-left:50px; padding-top:15px; float:left"> 
<script language="javascript"> 
  function chkinput(form) 
  { 
    if (form.username.value==''){ 
      alert('请输入用户名!'); 
      form.username.focus(); 
      return false; 
    } 
     
    if (form.password.value==''){ 
      alert('请输入注册密码!'); 
      form.password.focus(); 
      return false; 
    }   
     
    if (form.defPassword.value==''){ 
      alert('请输入确认密码!'); 
      form.defPassword.focus(); 
      return false; 
    } 
     
    if (form.password.value.length<6){ 
      alert('密码长度应大于6位!'); 
      form.password.focus(); 
      return false; 
    } 
     
    if (form.password.value!=form.defPassword.value){ 
      alert('密码与确认密码不同!'); 
      form.password.focus(); 
      return false; 
    } 
     
    if (form . email . value == "") { 
      alert("请输入E-mail地址!"); 
      form . email . select(); 
      return (false); 
    } 
    var i= form . email . value . indexOf("@"); 
    if (i < 0) { 
      alert("请输入正确的E-mail地址!"); 
      form . email . select(); 
      return (false); 
    } 
    if (form . tel . value == "") { 
      alert('请输入电话号码!'); 
      form . tel . focus(); 
      return (false); 
    } 
    var t=/^([0-9]|[\-])+$/g; 
    if (! t . test(form . tel . value) || form . tel . value . length > 18 || form . tel . value . length < 7) { 
      alert('电话格式输入有误!'); 
      form . tel . focus(); 
      return (false); 
    } 
                   
    if (form.address.value==''){ 
      alert('请输入联系地址!'); 
      form.address.focus(); 
      return false; 
    } 
     
    if (form.validatorCode.value==''){ 
      alert('请输入验证码!'); 
      form.validatorCode.focus(); 
      return false; 
    } 
     
    if (form.validatorCode.value!=form.defValidatorCode.value) { 
      alert('验证码输入有误!'); 
      form.validatorCode.focus(); 
      return false; 
    } 
     
    return true; 
   
  } 
</script> 
   
<form name="form1" method="post" action="success.php" onSubmit="return chkinput(this)"> 
用户名:  <input type="text" name="username" size="30" class="input" /><br><br> 
密  码:  <input type="password" name="password" size="30" class="input" /><br><br> 
确认密码:<input type="password" name="defPassword" size="30" class="input"><br><br> 
E-mail:  <input type="text" name="email" size="30" class="input" /><br><br> 
电话:    <input type="text" name="tel" size="30" class="input" /><br><br> 
联系地址:<input type="text" name="address" size="30" class="input" /><br><br> 
验证码:  <input type="text" name="validatorCode" size="10" class="input" /> 
<input type="hidden" name="defValidatorCode" value="" /> 
   
  <script language="javascript"> 
   var num1=Math.round(Math.random()*10000000); 
   var num=num1.toString().substr(0,4); 
   document.write("<img name=codeimg src='TestCode.php?code="+num+"'>"); 
   form1.defValidatorCode.value=num; 
   function reCode(){ 
      var num1=Math.round(Math.random()*10000000); 
      var num=num1.toString().substr(0,4); 
      document.codeimg.src="TestCode.php?code="+num; 
      form1.defValidatorCode.value=num; 
    } 
  </script> 
  <a href="javascript:reCode()" rel="external nofollow" class="a1">看不清</a> 
  <br><br> 
  <input type="submit" value="提交">  <input type="reset" value=" 重写"> 
</form> 
 </div> 
 <div style="width:300px; float:right; padding-top:20px"> 
   <div style="width:285px; height:250px; border:1px dotted #999999; background:#E9F2F7; OVERFLOW-X: auto; OVERFLOW-Y:auto; text-align:left; line-height:20px"> 
    用户在使用***网站网络服务过程中,必须遵循以下原则:<br /> 
    1、遵守中国有关的法律和法规。不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益。不得利用***网站网络服务系统进行任何不利于***网站的行为。<br /> 
   2、遵守所有与网络服务有关的网络协议、规定和程序。<br /> 
   3、不干扰或混乱网络服务。<br /> 
   4、不得为任何非法目的而使用本网络服务系统。<br /> 
   5、不得传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗的或其他任何非法的信息资料。<br /> 
   6、不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益。<br /> 
   7、不得在论坛BBS或留言簿发表任何与政治相关的信息。 <br /> 
   8、遵守所有使用网站服务的网络协议、规定、程序和惯例。<br /> 
   9、如发现任何非法使用用户帐号,应立即通告***网站。<br /> 
  10、如用户在使用网络服务时违反上述任何规定,***网站有权要求用户改正或直接取消该帐号并停止为该用户提供相关的网络服务。<br />  
   </div> 
 </div> 
  
</div> 
<?php 
  require_once 'footer.php'; 
?> 
</body> 
</html>

TestCode.php

<?php 
  class TestCode{//创建类名为TestCode 
   private $width; 
   private $height; 
   private $str; 
   private $im; 
   private $strColor;    
   function __construct($width,$height){ 
    $this->width=$width; 
    $this->height=$height; 
    $this->str=$_GET['code']; 
    $this->createImage(); 
   } 
   function createImage(){ 
    $this->im=imagecreate($this->width,$this->height);//创建画布 
    imagecolorallocate($this->im,200,200,200);//为画布添加颜色 
    for($i=0;$i<4;$i++){//循环输出四个数字 
     $this->strColor=imagecolorallocate($this->im,rand(0,100),rand(0,100),rand(0,100)); 
     imagestring($this->im,rand(3,5),$this->width/4*$i+rand(5,10),rand(2,5),$this->str[$i],$this->strColor); 
    } 
    for($i=0;$i<200;$i++){//循环输出200个像素点 
     $this->strColor=imagecolorallocate($this->im,rand(0,255),rand(0,255),rand(0,255)); 
     imagesetpixel($this->im,rand(0,$this->width),rand(0,$this->height),$this->strColor); 
    } 
   } 
   function show(){// 
    header('content-type:image/png');//定义输出为图像类型 
    imagepng($this->im);//生成图像 
    imagedestroy($this->im);//销毁图像释放内存 
   } 
  } 
  $image=new TestCode(80,20);//将类实例化为对象 
  $image->show();//调用函数 
?>

 二、运行结果

php图像验证码生成代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
十天学会php之第六天
Oct 09 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
Function eregi is deprecated (解决方法)
Jun 21 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
PHP计算近1年的所有月份
Mar 13 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
php面向对象的用户登录身份验证
Jun 08 #PHP
php实现用户注册密码的crypt加密
Jun 08 #PHP
php封装一个异常的处理类
Jun 08 #PHP
php简单构造json多维数组的方法示例
Jun 08 #PHP
php显示页码分页类的封装
Jun 08 #PHP
PHP 7.0新增加的特性介绍
Jun 08 #PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 #PHP
You might like
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
php探针不显示内存解决方法
2019/09/17 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
页面中js执行顺序
2009/11/09 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
python3实现基于用户的协同过滤
2018/05/31 Python
python实现点对点聊天程序
2018/07/28 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
致短跑运动员广播稿
2014/01/09 职场文书
超市总经理岗位职责
2014/02/02 职场文书
档案室主任岗位职责
2014/02/12 职场文书
仓管员岗位责任制
2014/02/19 职场文书
学校开学标语
2014/10/06 职场文书
总结Python常用的魔法方法
2021/05/25 Python
使用Python解决图表与画布的间距问题
2022/04/11 Python