php5 图片验证码实现代码

 更新时间:2009年12月11日 16:01:44   作者:  
php5 图片验证码,需要的朋友可以参考下。
GD库的函数
1,imagecreatetruecolor -----创建一个真彩色的图像
imagecreatetruecolor(int x_size,int y_size) //x表示宽,y表示高
2,imagecolorallocate 为一幅图像分配颜色(调色板)
imagecolorallocate(resource image,int red,int green,int blue)//red,green,blue----三原色
3,imagestring 绘图函数
iamgestring(resource image,font,int x,int y,内容,颜色);
4,输出函数
php的header是定义头的动作,php5中支持3中类型:
1,Content-type:xxxx/yyyy
2,Location:xxxx:yyyy/zzzz
3,Status:nnn xxxxxx
xxxx/yyyy表示内容文件的类型
如:image/gif
image/jpeg
image/png
例子:header("Content-type:image/jpeg")
GD库中有对应的image类型
imagejpeg(),imagegif(),imagepang()
5,imageline画线函数
iamgeline(resource image,int x1,int y1,int x2,int y2,int color);
image ---图片
x1 ---启始坐标
y1
x2 ---终点坐标
y2
6,imagesetpixel画点函数
imagesetpixel(resource image,int x,int y,int color)
7,imagettftext带字体的写入函数
imagettftext(resource image,float size,float angle,int x,int y,int color,string fontfile,string text)
8,php验证码插入中文的方法
iconv("gb2312","utf-8","字符串"); //首先要将文字转换成utf-8格式
9,随机函数
1,rand([int min,int max]) //rand(1,4) 生成1-4的数
2, dechex(十进制数) //转换为十六进制
做验证码的步骤:
生成随机数 -- 创建图片 -- 随机数写成图片 --保存在session中
输入验证码例子
gdchek.php
复制代码 代码如下:

<?php
/*
* 生成图片验证码
* and open the template in the editor.
*/
session_start();
for($i=0;$i<4;$i++){
$rand.=dechex(rand(1,15)); //生成4位数包含十六进制的随机数
}
$_SESSION[check_gd]=$rand;
$img=imagecreatetruecolor(100,30); //创建图片
$bg=imagecolorallocate($img,0,0,0); //第一次生成的是背景颜色
$fc=imagecolorallocate($img,255,255,255); //生成的字体颜色
//给图片画线
for($i=0;$i<3;$i++){
$te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imageline($img,rand(0,15),0,100,30,$te);
}
//给图片画点
for($i=0;$i<200;$i++){
$te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($img,rand()%100,rand()%30,$te);
}
//首先要将文字转换成utf-8格式
//$str=iconv("gb2312","utf-8","呵呵呵");
//加入中文的验证
//smkai.ttf是一个字体文件,为了在别人的电脑中也能起到字体作用,把文件放到项目的根目录,可以下载,还有本机C:\WINDOWS\Fonts中有
imagettftext($img,11,10,20,20,$fc,"simkai.ttf","你好你好");
//把字符串写在图片中
//imagestring($img,rand(1,6),rand(3,70),rand(3,16),$rand,$fc);
//输出图片
header("Content-type:image/jpeg");
imagejpeg($img);
?>

login.php
复制代码 代码如下:

<?php
/*
*
*
*/
session_start();
if($_POST[sub]){
//判断验证码是否相同
if($_POST[gd_pic]==$_SESSION[check_gd]){
echo "验证成功!";
}else{
echo "验证码错误";
}
}
?>
<form action="login.php" method="POST">
用户名:<input type="text" name="user"/><br>
密码:<input type="password" name="pwd"/><br>
验证码:<imput type="text" name="gd_pic"/><img src="gdchek.php"><br>
<imput type="submit" name="sub" value="submit"/>
</form>

相关文章

  • php at(@)符号的用法简介

    php at(@)符号的用法简介

    对于php的初学者,经常会看到在一个函数名字前面有一个at(@)符号,但是不知道它的作用和用法,去掉后好像对程序没有什么影响,感到很困惑,简单的说@可以忽略错误,有仰制错误的功能为错误控制操作符.
    2009-07-07
  • php实现图片以base64显示的方法

    php实现图片以base64显示的方法

    这篇文章主要介绍了php实现图片以base64显示的方法,较为详细的分析了base64编码格式显示图片的相关实现技巧与注意事项,需要的朋友可以参考下
    2016-10-10
  • PHP中时间处理类Carbon的用法详解

    PHP中时间处理类Carbon的用法详解

    Carbon 是php的日期处理类库(A simple PHP API extension for DateTime.),继承了PHP的 Datetime 类。本文将详细讲解一下该类的使用,需要的可以参考一下
    2022-05-05
  • PHP基于curl post实现发送url及相关中文乱码问题解决方法

    PHP基于curl post实现发送url及相关中文乱码问题解决方法

    这篇文章主要介绍了PHP基于curl post实现发送url及相关中文乱码问题解决方法,结合具体实例形式分析了php使用curl实现post数据发送及content-type相关设置操作技巧,需要的朋友可以参考下
    2017-11-11
  • 自动生成文章摘要的代码[PHP 版本]

    自动生成文章摘要的代码[PHP 版本]

    自动生成文章摘要的代码[PHP 版本]...
    2007-03-03
  • php 获取页面中指定内容的实现类

    php 获取页面中指定内容的实现类

    本文为大家下使用php如何获取页面中的指定内容,而且以封装成类,需要的朋友可以参考下本文
    2014-01-01
  • 使用PHP实现生成HTML静态页面

    使用PHP实现生成HTML静态页面

    在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法。
    2015-11-11
  • PHP之autoload运行机制实例分析

    PHP之autoload运行机制实例分析

    这篇文章主要介绍了PHP的autoload运行机制分析,从PHP源码及应用的角度对autoload进行了较为深入的分析,需要的朋友可以参考下
    2014-08-08
  • php使用Jpgraph绘制饼状图的方法

    php使用Jpgraph绘制饼状图的方法

    这篇文章主要介绍了php使用Jpgraph绘制饼状图的方法,实例分析了Jpgraph通过PieGraph实现饼状图的技巧,需要的朋友可以参考下
    2015-06-06
  • php上传大文件失败的原因及应对策略

    php上传大文件失败的原因及应对策略

    这篇文章主要介绍了php上传大文件失败的原因及应对策略的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-10-10

最新评论