php验证码点击刷新,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';
}
}
?>
Image
function newgdcode(obj,url) {
obj.src = url+ '?nowtime=' + new Date().getTime();
//后面传递一个随机参数,否则在IE7和火狐下,不刷新图片
}
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
PHP导出word的方法
PHP jpgraph安装及基本用法
php自定义分页类的原理
php验证码点击刷新,php点击可刷新验证码相关推荐
- vue-router 如何在当前路由下重新点击当前路由的router-link实现刷新
转载自 vue-router 如何在当前路由下重新点击当前路由的router-link实现刷新 代码: <router-link to="/home" @click.nat ...
- 移动端网页返回主页功能php,移动端点击返回键,页面不刷新解决方案
在移动端项目中遇到了点击浏览器返回键,页面不刷新的问题,通过研究学习,采用了以下的解决方案.问题解决了. (一)移动端点击返回键,页面不刷新解决方案 移动端浏览器点击返回上一级,页面不刷新的原因之一: ...
- selenium 实现循环点击_-循环点击遇到的坑(每次点击后返回,页面元素都会变化的解决方法)...
# 前言 selenium定位一组元素,批量操作循环点击的时候会报错:Element not found in the cache - perhaps the page has changed sin ...
- python模拟网页点击_python模拟点击
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python怎么模拟点击网页按钮前提环境:python3 和 visual st ...
- android 模拟自动点击,自动点击器(模拟点击)
应用介绍 自动点击器(模拟点击)是一款点击小工具应用,免费的且操作很便利,内里全部的成倍功能,全体都是免费的,内里又有详尽的操作说明,提倡运用之前好好的阅读,有需要的下载使用. 应用说明 自动点击器A ...
- 微信小程序点击更改样式-点击获得下划线
微信小程序点击更改样式-点击获得下划线 <view class="container"> <scroll-view class='headerBox' scrol ...
- php实现展现量cookie,[转载]展现量、点击量、点击率;访客数、访问次数、浏览量的区别与作用...
1. 什么是展现量.点击量.点击率 在百度推广后台可以看到消费.平均价格.点击.展现.点击率.千次展现费用等数据,这些数据是你全面评估推广效果.深入开展推广优化的基础. 在网民搜索查询时,如果您账户内 ...
- 点击量、点击率、访客数、的区别与作用
1. 什么是展现量.点击量.点击率 在百度推广后台可以看到消费.平均价格.点击.展现.点击率.千次展现费用等数据,这些数据是你全面评估推广效果.深入开展推广优化的基础. 在网民搜索查询时,如果您账户内 ...
- Poco脚本的点击位置与点击偏移
此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 1. 前言 上一期我们讲了 Airtest的点击位 ...
- html 点击增加样式,js点击添加css样式 css添加jq点击事件 JavaScript点击增加css样式...
js可实现点击后对div或者其他标签增加或者删除css样式,从而达到实现点击触发某种效果的目的.页面样式可以通过style修饰,也可以通过css修饰,改变css或者添加css可以改变页面的排版.代码如 ...
最新文章
- 腾讯云推出竞价实例 云服务器开销最高下降90%
- HTML和CSS基础知识
- echarts图例(legend)
- 多个 VUE 前端工程部署设置、nginx 代理配置
- python运维模块_Python 运维常用模块
- ThreadStatic特性简介
- 微信小程序:wx.getUserInfo 接口的变动与使用
- 58同城智能推荐系统的演进与实践
- python打开ie浏览器_python-IE浏览器调用
- 如何查看路由器中的宽带密码
- 关于skl计算机题目,系统崩溃,并且您不能更改 Windows 8.1 或 Windows Server 2012 R2 中的英特尔 SKL 平台上的 CPU 频率...
- 利用计算机解决问题的一般过程是怎样的,计算机解决问题的一般过程1
- C# WPF新版开源控件库:Newbeecoder.UI
- 使用Excel VBA制作成绩统计图----(嵌入模式)
- 北大计算机所孙俊教授,教育部人工智能咨询专家孙俊:科技怎样赋能智慧教育?...
- Axure RP9基本操作
- linux fat get entry,Linux kernel FAT32文件系统分析
- Jenkins基础:Jenkinsfile使用实例:5:使用when进行条件分支处理
- Android project依赖project配置说明
- Python处理excle表格
热门文章
- spring boot 2 整合 j2Cache
- DRF如何使用serializer进行验证数据
- linux系统安装kms,Linux安装部署KMS服务器
- WIN10 删除文件 找不到该项目
- 使用STM32与TB6612FNG驱动直流减速电机
- YCabPDF PDFView控件说明文档
- 怎样恢复手机oracle默认窗口,通达信恢复默认版面,Effects界面如何恢复初始默认设置...
- Python 之字典(dict)根据 value 获取 key
- 永恒之蓝漏洞自查-MS17010漏洞自查与修复
- 驱动开发:BSOD 0xC4_f6 句柄问题