セッションを開かなくても効果はこれです(認証コードの画像は正常に表示できます)
#これはセッションを開いた後の効果です (画像は表示されません)
##---------------------------- -- ------------------------------------------
謹んでソース コードを示します
-------------- --- ----------------
<?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, $高さ/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 );
?>
一時ファイルは自動的に削除されるはずですよね?
さらに、データベースストレージセッションも考慮することができます?
あなたは今、何か問題が起こったことに対処していないと思います。まずは簡単な画像検証から始めて考えてみることをお勧めします。これは非常に必要なことです。他の無駄なコードを削除してください。すでに登録されており、ユーザーパスワードが確認されています。この写真の SESSION 問題だけを試してみましょう。隠しドメインを登録する必要がありますか?