php 创建验证码方法
php创建验证码方法:
<?php
function getVerify($length=4,$sessName='verify'){
//验证码
//获取字符串 去除01ol等较难辨认字符
$chars = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
$chars = str_shuffle($chars);
$chars = substr($chars, 0, $length);
//将字符存入session
$_SESSION[$sessName] = $chars;
//定义画布大小
$width = 80;
$height = 30;
$image = imagecreatetruecolor($width, $height);
//定义背景颜色和边框颜色
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
//用填充矩形填充画布
imagefilledrectangle($image, 1, 1, $width-2, $height-2, $white);
//定义验证码颜色
$verifyColor = imagecolorallocate($image, 15, 164, 80);
//将字符写入画布
for($i=0; $i<$length; $i++){
$size = 18;
$angle = mt_rand(-12, 12);
$x = 5 + $i*$size;
$y = 23;
$fontfile = 'GEORGIA.TTF';//字体
$color = $verifyColor;
$text = substr($chars, $i, 1);
imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
}
//干扰点
for($i=0; $i<80; $i++){
imagesetpixel($image, mt_rand(0, $width-1), mt_rand(0, $height-1), $verifyColor);
}
//干扰线
for($i=0; $i<3; $i++){
imageline($image, mt_rand(0, $width-1), mt_rand(0, $height-1), mt_rand(0, $width-1), mt_rand(0, $height-1), $verifyColor);
}
//告诉浏览器输出格式
header("content-type:image/gif");
//输出
imagegif($image);
//销毁,释放内存
imagedestroy($image);
}
php 创建验证码方法的更多相关文章
- oracle创建job方法
oracle创建job方法 alter system enable restricted session;--创建表create table G_TEST ( ID NUMBER(12), ...
- 伪验证码(含随机验证码方法)js+css
HTML----------------------------------------------<!DOCTYPE html><html><head><m ...
- Oracle11g手动创建数据库方法
Oracle11g手动创建数据库方法 参考网页http://www.th7.cn/db/Oracle/201311/36926.shtml 安装路径 我的安装路径是:E:\app\admin\prod ...
- js 创建数组方法以及区别
示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...
- Android Studio当中的创建新方法的快捷键该如何使用?
当有红线出现的时候,我们的代码并没有编译出错,则需要输入alt+enter则可以得到相应的神奇效果了.这个方法我竟然今天才知道,也真是丢脸了.比如说我们书写了一个新的没有创建的方法,我们直接输入alt ...
- 创建线程方法&守护线程
创建线程方法1. class mythread extends Thread{ 重写run方法 } mythread m=new mythread () 启动:m.start() 创建线程方法2. c ...
- 基于PIL模块创建验证码图片
def get_valid_img(request): # 方式2:基于PIL模块创建验证码图片 from PIL import Image, ImageDraw, ImageFont from io ...
- 利用PIL创建验证码
1. 随机生成rgb 元组 def random_RGB(min, max): return tuple([random.randint(min, max) for i in range(3)])2. ...
- PyCharm创建virtualenv方法
Python的版本众多,在加上适用不同版本的Python Package.这导致在同时进行几个项目时,对库的依赖存在很大的问题.这个时候就牵涉到对Python以及依赖库的版本管理,方便进行开发,vir ...
随机推荐
- hdu 4576 (简单dp+滚动数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4576 题意:给出1~n的环,m个操作,每次能顺时针或逆时针走w步,询问最后在l~r这段区间内概率.(1 ...
- 随机场(Random field)
一.随机场定义 http://zh.wikipedia.org/zh-cn/随机场 随机场(Random field)定义如下: 在概率论中, 由样本空间Ω = {0, 1, …, G − 1}n取样 ...
- selenium+python定位元素的方法及使用
selenium的八种定位方法 By.ID 通过id定位 By.CLASS_NAME 通过className定位 By.CSS_SELECTOR 通过CSS定位 By.LINK_TEXT 通过link ...
- 模板:插头dp
前言: 严格来讲有关dp的都不应该叫做模板,因为dp太活了,但是一是为了整理插头dp的知识,二是插头dp有良好的套路性,所以姑且还叫做模板吧. 这里先推荐一波CDQ的论文和这篇博客http://www ...
- 用Python实现的数据结构与算法:快速排序
一.概述 快速排序(quick sort)是一种分治排序算法.该算法首先 选取 一个划分元素(partition element,有时又称为pivot):接着重排列表将其 划分 为三个部分:left( ...
- Backbone前端开发流程及规范
定好View 首先,根据页面切分View,切分View的规则是将重复利用的视图或者功能相近的视图归于一个View,对于Backbone,每一个model都要对应一个View.父层View负责布局,并将 ...
- 数据库之SQLite的介绍与使用20180705
一.SQLite 简介 1.介绍 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌 ...
- jsp的四大作用域
http://lavasoft.blog.51cto.com/62575/275586/ jsp中四个作用域的区别 JSP内置对象作用域表 名称 作用域 application 在所有应用程序中有效, ...
- CentOS7.3 部署Haproxy 1.7.2
haproxy:http://www.haproxy.org/ 本文涉及haproxy的安装,并做简单配置. 一.环境准备 1. 操作系统 CentOS-7-x86_64-Everything-151 ...
- 阿里云上部署了zabbix,突然无法收到报警邮件的解决办法
在阿里云上部署了zabbix,一直能正常接收到zbx发来的报警邮件(报警邮箱是163的),不知是什么原因,突然无法接收到报警邮件了. 但在服务器上手动执行echo "hello"| ...