Pourquoi mon code de vérification n'affiche-t-il qu'un seul numéro ?
丫头
丫头 2018-04-21 11:01:31
0
5
3040

//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);


?>


丫头
丫头

好好学PHP。

répondre à tous(3)
王承毅

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

  • répondre C'est ok, merci
    丫头 auteur 2018-04-22 10:53:02
丫头

<?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);


?>

丫头

TIM图片20180421112016.png

Après l'avoir changé en ceci, il deviendra 3 chiffres...

  • répondre Il y a une erreur dans votre boucle for, cela devrait être comme ça. pour($i=0;$i&lt;$code_len;$i++){ $rand=mt_rand(0,$chars_len-1);//Supprimer des nombres au hasard $code.=$rand; //Coupez les quatre chiffres retirés ensemble }
    王承毅 auteur 2018-04-21 12:35:29
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal