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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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 expérimenté
    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 : 37
    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
    Par défaut
    Fais un petit print_r(gd_info()); pour savoir s'il supporte le png...

  3. #3
    Membre éclairé
    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
    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 expérimenté
    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 : 37
    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
    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 éclairé
    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
    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 expérimenté
    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 : 37
    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
    Par défaut
    Normal, ...
    Enlève le header du fichier de l'image, et appelle le directement pour avoir les erreurs...

+ 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