首页 >PHP讨论组 >图片验证码使用session以后报错

图片验证码使用session以后报错图片验证码使用session以后报错

这是没开session的效果(可以正常显示验证码的图片)

---------------------------华丽丽的分割线------------------------------------------


这是打开session以后的效果(没有图片显示)


----------------------------------------------------------------------------

请问这是为什么

源码敬上

----------------------------------

<?php

session_start();

$width = 300;

$height = 100;

$img = imagecreatetruecolor($width,$height);

$white = imagecolorallocate($img, 255, 255, 255);

$red = imagecolorallocate($img, 255, 0, 0);

imagefilledrectangle($img, 0, 0, $width, $height, setColor($img));

function setColor($img)

{

return imagecolorallocate($img,getColor(),getColor(),getColor());

}

function getColor()

{

return mt_rand(0,255);

}

function setNum($a,$b)

{

return mt_rand($a,$b);

}

function getCode()

{

return $string = join('',array_rand(array_flip(array_merge(range(0,9),range('a','z'),range('A','Z'))),4));

}

$str = getCode();

$_SESSION['verifycode'] = $str;

for($i=0;$i<4;$i++)

{

$size = setNum(20,50);

$angle = setNum(-15,15);

$x = ($width/4)*$i+mt_rand(1,9);

$y = mt_rand(($height/2),$height);

$color = setColor( $img );

$fontfile = './fonts/MSYH.ttf';

$text = mb_substr(getCode(),$i,1,'utf-8');

imagettftext($img, $size, $angle, $x, $y, $color, $fontfile, $text);

}

for($i=0;$i<1500;$i++)

{

imagesetpixel($img, mt_rand(0, $width), mt_rand(0, $height), setColor($img));

}

for($i=0;$i<3;$i++)

{

imageline($img, mt_rand(0, $width), mt_rand(0,$height), mt_rand(0, $width), mt_rand(0,$height), setColor($img));

}

for($i=0;$i<3;$i++)

{

$cx = mt_rand(0, $width);

$cy = mt_rand(0, $height);

$width = mt_rand(0, $width/2);

$height = mt_rand(0, $height/2);

$start = mt_rand(0, 360);

$end = mt_rand(0, 360);

$color = setColor($img);

imagearc($img, $cx, $cy, $width, $height, $start, $end, $color);

}

header('content-type:image/jpeg');

imagejpeg( $img );

imagedestroy( $img );

?>



 
2
 
+1
-1
 
分享
全部回复 (2)我来回答
    直奔十维
    2楼
    直奔十维 · 2个月前

    应该是会自动删除的吧?临时文件.
    另外你也可以考虑数据库存储session 啊?

      赞+0添加回复

    钟毅
    1楼
    钟毅 · 2个月前

    我想你现在不是要处理已经出错的问题。建议你是先从,简单的图片验证先做想。这个很有必要的。就是去除其它的无用代码。已经注册及验证用户密码。单独来试这个图片SESSION的问题。你要注册是否需要隐藏域。

      赞+0添加回复

    首页上一页1下一页尾页