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 相关文章推荐
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
探讨php中header的用法详解
Jun 07 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
提高php编程效率技巧
Aug 13 PHP
Yii中表单用法实例详解
Jan 05 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
PHP正则删除HTML代码中宽高样式的方法
Jun 12 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中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
python实现在目录中查找指定文件的方法
2014/11/11 Python
Python多线程下载文件的方法
2015/07/10 Python
python实现各进制转换的总结大全
2017/06/18 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Python2与Python3的区别实例总结
2019/04/17 Python
python3中property使用方法详解
2019/04/23 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
恶意软件的定义
2014/11/12 面试题
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
党员入党表决心的话
2014/03/11 职场文书
供用电专业求职信
2014/07/07 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书