IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Wamp php gd2 [Wamp]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut Wamp php gd2
    Bonjour,

    J'ai écris un code anti-bots qui fonctionne avec EasyPHP. J'ai migré vers Wamp (1.6.6.) et le code ne fonctionnait plus.

    Lors de l'exécution du script sous Wamp aucune erreur n'est retournée, cependant l'image n'est pas crée.

    Je crée l'image dans le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
    	<td><p>Retaper le code de l'image ci-dessous<br /><img src="img_verif.php" alt="image aleatoire" /></p></td>
    	<td><p><input type="text" name="image" size="20" /> *</p></td>
    </tr>
    Je vérifie que le code est correct dans le formulaire_send :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $image = strtoupper(htmlentities($_POST['image']));
    if($image == $_SESSION['nbr_aleatoire']) // si on a bien recopié le code de l'image
    {
    [...]
    Voici le code de la page (img_verif.php) qui crée l'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?
    header ("Content-type: image/png"); // on crée img png
    session_start();
     
    $liste = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
    $code = ''; // On créé une variable $code
    $nbr_aleatoire = NULL;
    while(strlen($nbr_aleatoire) != 5) {
            $nbr_aleatoire .= $liste[rand(0,37)]; 
    }
     
    $_SESSION['nbr_aleatoire'] = $nbr_aleatoire;
     
    $image = imagecreate(88,31);
     
    // premiere couleur --> fond de l'image
    $blanc = imagecolorallocate($image, 255, 255, 255);
    $noir = imagecolorallocate($image, 0, 0, 0);
    $gris = imagecolorallocate($image, 200, 200, 200);
    $gris_fonce = imagecolorallocate($image, 87, 87, 87);
     
    // On charge d'abord les images
    $source = imagecreatefrompng("img_verif.png"); //le logo est la source
    $destination = $image; // destination
     
    // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
    $largeur_source = imagesx($source);
    $hauteur_source = imagesy($source);
    $largeur_destination = imagesx($destination);
    $hauteur_destination = imagesy($destination);
     
    // On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
    $destination_x = $largeur_destination - $largeur_source;
    $destination_y =  $hauteur_destination - $hauteur_source;
     
    // On met le logo (source) dans l'image de destination (la photo)
    imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 30);
     
    imagestring($image, 4, 23, 8, "$nbr_aleatoire", $noir); // imagestring($image, $police(taille 1-5), $x, $y, $texte_a_ecrire, $couleur);
     
    ImageRectangle ($image, 0, 0, 87, 30, $gris_fonce); //ImageRectangle ($image, $x1, $y1, $x2, $y2, $couleur);
     
    imagepng($image); // affichage de l'image
     
    ?>
    Pour information, j'ai bien activé l'extension php_gd2 sous Wamp.

    D'avance merci pour vos réponses.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    Fais un petit print_r(gd_info()); pour savoir s'il supporte le png...

  3. #3
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Avec print_r(gd_info()) Wamp me renvoie :

    Citation Envoyé par Wamp
    Array ( [GD Version] => bundled (2.0.28 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => [XBM Support] => 1 [JIS-mapped Japanese Font Support] => )
    J'imagine que ça veut dire qu'il supporte bien le PNG.

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    euh, vu que t'es en développement, je suppose, il faudrait que tu mettes dans tu php.ini la variable de configuration error_reporting à E_ALL, si ca n'est pas déjà fait. On saura au moins pourquoi il ne veut pas faire son boulot...

  5. #5
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    J'ai rajouté error_reporting = E_ALL dans php.ini.

    Mais il n'affiche que des warning concernant les requêtes mysql_query ...

    Mais rien concernant les images

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    Normal, ...
    Enlève le header du fichier de l'image, et appelle le directement pour avoir les erreurs...

  7. #7
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Citation Envoyé par Sékiltoyai
    Enlève le header du fichier de l'image
    J'ai supprimé header ("Content-type: image/png"); d'img_verif.php

    Citation Envoyé par Sékiltoyai
    appelle le directement pour avoir les erreurs...
    Je ne comprends pas ce que tu entends par appeler directement ... j'ai donc fait de différentes manière :

    1) Je l'appel comme ça depuis le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="img_verif.php" alt="image aleatoire" />
    2) Je lance le fichier img_verif.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .../index.php?page=img_verif
    Dans ce cas là, j'ai une partie du code source qui s'affiche :

    fond de l'image $blanc = imagecolorallocate($image, 255, 255, 255); $noir = imagecolorallocate($image, 0, 0, 0); $gris = imagecolorallocate($image, 200, 200, 200); $gris_fonce = imagecolorallocate($image, 87, 87, 87); // On charge d'abord les images $source = imagecreatefrompng("img_verif.png"); //le logo est la source $destination = $image; // destination // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_destination = imagesx($destination); $hauteur_destination = imagesy($destination); // On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo $destination_x = $largeur_destination - $largeur_source; $destination_y = $hauteur_destination - $hauteur_source; // On met le logo (source) dans l'image de destination (la photo) imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 30); imagestring($image, 4, 23, 8, "$nbr_aleatoire", $noir); // imagestring($image, $police(taille 1-5), $x, $y, $texte_a_ecrire, $couleur); ImageRectangle ($image, 0, 0, 87, 30, $gris_fonce); //ImageRectangle ($image, $x1, $y1, $x2, $y2, $couleur); imagepng($image); // affichage de l'image ?>
    Malgré tout ça, je n'ai pas d'erreurs concernant l'image.

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    Non tu appelles le script par http://localhost/chemin/img_verif.php, et tu regarde ce qu'il retourne...

  9. #9
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    C'est ce que j'ai fait, mais il me renvoit ça comme texte :

    fond de l'image $blanc = imagecolorallocate($image, 255, 255, 255); $noir = imagecolorallocate($image, 0, 0, 0); $gris = imagecolorallocate($image, 200, 200, 200); $gris_fonce = imagecolorallocate($image, 87, 87, 87); // On charge d'abord les images $source = imagecreatefrompng("img_verif.png"); //le logo est la source $destination = $image; // destination // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_destination = imagesx($destination); $hauteur_destination = imagesy($destination); // On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo $destination_x = $largeur_destination - $largeur_source; $destination_y = $hauteur_destination - $hauteur_source; // On met le logo (source) dans l'image de destination (la photo) imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 30); imagestring($image, 4, 23, 8, "$nbr_aleatoire", $noir); // imagestring($image, $police(taille 1-5), $x, $y, $texte_a_ecrire, $couleur); ImageRectangle ($image, 0, 0, 87, 30, $gris_fonce); //ImageRectangle ($image, $x1, $y1, $x2, $y2, $couleur); imagepng($image); // affichage de l'image ?>

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    Demande lui la source html et colle la en code ici...
    joint aussi ton php.ini que je vérifie un truc :-/

  11. #11
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Merci Sékiltoyai de l'aide que tu m'apporte et pour ta patience !!!

    Voici le code html de la page générée en lancant : http://localhost/chemin/img_verif.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?
    header ("Content-type: image/png"); // on crée img png
    session_start();
     
    $liste = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
    $code = ''; // On créé une variable $code
    $nbr_aleatoire = NULL;
    while(strlen($nbr_aleatoire) != 5) {
            $nbr_aleatoire .= $liste[rand(0,37)]; 
    }
     
    $_SESSION['nbr_aleatoire'] = $nbr_aleatoire;
     
    $image = imagecreate(88,31);
     
    // premiere couleur --> fond de l'image
    $blanc = imagecolorallocate($image, 255, 255, 255);
    $noir = imagecolorallocate($image, 0, 0, 0);
    $gris = imagecolorallocate($image, 200, 200, 200);
    $gris_fonce = imagecolorallocate($image, 87, 87, 87);
     
    // On charge d'abord les images
    $source = imagecreatefrompng("img_verif.png"); //le logo est la source
    $destination = $image; // destination
     
    // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
    $largeur_source = imagesx($source);
    $hauteur_source = imagesy($source);
    $largeur_destination = imagesx($destination);
    $hauteur_destination = imagesy($destination);
     
    // On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
    $destination_x = $largeur_destination - $largeur_source;
    $destination_y =  $hauteur_destination - $hauteur_source;
     
    // On met le logo (source) dans l'image de destination (la photo)
    imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 30);
     
    imagestring($image, 4, 23, 8, "$nbr_aleatoire", $noir); // imagestring($image, $police(taille 1-5), $x, $y, $texte_a_ecrire, $couleur);
     
    ImageRectangle ($image, 0, 0, 87, 30, $gris_fonce); //ImageRectangle ($image, $x1, $y1, $x2, $y2, $couleur);
     
    imagepng($image); // affichage de l'image
     
    ?>
    Le fichier php.ini est en pièce jointe; que j'ai renommé en php.txt vu que le forum n'accepte pas l'upload de fichiers en .ini ...
    Fichiers attachés Fichiers attachés

  12. #12
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    bon, c'est bien ce que je pensais, ...
    Il faut soit que tu passe tous tes tags de <? à <?php, ce qui est une excellente habitude pour éviter les confusions entre php et autres langages (xml par exemple), soit que tu passe la directive short_open_tag à On dans ton php.ini, soit les deux. Personnellement, je te conseillerais la première solution, question de rigueur...

  13. #13
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Merci pour ton aide Sékiltoyai !

    Maintenant tout fonctionne correctement.

    Bon développement à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment installer php-gd2
    Par débutant11 dans le forum Debian
    Réponses: 9
    Dernier message: 17/09/2009, 15h39
  2. [Wamp] Problem WAMP php
    Par nitteN dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/05/2008, 10h22
  3. [Oracle] wamp + php + oracle?
    Par erox44 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/05/2008, 11h11
  4. Problème installation php gd2
    Par oligig dans le forum Apache
    Réponses: 4
    Dernier message: 06/07/2006, 12h32
  5. [FEDORA] Problème installation php gd2
    Par oligig dans le forum RedHat / CentOS / Fedora
    Réponses: 9
    Dernier message: 06/07/2006, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo