php实现点击可刷新验证码
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-25 14:06:45 浏览: 评论:0
这篇文章主要介绍了php如何实现点击即可刷新验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
本文实例为大家分享了php点击可刷新验证码的具体代码,供大家参考,具体内容如下
验证码类文件 CreateImg.class.php
- <?php
 - class ValidationCode
 - {
 - private $width,$height,$codenum;
 - public $checkcode; //产生的验证码
 - private $checkimage; //验证码图片
 - private $disturbColor = ''; //干扰像素
 - function __construct($width='80',$height='20',$codenum='4')
 - {
 - $this->width=$width;
 - $this->height=$height;
 - $this->codenum=$codenum;
 - }
 - function outImg()
 - {
 - //输出头
 - $this->outFileHeader();
 - //产生验证码
 - $this->createCode();
 - //产生图片
 - $this->createImage();
 - //设置干扰像素
 - $this->setDisturbColor();
 - //往图片上写验证码
 - $this->writeCheckCodeToImage();
 - imagepng($this->checkimage);
 - imagedestroy($this->checkimage);
 - }
 - private function outFileHeader()
 - {
 - header ("Content-type: image/png");
 - }
 - private function createCode()
 - {
 - $this->checkcode = strtoupper(substr(md5(rand()),0,$this->codenum));
 - }
 - private function createImage()
 - {
 - $this->checkimage = @imagecreate($this->width,$this->height);
 - $back = imagecolorallocate($this->checkimage,255,255,255);
 - $border = imagecolorallocate($this->checkimage,0,0,0);
 - imagefilledrectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$back); // 白色底
 - imagerectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$border); // 黑色边框
 - }
 - private function setDisturbColor()
 - {
 - for ($i=0;$i<=200;$i++)
 - {
 - $this->disturbColor = imagecolorallocate($this->checkimage, rand(0,255), rand(0,255), rand(0,255));
 - imagesetpixel($this->checkimage,rand(2,128),rand(2,38),$this->disturbColor);
 - }
 - }
 - private function writeCheckCodeToImage()
 - {
 - for ($i=0;$i<=$this->codenum;$i++)
 - {
 - $bg_color = imagecolorallocate ($this->checkimage, rand(0,255), rand(0,128), rand(0,255));
 - $x = floor($this->width/$this->codenum)*$i;
 - $y = rand(0,$this->height-15);
 - imagechar ($this->checkimage, rand(5,8), $x, $y, $this->checkcode[$i], $bg_color);
 - }
 - }
 - function __destruct()
 - {
 - unset($this->width,$this->height,$this->codenum);
 - }
 - }
 - ?>
 
包含文件imgcode.php
- <?php
 - session_start();
 - require_once('CreateImg.class.php');
 - $image = new ValidationCode('80','20','4'); //图片长度、宽度、字符个数
 - $image->outImg();
 - $_SESSION['validationcode'] = $image->checkcode; //存贮验证码到 $_SESSION 中
 - ?>
 
前台文件 demo.php
- <?php
 - session_start();
 - $test = $_POST['test'];
 - $test = strtoupper(trim($test));
 - $submit = $_POST['submit'];
 - if(isset($submit)){
 - if($test==$_SESSION['validationcode']){
 - echo 'true';
 - } else {
 - echo 'false';
 - }
 - }
 - ?>
 - <html>
 - <head>
 - <title>Image</title>
 - <meta http-equiv="content-type" content="text/html;charset=utf-8">
 - <script language="javascript">
 - function newgdcode(obj,url) {
 - obj.src = url+ '?nowtime=' + new Date().getTime();
 - //后面传递一个随机参数,否则在IE7和火狐下,不刷新图片
 - }
 - </script>
 - <body>
 - <img src="imgcode.php" alt="看不清楚,换一张" align="absmiddle" style="cursor: pointer;" onclick="javascript:newgdcode(this,this.src);" />
 - <form method="POST" name="form1" action="image.php">
 - <input type="text" name="test">
 - <br />
 - <input type="submit" name="submit" value="提交">
 - </form>
 - </body>
 - </head>
 - </html>
 
以上就是为大家介绍的php点击验证码即可刷新的全部代码,希望对大家的学习有所帮助。
Tags: php可刷新验证码
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
 - PHP新手上路(一)(7)
 - 惹恼程序员的十件事(5)
 - PHP邮件发送例子,已测试成功(5)
 - 致初学者:PHP比ASP优秀的七个理由(4)
 - PHP会被淘汰吗?(4)
 - PHP新手上路(四)(4)
 - 如何去学习PHP?(2)
 - 简单入门级php分页代码(2)
 - php中邮箱email 电话等格式的验证(2)
 
