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 相关文章推荐
第十一节--重载
Nov 16 PHP
PHP中for循环语句的几种变型
Nov 26 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
PHP中Trait及其应用详解
Feb 14 PHP
php实现查询功能(数据访问)
May 23 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
PHP filesize函数用法浅析
Feb 15 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防注入代码
2010/04/07 PHP
php实现的用户查询类实例
2015/06/18 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
js 小贴士一星期合集
2010/04/07 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
canvas绘制多边形
2017/02/24 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
python让列表倒序输出的实例
2018/06/25 Python
python如何实现异步调用函数执行
2019/07/08 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
工程造价管理专业大专生求职信
2013/10/06 职场文书
抽样调查项目计划书
2014/04/24 职场文书
学校献爱心活动总结
2014/07/08 职场文书
师范生见习报告范文
2014/11/03 职场文书
房产公证书样本
2015/01/23 职场文书
继续教育个人总结
2015/03/03 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
青涩记忆观后感
2015/06/18 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript