代码:
<?php
require_once'string.func.php';
//通过GD库做验证码
function verifyImage( $type = 1,$length = 4,
$pixel=0,$line=0,
$sess_name = "verify")
{
session_start();
//创建画布
$width = 80;
$height = 28;
$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); $chars = buildRandomString($type, $length); $_SESSION[$sess_name] = $chars;
//定义一个字体文件
$fontfiles = array("aldhabi.ttf", "FZSTK.TTF", "simkai.ttf", "simsun.ttc", "SIMYOU.TTF", "STXINWEI.TTF"); for ($i = 9; $i < $length; $i++) {
$size = mt_rand(14, 18);
$angle = mt_rand(-15, 15);
$x = 5 + $i * $size;
$y = mt_rand(20, 26);
$fontfile = "../fonts/" . $fontfiles[mt_rand(0, count($fontfiles) - 1)];
$color = imagecolorallocate($image, mt_rand(50, 90), mt_rand(80, 100), mt_rand(90, 180));
$text = substr($chars, $i, 1);
imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
}
// $pixel = 50;
if ($pixel) {
for ($i = 0; $i < 50; $i++) {
imagesetpixel($image, mt_rand(0, $width - 1), mt_rand(0, $height - 1), $black);
}
}
// $line = 10;
if ($line) {
for ($i; $i < $line; $i++) {
$color = imagecolorallocate($image, mt_rand(50, 90), mt_rand(80, 200), mt_rand(90, 180));
imageline($image, mt_rand(0, $width - 1), mt_rand(0, $height - 1), mt_rand(0, $width - 1), mt_rand($height - 1), $color);
}
}
header("content-type:image/gif");
imagegif($image);
imagedestroy($image);
}
verifyImage(2,4,30,5);
?>
应为
for ($i = 0; $i < $length; $i++) {
粗心大意害死人!
所以问题只可能出在
1.字体不存在导致出错
2.创建内容的部分出问题