php高洛峰_PHP 验证码 高洛峰 细说PHP
前端页面index.php<?php
header('content-type:text/html;charset=utf-8');
if(isset($_POST['dosubmit'])){
session_start();
if(strtoupper($_SESSION['code']) == strtoupper($_POST['code'])){
echo '输入成功!
';
}else{
echo '输入不对
';
}
}
?>
用户名:
标题:
内容:
验证码:
生成验证码图片test.php<?php
//开启session
session_start();
require 'print.php';//导入验证码类文件
$vcode =new Vcode(80,30,4);//实例化验证码类
//将验证码放到服务器自己的空间保存一份
$_SESSION['code'] = $vcode->getCode();
//将验证码的图片输出
$vcode->outimg();//调用方法
验证码类 print.php<?php
class Vcode{
private $width; //宽
private $heigth; //高
private $num; //数量
private $code; //验证码
private $img; //图像资源
//构造方法
function __construct($width=80,$height=25,$num=4){
$this->width = $width;
$this->heigth = $height;
$this->num = $num;
$this->code = $this->createCode();
}
//获取字符的验证码
function getCode(){
return $this->code;
}
//输出验证码图形
function outimg(){
//创建背景 颜色 大小 边框
$this->createBack();
//画字 大小 字体颜色
$this->outString();
//干扰元素 点 线条
$this->setDisturb();
//输出图像
$this->printImg();
}
//创建背景
private function createBack(){
//创建资源
$this->img = p_w_picpathcreatetruecolor($this->width, $this->heigth);
//设置随机背景颜色
$bgcolor = p_w_picpathcolorallocate($this->img, rand(225, 255), rand(225, 255), rand(225, 255));
//填充背景色
p_w_picpathfill($this->img, 0, 0, $bgcolor);
//画矩形
$bordercolor = p_w_picpathcolorallocate($this->img, 0, 0, 0);
p_w_picpathrectangle($this->img, 0, 0, $this->width-1, $this->heigth-1, $bordercolor);
}
//画字
private function outString(){
for($i=0;$inum;$i++){
$color = p_w_picpathcolorallocate($this->img, rand(0, 128), rand(0, 128), rand(0, 128));
$font = rand(3,5);
$x = 3 + ($this->width/$this->num)*$i;
$y = rand(1, 5);
p_w_picpathstring($this->img, $font,$x, $y, $this->code{$i}, $color);
}
}
//设置干扰元素
private function setDisturb(){
//加上点数
for($i=0;$i<100;$i++){
$color = p_w_picpathcolorallocate($this->img, rand(0, 255), rand(0, 255), rand(0, 255));
p_w_picpathsetpixel($this->img, rand(1, $this->width-2), rand(1, $this->heigth-2), $color);
}
//加上线条
for($i=0;$i<10;$i++){
$color = p_w_picpathcolorallocate($this->img, rand(0, 255), rand(0, 128), rand(0, 255));
p_w_picpatharc($this->img, rand(-10, $this->width+10), rand(-10, $this->heigth+10), rand(30, 300), rand(30, 300), 55, 44, $color);
}
}
//输出图像
private function printImg(){
// header("Content-Type:p_w_picpath/jpeg");
// p_w_picpathjpeg($this->img);
if(p_w_picpathtypes() & IMG_GIF){
header("Content-Type:p_w_picpath/gif");
p_w_picpathjpeg($this->img);
}elseif(p_w_picpathtypes() & IMG_JPEG){
header("Content-Type:p_w_picpath/jpeg");
p_w_picpathjpeg($this->img);
}elseif(p_w_picpathtypes() & IMG_JPG){
header("Content-Type:p_w_picpath/jpg");
p_w_picpathjpeg($this->img);
}elseif(p_w_picpathtypes() & IMG_PNG){
header("Content-Type:p_w_picpath/png");
p_w_picpathjpeg($this->img);
}
}
//生成验证码
private function createCode(){
$codes = "23456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ";
$code = "";
for($i=0;$inum;$i++){
$code .=$codes{rand(0,strlen($codes)-1)};
}
return $code;
}
//释放图像资源
function __destruct(){
p_w_picpathdestroy($this->img);
}
}
php高洛峰_PHP 验证码 高洛峰 细说PHP相关推荐
- 洛伦茨曲线半高全宽_合理的半高宽FWHM.PPT
合理的半高宽FWHM * Asymmetry of Fe ? 2007 XPS International LLC * Asymmetry of Fe2O3 ? 2007 XPS Internatio ...
- 《如何发掘高潜力人才-合伙人-阿根廷费洛迪》 读后感
本书主要讲述企业管理-人才的挖掘.培养.全书六章.重点讲述人事决策的内忧外患.选才之难.高潜力人才的应用价值和人才储备的策略.以及如何打造高效的团队.全书从猎头角度分享人才的挖掘.培养高潜力. 1 为 ...
- 全面认识高并发:高性能、高可用、高扩展
Table of Contents 01 如何理解高并发? 02 高并发系统设计的目标是什么? 2.1 宏观目标 2.2 微观目标 ❇ 性能指标 ❇ 可用性指标 ❇ 可扩展性指标 03 高并发的实践方 ...
- 【高并发、高性能、高可用】系统设计经验分享!
知识分享,以技会友.大家好,我是Tom哥.阅读本文大约需要 15 分钟. 软件开发通常会提到一个名词 "三高",即高并发.高性能.高可用. 具体的指标定义,如:高并发方面要求QPS ...
- 高和父元素的高一致_首次:低温熔盐法合成菊花状三维高熵硼化物纳米花 (华南理工大学褚衍辉课题组最新研究成果)...
高熵材料通常是指由四种或四种以上金属或非金属元素组成的多主元固溶体材料,且每一种元素的原子含量在5-35%之间.近年来该材料因具有巨大的组分空间.独特的微观结构以及可调控的物理化学性能而引起国内外研究 ...
- 唱歌如何保持高位置_如何理解歌唱发声的高位置?如何保持高位置歌唱状态?【男高音】...
一.何谓声音的高位置? 高位置是指嗓音的位置和焦点"安放"的一种潜意识形态.对于男高音的歌唱,必须训练歌者在高位置上发声的习惯,熟练运用鼻咽腔和额窦腔的共鸣作用,让歌声进入面罩.获 ...
- linux高端内存申请,Linux高端内存
高端内存是指物理地址大于 896M 的内存. 对于这样的内存,无法在"内核直接映射空间"进行映射. 为什么? 因为"内核直接映射空间"最多只能从 3G 到 4G ...
- Kotlin的高阶函数和常用高阶函数
Kotlin的高阶函数和常用高阶函数 文章来源:企鹅号 - Android先生 高阶函数的定义 将函数当做参数或者是返回值的函数 什么是高阶函数 可以看看我们常用的 函数: 首先我们可以知道, 是 的 ...
- 程序员们的三高:高并发、高性能、高可用
你们知道淘宝,京东这些购物商场吗?他们到了双11,双12为什么能支持全国14亿人口同时购物下单呢,因为他们的程序做到了高并发.高性能.高可用.那么你对程序员的三高了解多少呢? 高并发 一. 高并发 高 ...
最新文章
- Google推荐的15条HTML 5代码军规----来看看你知道几个,我一个都不知道。。。
- C Primer Plus (第五版) 第十章 数组和指针 编程练习
- php水平垂直居中,html水平垂直居中的问题
- sqoop 增量导入,不重复
- 【开源项目】基于FFmpeg的封装格式转换
- 更改matlab默认启动路径
- 如何从头到脚彻底解决一个MySQL Bug
- 信息熵(Information Entropy)
- SAP License:你适合做SAP顾问吗?
- 自驾游,遇陌生夫妻搭车坐了一千多公里,执意要给钱,我能收吗?
- AI2想从常识测试开始让AI理解物理世界,数据集已公布
- jquery dropload
- python中输出语句的怎么写_python的输出语句怎么写
- 病毒分析之伪装360主动防御病毒分析_XiaoBa-20
- 面向对象 重写和重载
- 〖Python〗-- Django基础
- python小乌龟绘制迷宫_python小乌龟turtle数学作图
- python写数学公式大全_数学公式书写
- 4 win10环境下+vs2017+pcl1.9环境配置
- html横向自动滚动代码,不间断无缝滚动代码(横向、竖向)
热门文章
- 微信小程序之校园二手交易系统app毕业设计ssm
- 宜家IKEA EDIFACT PRODAT报文详解
- 如何把一个文件夹的文件分配到多个文件夹
- Unity 六边形地图系列(一) 【笔记】: 创建一个六边形网格
- 八、vue_options之computed、watch属性选项
- 虚幻引擎图文笔记:使用布料模拟(Cloth Simulation)系统制作一面可以随风飘动的旗帜(更新)
- 女人是这样哄的,学以致用
- 设置(改变)eclipse背景颜色
- 锤子发新机了,就在2020年10月21日晚,锤子发版新机坚果R2和配套的TNT扩展本
- 小米路由器安转linux,小米路由器 傻瓜式 一键安装Entware 安装opkg Ⅱ 海量软件随便装...