您的位置:首页 > 编程语言 > PHP开发

php图片验证码的制作(基础篇)

2009-02-24 22:24 351 查看
参考资料(php100视频-图片验证码的制作)
1.启用GD库
GD库提供了一系列处理图片的API,使用GD库可以对图片进行缩略,生成,加水印等操作
(1)在php.ini中启用GD库
extension=php_gd2.dll
(2)在wampserver中启用GD库
php扩展-php_gd2 打勾

2.GD库部分函数
(1)新建一个真彩色图片-imagecreatetruecolor
imagecreatetruecolor(int x_size,int y_size)//x_size为宽,y_size为高
(2)为一副图片分配颜色-imagecolorallocate
imagecolorallocate(resource image,int red,int green,int blue)
(3)绘图函数-imagestring
imagestring(resource image,font,int x,int y,内容,颜色)

3.随机函数,十六进制函数
(1)rand随机函数
rand([int min,int max])
rand(0,10) 0到10之间的随机数
(2)dechex十进制转换为十六进制
dechex(十进制数)
十六进制1~f

4.GD+session制作PHP验证码

实例操作
步骤:生成随机数-创建图片-随机数写进图片-保存在session中

check.php

<?php
session_start();
for($i=0;$i<4;$i++)
{
//$shui=rand(0,15);
//echo dechex($shui);//dechex函数十六进制可以把十进制转换成字母
$shui.=dechex(rand(1,15));
}
$_SESSION[check_pic]=$shui;
$im=imagecreatetruecolor(100,30);//创建一个真彩色图片,宽100px,高30px

//创建颜色
$bg=imagecolorallocate($im,0,0,0);//第一次用调试板时为背景颜色,000为黑色
$te=imagecolorallocate($im,255,255,255);//255,255,255为白色

//把字符串写在图片左上角
imagestring($im,rand(1,6),rand(3,70),rand(3,10),$shui,$te);

//输出图片
header('Content-type:image/jpeg');
imagejpeg($im);
?>


sub.php


<?php
session_start();
if($_POST['check'])
{
if($_POST['check']==$_SESSION['check_pic'])
{
echo '验证码正确',$_SESSION['check_pic'];
}
else{echo '验证码错误',$_SESSION['check_pic'];}
}
?>
<form action="" method="post">
<img src='check.php'><br/>
<input type="text" name="check" maxlength="4">
<input type="submit" value="提交">
</form>


查看示例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: