recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi mon code de vérification n'affiche-t-il qu'un seul numéro ?

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


?>


丫头丫头2413 Il y a quelques jours3023

répondre à tous(5)je répondrai

  • 王承毅

    王承毅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

    répondre
    0
  • 丫头

    C'est ok, merci

    丫头 · 2018-04-22 10:53:02
  • 丫头

    丫头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);


    ?>

    répondre
    0
  • 丫头

    丫头2018-04-21 11:21:00

    TIM图片20180421112016.png

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

    répondre
    1
  • 王承毅

    Il y a une erreur dans votre boucle for, cela devrait être comme ça. pour($i=0;$i<$code_len;$i++){ $rand=mt_rand(0,$chars_len-1);//Supprimer des nombres au hasard $code.=$rand; //Coupez les quatre chiffres retirés ensemble }

    王承毅 · 2018-04-21 12:35:29
  • Annulerrépondre