`
cakin24
  • 浏览: 1383612 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

php封装一个生成图像验证码

    博客分类:
  • 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">
</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)">
用户名:&nbsp;&nbsp;<input type="text" name="username" size="30" class="input" /><br><br>
密&nbsp;&nbsp;码:&nbsp;&nbsp;<input type="password" name="password" size="30" class="input" /><br><br>
确认密码:<input type="password" name="defPassword" size="30" class="input"><br><br>
E-mail:&nbsp;&nbsp;<input type="text" name="email" size="30" class="input" /><br><br>
电话:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="tel" size="30" class="input" /><br><br>
联系地址:<input type="text" name="address" size="30" class="input" /><br><br>
验证码:&nbsp;&nbsp;<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()" class="a1">看不清</a>
	<br><br>
	<input type="submit" value="提交">&nbsp;&nbsp;<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">
&nbsp;&nbsp;&nbsp;&nbsp;用户在使用***网站网络服务过程中,必须遵循以下原则:<br />
&nbsp;&nbsp;&nbsp; 1、遵守中国有关的法律和法规。不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益。不得利用***网站网络服务系统进行任何不利于***网站的行为。<br />
&nbsp;&nbsp; 2、遵守所有与网络服务有关的网络协议、规定和程序。<br />
&nbsp;&nbsp; 3、不干扰或混乱网络服务。<br />
&nbsp;&nbsp; 4、不得为任何非法目的而使用本网络服务系统。<br />
&nbsp;&nbsp; 5、不得传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗的或其他任何非法的信息资料。<br />
&nbsp;&nbsp; 6、不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益。<br />
&nbsp;&nbsp; 7、不得在论坛BBS或留言簿发表任何与政治相关的信息。 <br />
&nbsp;&nbsp; 8、遵守所有使用网站服务的网络协议、规定、程序和惯例。<br />
&nbsp;&nbsp; 9、如发现任何非法使用用户帐号,应立即通告***网站。<br />
&nbsp;&nbsp;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();//调用函数
?>
 
二 运行结果

 
  • 大小: 15.6 KB
  • 大小: 15.6 KB
分享到:
评论

相关推荐

    php生成验证码类,已封装

    总的来说,PHP生成验证码类是一个集成了多种图形处理技巧的工具,通过GD库和自定义逻辑,可以创建出具有高安全性和良好用户体验的验证码。这种验证码类不仅可以防止自动化攻击,还可以根据需求定制各种视觉效果,...

    已封装的php验证码类.zip

    在本案例中,我们有一个名为"已封装的php验证码类.zip"的压缩包,其中包含一个已经封装好的PHP验证码类。这个类库简化了验证码的生成和验证过程,使得开发者可以更便捷地在项目中集成验证码功能。 首先,让我们深入...

    PHP验证码封装类

    在这个“PHP验证码封装类”中,开发者已经创建了一个易于使用且功能完善的验证码生成器,它可以帮助我们快速地在项目中集成验证码功能。 验证码类通常包括以下几个关键部分: 1. **随机字符串生成**:验证码通常由...

    一个php验证码的封装类.zip

    在PHP开发中,验证码是一种常见的安全机制,用于...总的来说,这个PHP验证码封装类是提高网站安全性的一个实用工具,其内部机制涵盖了随机生成、图像处理、安全存储和验证等多个环节,是PHP开发中不可或缺的一部分。

    php实现的封装验证码类

    本篇文章将深入探讨如何利用PHP实现一个封装好的验证码类,以及该过程中的关键知识点。 首先,验证码类通常包含以下几个核心功能: 1. **生成随机字符串**:验证码的实质是生成一段随机字符串,这个字符串需要具有...

    已封装的php验证码类

    接着,验证码类需要一个生成验证码的方法,它会随机生成字符串,并创建一个图像来显示这个字符串。可以使用GD库来处理图像,如下: ```php public function generate() { // 生成随机字符串 $code = $this-&gt;...

    php验证码类

    "php验证码类"指的是用PHP编程语言编写的一个特定的类,这个类通常包含用于生成和验证随机图像验证码的函数。 验证码的主要功能是确保用户是人类,而不是计算机程序。它们通过创建一个难以自动识别的图像,其中包含...

    PHP验证码制作

    4. **类封装**:将验证码的生成过程封装为一个类,有利于代码的组织和重用。类中可以包含生成验证码字符串、创建图像、添加干扰元素和输出图像的方法,这样在实际项目中只需实例化这个类并调用相应方法即可。 5. **...

    PHP随机验证码含有5种样式

    Imagick 是一个更强大的图像处理扩展,它提供了更多的功能,但可能需要额外安装。 1. **数字验证码**:最简单的验证码类型是纯数字验证码,通常包含4-6个随机数字。在PHP中,我们可以使用 `rand()` 函数生成随机...

    php源码 验证码 类

    PHP可以使用GD库或Imagick扩展来生成图像。GD库是PHP内置的图像处理库,而Imagick提供了更丰富的功能,如支持更多图像格式和更多的图像操作。 2. **随机字符串生成**:验证码的内容需要是随机的,以增加破解的难度...

    php验证码,php验证码类

    总之,`lib_verify.php`中的PHP验证码类是一个自定义的解决方案,它封装了生成、显示和验证验证码的全过程,为其他类库或项目提供了一个方便的组件。了解其内部工作原理有助于我们更好地实现和维护网站的安全性。

    PHP实现的封装验证码类详解

    验证码是一种用于验证用户...总的来说,这个PHP封装验证码类提供了一种高效且灵活的方式来生成和验证图像验证码,有效提升了网站的安全性。通过自定义参数,我们可以调整验证码的外观和难度,以适应不同场景的需求。

    实用的php验证码类库

    PHP的`$_SESSION`超全局变量可以用来存储验证码,确保每个会话只对应一个验证码。 5. **客户端交互**:服务器生成的验证码图像需发送到客户端浏览器显示,并接收用户输入的验证码。这可以通过HTTP响应头设置内容...

    基于PHP生成简单的验证码

    验证码是一种常见的安全机制...总之,基于PHP生成简单的验证码是一个基础的图像处理任务,涉及随机数生成、图像创建、颜色分配以及文本绘制等技术。通过不断优化和增强验证码的复杂性,可以有效防止自动化的恶意攻击。

    php实现的封装验证码类.zip

    2. **创建图像**:验证码还需要显示在一个图像上。PHP提供了GD库或Imagick扩展来创建和操作图像。我们可以创建一个新的图像资源,设置宽度、高度和颜色,然后在图像上绘制随机线条和噪点以增加混淆度。 3. **绘制...

    php验证码文件类.zip

    "php验证码文件类.zip" 是一个包含PHP验证码实现的类库,方便开发者集成到自己的项目中。通过将验证码功能封装成类,代码的可复用性和维护性得到了提升。 验证码类通常包括以下几个核心部分: 1. **随机数生成**:...

    PHP 创建扭曲英文验证码

    1. **GD库简介**:GD是PHP内置的一个图像处理库,能够创建、修改和处理各种图像,包括创建验证码所需的扭曲效果。 2. **创建图像**:首先,我们需要创建一个新的空白图像,设置其宽度和高度,以及背景色。例如,...

    php实现的验证码文件类实例

    本文将详细介绍如何使用PHP实现一个验证码文件类,并通过实例分析来展示生成验证码文件的技巧。验证码广泛应用于网站中,用以防止恶意自动化的注册、登录等行为,确保网站的安全性和用户的真实性。利用PHP的GD库,...

    PHP 用session与gd库实现简单验证码生成与验证的类方法

    在本文中,我们将深入探讨如何使用PHP结合GD库创建一个简单的验证码类,包括验证码的生成、输出以及验证用户输入。 **GD库介绍** GD库是PHP中用于处理图像的常用扩展,它提供了多种图像处理功能,如创建、打开、...

Global site tag (gtag.js) - Google Analytics