php 验证码:利用gd库生成验证码,这里生成4位的数字形式的图片验证码:在需要的地方这样调用,路径根据实际情况修改:
<img src="../include/yanzhenma.php " align="absmiddle" border="0" width="57" height="18"/>
yanzhenma.php 的代码:
<?php
session_start();
header("content-type:image/png");//设置创建图像的格式
$image_width=70;//设置图像宽度
$image_height=18;//设置图像高度
for($i=0;$i<4;$i++){//循环输出一个4位的随机数
$new_number.=dechex(rand(0,15));;//随机产生一个0-15之间数,将用dechex将十进制转换为16进制,这样就可以产生字母和数字,共产生4个,存储在num_number中
}
$_SESSION["yanzhenma_session"]=$new_number;//将获取的随机数验证码写入到SESSION变量中,注意是以[](数组)的形式存储,便于比较用户输入是否正确
$num_image=imagecreate($image_width,$image_height);//创建一个画布
imagecolorallocate($num_image,200,200,200);//设置画布的颜色
for($i=0;$i<strlen($_SESSION[yanzhenma]);$i++){//循环读取SESSION变量中的验证码
$font=5;//设置随机的字体类型1-5则使用内置字体
$x=3+$image_width*$i/4;//设置随机字符所在位置的X坐标
$y=2;//设置随机字符所在位置的Y坐标
$color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符的颜色
imagestring($num_image,$font,$x,$y,$_SESSION["yanzhenma_session"][$i],$color);//水平输出字符串
}
imagepng($num_image);//生成PNG格式的图像
imagedestroy($num_image);//释放图像资源
?>
1257

被折叠的 条评论
为什么被折叠?



