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

Pourquoi l'image ne s'affiche-t-elle pas lors de l'utilisation de la fonction GD2 pour générer un code de vérification à 4 chiffres ?


<?php
session_start();
header("content-type:image/png"); //Définissez le format de l'image créée
$image_width=70; largeur de l'image
$image_height=18; //Définissez la hauteur de l'image
srand(microtime()*100000); //Définissez la graine du nombre aléatoire
pour($i=0;$i<4;$i++){ //Boucle pour générer un nombre aléatoire à 4 chiffres
$new_number.=dechex(rand(0,15));
}
$_SESSION[check_checks]=$new_number; //Écrivez le code de vérification du nombre aléatoire obtenu dans la variable SESSION

$num_image =imagecreate($image_width,$image_height); //Créer un canevas
imagecolorallocate($num_image,255,255,255); //Définir la couleur du canevas
pour($i=0;$i<strlen($ _SESSION[check_checks]); $i++){ //Boucle pour lire le code de vérification dans la variable SESSION
$font=mt_rand(3,5),mt_rand(0,200)); de caractères
imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color); //Sortie des caractères horizontalement A}
ImagePng ($ NUM_IMAGE); du format PNG
ImageDestroy ($ num_image); // Libérer les ressources image
& Gt;

S.LS.L2586 Il y a quelques jours1225

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

  • 风豆丁

    风豆丁2017-08-22 17:08:36

    Il y a de nombreuses erreurs dans votre code.

    Commentez d'abord header("content-type:image/png"); et traitez d'abord l'erreur.

    Généralement, l'en-tête est placé au-dessus de la fonction imagepng() qui génère des images, afin que les erreurs puissent être facilement ajustées.

    répondre
    0
  • S.L

    Ce code a été copié du didacticiel, il devrait donc être correct. Cela ne fonctionne pas selon votre méthode et l'erreur suivante se produit : ( ! ) Remarque : variable non définie : new_number dans D:wamp64wwwlianxichecks.php à la ligne 7 Pile d'appels # Emplacement de la fonction de mémoire de temps 1 0,0007 244832 {principal}( ) ...checks.php:0

    S.L · 2017-08-22 23:22:07
    风豆丁

    Donnez à $num_number une valeur initiale avant la boucle for, et l'indice $_SESSION doit être une chaîne. Changez-le simplement comme suit. session_start(); header("content-type:image/png"); //Définir le format de l'image créée $image_width=70; //Définir la largeur de l'image $image_height=18; //Définir la hauteur de l'image srand(microtime()*100000); //Définit la graine du nombre aléatoire $nouveau_numéro = ''; for($i=0;$i<4;$i++){ //Boucle pour générer un nombre aléatoire à 4 chiffres $nouveau_numéro .= dechex(rand(0,15)); } $_SESSION['check_checks']=$new_number; //Écrivez le code de vérification du nombre aléatoire obtenu dans la variable SESSION $num_image=imagecreate($image_width,$image_height); //Créer un canevas imagecolorallocate($num_image,255,255,255); //Définit la couleur du canevas for($i=0;$i

    风豆丁 · 2017-08-23 22:23:48
  • Annulerrépondre