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 相关文章推荐
建立文件交换功能的脚本(一)
Oct 09 PHP
php若干单维数组遍历方法的比较
Sep 20 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
php异步多线程swoole用法实例
Nov 14 PHP
php实现事件监听与触发的方法
Nov 21 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
详解php与ethereum客户端交互
Apr 28 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
php实现网页端验证码功能
2017/07/11 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python for循环中的陷阱详解
2018/07/13 Python
python查看模块安装位置的方法
2018/10/16 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python实现大转盘抽奖效果
2019/01/22 Python
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
信访工作者先进事迹
2014/01/17 职场文书
场地使用证明模板
2014/10/25 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android