php画图应用之验证码
在画图里面,就像之前所说的。php的画图是真正动态画图,尽管自己承认会出的图是非常不好看的。但我们主要关注的应该还是数据处理。
验证码我们差点儿无处不见,它的产生和画图技术是密不可分的。事实上,简单的验证码绘制出来是非常easy的,就像以下的一段代码就能够绘制出包括字母和数字的元素:
<?php
$checkCode="";
for($i=0; $i<=3;$i++){
$checkCode.=dechex(rand(1,15));
}
session_start();
$_SESSION['checkCode']=$checkCode;
//建立画布
$img_1=imagecreatetruecolor(110, 30);
$red=imagecolorallocate($img_1, 255, 0, 0);
imagestring($img_1, 5, 0, 0, $checkCode, $red);
header("Content-type: image/png");
imagepng($img_1);
imagedestroy($img_1);
? >
上面的代码仅仅是简单的说了一下验证码的绘制。事实上代码方面并没有进行安全处理。
以下是相对的把验证码处理的相对复杂了一些:
<?php
$checkCode="";
for($i=0; $i<=3;$i++){
$checkCode.=dechex(rand(1,15));
}
session_start();
$_SESSION['checkCode']=$checkCode;
//建立画布
$img_1=imagecreatetruecolor(70, 40);
//必须是先创建画布。在创建颜色。
$red=imagecolorallocate($img_1, rand(0,255), rand(0,255), rand(0,255)); for($k=0; $k<=20; $k++){
imageline($img_1, rand(0,50),rand(0,30),0,0,0,0, imagecolorallocate($img_1, rand(0,255), rand(0,255), rand(0,255)));
}
imagestring($img_1, rand(3,7), rand(0,40), rand(0,20), $checkCode, $red);
header("Content-type: image/png");
imagepng($img_1);
imagedestroy($img_1);
?>
php画图应用之验证码的更多相关文章
- php笔记之GD库图片创建/简单验证码
燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.in ...
- .net点选验证码实现思路分享
哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类 ...
- ASP.NET中画图形验证码
context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天 ...
- MVC 验证码实现( 简易版)
现在网站上越来越多的验证码,使用场景也是越来越多,登陆.注册.上传.下载...等等地方,都有可能大量使用到验证码,那么制作验证码到底有多简单呢?我们一起来看下最简易版的验证码实现过程- 验证码的基本步 ...
- SSH实战 · SSH项目中怎么玩验证码
大致思路与之前servlet中玩验证码类似,生成随机数,产生干扰线,画到图片上,保存到session中. 本人习惯用的时候专门写一个验证码的action:CheckImgAction. step1: ...
- java制作验证码
建立一个web工程
- php基础之gd图像生成、缩放、logo水印和简单验证码实现
gd库是php最常用的图片处理库之一(另外一个是imagemagick),可以生成图片.验证码.水印.缩略图等等.要使用gd库首先需要开启gd库扩展,windows系统下需要在php.ini中将ext ...
- ASP.NET知识总结(6.一般处理程序动态处理图片(验证码、水印、缩略图))
->使用GDI+完成图片的处理,需要引入程序集System.Drawing ->GDI+的基本处理模型 <1>创建画布Bitmap <2>创建画图工具对象Graph ...
- Java实现验证码制作之一自己动手
以前弄验证码都是现找现用,下面是自己跟着敲代码弄好的,记录一下,分享给大家. 我这里用的是Servlet ,Servlet代码如下 import java.awt.Color;import java. ...
随机推荐
- awk 精彩文章
https://coolshell.cn/articles/9070.html 我从netstat命令中提取了如下信息作为用例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- IntelliJ IDEA Mac破解教程
1.将下面的文件下载并放置到: 下载地址: http://idea.lanyus.com/jar/JetbrainsCrack-2.6.10-release-enc.jar 放到: /Applicat ...
- [BZOJ 2756] 奇怪的游戏
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2756 Algorithm: 比较新颖的题目 首先发现是对矩阵中相邻两数进行操作 & ...
- 【莫队算法】URAL - 2080 - Wallet
http://www.cnblogs.com/icode-girl/p/5783983.html 要注意卡片没有都被使用的情况. #include<cstdio> #include< ...
- python3开发进阶-Djamgo框架中的JSON和AJAX
阅读目录 什么是JSON 什么是AJAX AJAX常见的应用情景 jQery实现AJAX AJAX请求如何设置csrf_token AJAX上传文件 补充Django内置的serializers 一. ...
- Java学习笔记(6)
java是面向对象的语言. 对象:真实存在的唯一的事物. 类:实际就是对某种类型事物的共性属性与行为的抽取 面向对象的计算机语言的核心思想:找适合的对象做适合的事情. 如何找适合的对象呢: 1.sun ...
- iOS开发——使用Autolayout生成动态高度的TableViewCell单元格
步骤一.TableViewCell中使用Autolayout 要点:Cell的高度必须在Constraints中指明,但不能定死,需要让内部由内容决定高度的View决定动态高度. 如UILabel设置 ...
- [功能]点击ImageView进入页面,时间响应者链实现
app点击一个按钮跳转到另外一个控制器非常常用,但是如果是点击的是UIImageView如何通过模态视图进入另外一个控制器呢?万一这个UIImageView在自定义的cell或者view里面,那该如何 ...
- csharp 面向对象编程
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shap ...
- http://www.ablanxue.com/shtml/201411/25904_1.shtml
http://www.ablanxue.com/shtml/201411/25904_1.shtml