C'est l'effet sans ouvrir la session (l'image du code de vérification peut être affichée normalement)
C'est l'effet après l'ouverture de la session (aucune photo affichée)
--------- - ------------------------------------------------- - ----------------
Excusez-moi, pourquoi est-ce
Code source respectueusement
-------------- -- ------------------
session_start();
$largeur = 300;
$hauteur = 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;
pour($i= 0; $i<4;$i++)
{
$size = setNum(20,50);
$angle = setNum(-15,15);
$x = ($largeur/4)* $i +mt_rand(1,9);
$y = mt_rand(($hauteur/2),$hauteur);
$color = setColor( $img );
$fontfile = './fonts/MSYH .ttf ';
$text = mb_substr(getCode(),$i,1,'utf-8');
imagettftext($img, $size, $angle, $x, $y, $color, $ fichier de police, $text);
}
for($i=0;$i<1500;$i++)
{
imagesetpixel($img, mt_rand(0, $width), mt_rand(0, $height), setColor($img));
}
pour($i=0;$i<3;$i++)
{
imageline($img, mt_rand(0, $width), mt_rand(0,$height), mt_rand(0, $ largeur), mt_rand(0,$hauteur), setColor($img));
}
pour($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 );
?>
Il devrait être automatiquement supprimé, n'est-ce pas ? Fichiers temporaires.
De plus, vous pouvez également envisager une session de stockage dans la base de données ?
Je suppose que vous n’êtes pas confronté à quelque chose qui a mal tourné maintenant. Il est recommandé de commencer par une simple vérification d’image et d’y réfléchir d’abord. C'est très nécessaire. Supprimez simplement les autres codes inutiles. Mot de passe utilisateur déjà enregistré et vérifié. Essayons ce problème de SESSION d'images seul. Avez-vous besoin d'enregistrer un domaine caché ?