Maison > Questions et réponses > le corps du texte
//Mon code pour cette leçon est comme ceci. Je l'ai vérifié plusieurs fois et je n'ai vu aucune erreur, mais le code de vérification affiché n'a qu'un seul numéro... Pourquoi cela se produit-il ? Veuillez me donner quelques conseils
<?php
//L'arrière-plan pour générer le code de vérification
header('Content-type:image/jpeg');
//La taille de l'image d'arrière-plan
$width=60;
$height=15 ;
//Créer une toile
$img=imagecreatetruecolor($width, $height);
//Attribuer une couleur
$white=imagecolorallocate($img, 0xff, 0xff, 0xff);
//Remplir la couleur Vers le canevas
imagefill($img, 0, 0, $white);
//Générer la valeur du code de vérification
$chars='1234567890';
$chars_len=strlen( $chars);
$code_len =4;//Longueur du code de vérification
$code="";//Valeur initiale
pour ($i=1; $i < $code_len; ++$i) {
$rand=mt_rand(0 ,$chars_len-1);//Sortez quatre numéros au hasard
$code=$rand;//Connectez les numéros pris ensemble
}
//Enregistrez-les dans la session et utilisez la vérification
session_start() ;
$_SESSION['ver_code']=$code;
//Attribuez aléatoirement la couleur de la chaîne
$str_color=imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand (0,255));
//Calculer l'affichage central de la chaîne
//La taille de la chaîne
$font=5;
//Taille du canevas
$img_w=imagesx($img);
$img_h=imagesy($img) ;
//Taille de la police
$font_w=imagefontwidth($font);
$font_h=imagefontheight($font);
//Taille de la chaîne
$code_w=$ font_w*$code_len;
$ code_h=$font_h;
$x=($img_w-$code_w)/2;
$y=($img_h-$code_h)/2;
//Sortie de la vérification code sur le canevas
imagestring( $img, $font, $x, $y, $code, $str_color);
//Sortie directe
imagejpeg($img);
imagedestroy($img);
?>
王承毅2018-04-21 12:33:36
for($i=0;$i<$code_len;$i++){
$rand=mt_rand(0,$chars_len-1);//Sortez des nombres au hasard
$code.=$rand; Will Les quatre chiffres retirés sont assemblés
}
Il vous manque un connecteur
丫头2018-04-21 11:28:11
<?php
//L'arrière-plan pour générer le code de vérification
header('Content-type:image/jpeg');
//La taille de l'image d'arrière-plan
$width=60;
$height=15 ;
//Créer une toile
$img=imagecreatetruecolor($width, $height);
//Attribuer une couleur
$white=imagecolorallocate($img, 0xff, 0xff, 0xff);
//Remplir la couleur Vers le canevas
imagefill($img, 0, 0, $white);
//Générer la valeur du code de vérification
$chars='1234567890';
$chars_len=strlen($ chars);
$code_len =4;//Longueur du code de vérification
$code="";//Valeur initiale
pour ($i=1; $i < $code_len; ++$i) {
$rand=mt_rand(0 ,$chars_len-1);//Sortez quatre numéros au hasard
$code.=$rand;//Connectez les numéros pris ensemble
}
//Enregistrez-les dans la session et vérifiez avec
session_start( );
$_SESSION['ver_code']=$code;
//Attribuez aléatoirement la couleur de la chaîne
$str_color=imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand (0,255));
//Calculer l'affichage central de la chaîne
//La taille de la chaîne
$font=5;
//Taille du canevas
$img_w=imagesx($img);
$img_h=imagesy($img );
//Taille de la police
$font_w=imagefontwidth($font);
$font_h=imagefontheight($font);
//Taille de la chaîne
$code_w=$ font_w*$code_len;
$code_h=$font_h;
$x=($img_w-$code_w)/2;
$y=($img_h-$code_h)/2;
//Sortie de la vérification code sur le canevas
imagestring ($img, $font,$x.$y.$code,$str_color);
//Sortie directe
imagejpeg($img);
imagedestroy($img);
?>