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

Langage PHP Discussion :

Problème - Création d'image


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut Problème - Création d'image
    Bonjour à tous,

    Je suis entrain de réaliser un petit formulaire me permettant de créer des images pour les menus en PHP. Cependant je comprends pas pourquoi ça ne m'affiche pas l'image étant donner que j'ai pas fais un script bien compliquer...

    J'y suis arrivé en exécutant directement mon fichier PHP qui génère l'image, là j'ai l'impression que c'est le faites de le faire via un formulaire en passant par le $.ajax en jQuery...J'ai l'impression que le problème viens de l'affichage de l'image PHP dans ma page HTML. Mais je ne vois pas du tout comme faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <fieldset style="width: 40%;">
    <legend>Formulaire</legend>
    <form method="post" action="">
    <label>Largeur :</label><input type="text" name="largeur"/><br />
    <label>Hauteur :</label><input type="text" name="hauteur" /><br />
    <label>Texte : </label><input type="text" name="texte"/><br />
    <label>Couleur Fond : </label><input class="myColorPicker" name="couleurf" type="text" /><br />
    <label>Couleur texte : </label><input class="myColorPicker" name="couleurt" type="text" /><br />
    <input type="submit" value="Aperçus"/>
    </form>
    </fieldset>
    <div id="resultat"></div>
    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
     
    $(document).ready( function() {
            $('input.myColorPicker').myColorPicker();
     
    		function convertirDecimal(code){
    			var tab = new Array(3);
    			tab["r"] = parseInt( code.substr(1,2), 16 ) ;
    			tab["g"] = parseInt( code.substr(3,2), 16 ) ;
    			tab["b"] = parseInt( code.substr(5,2), 16 ) ;
    			return tab ;
    		}
     
    		$("form").submit( function(){
     
    			var texte = $("input[name=texte]").val();
    			var couleurf = $("input[name=couleurf]").val();
    			var couleurt = $("input[name=couleurt]").val();
     
    			var couleurFond = convertirDecimal(couleurf)['r']+","+convertirDecimal(couleurf)['g']+","+convertirDecimal(couleurf)['b'] ;
    			var couleurTexte =  convertirDecimal(couleurt)['r']+","+convertirDecimal(couleurt)['g']+","+convertirDecimal(couleurt)['b'] ;
     
    			var largeur = $("input[name=largeur]").val() ;
    			var hauteur = $("input[name=hauteur]").val() ;
     
    			$.ajax({
    				type: "POST",
    				url: "traitement.php",
    				data: "texte="+texte+"&couleurFond="+couleurFond+"&couleurTexte="+couleurTexte+"&largeur="+largeur+"&hauteur="+hauteur,
    				success: function(data){
    					$("div#resultat").html("<img src=\""+data+"\" />");
    				}
    			});
     
    			return false;
    		});
    	});

    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
     
    <?php
    header ("Content-type: image/png");
     
    $texte = $_POST['texte'];
    $couleurFond = explode(",", $_POST['couleurFond'] );
    $couleurTexte = $_POST['couleurTexte'];
    $largeur = $_POST['largeur'];
    $hauteur = $_POST['hauteur'] ;
     
    $texteBox = imagettfbbox( 4, 0, "arial.ttf", $texte);
     
    $longueurTexte = abs( $texteBox[0] ) + abs ( $texteBox[2] ) ;
    $hauteurTexte = abs( $texteBox[7] ) - abs( $texteBox[1] ) ;
     
    $image = imagecreatetruecolor($largeur, $hauteur);
    imagesavealpha($image, true);
    $couleurAlpha = imagecolorallocatealpha($image, 0, 0, 0, 127);
    imagefill($image, 0, 0, $couleurAlpha);
    $colorFond = imagecolorallocate($image, $couleurFond[0], $couleurFond[1], $couleurFond[2]);
    imagefilledrectangle($image, 0, 0, $largeur, $hauteur, $colorFond );
     
    echo imagepng($image);
     
    ?>

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 43
    Par défaut
    Je ne te cache pas que j'y connais rien en jQuery.
    Ton script PHP fonctionne quand tu l'éxecute d'après ce que j'ai compris.

    Est-ce tout les infos de ton formulaire sont bien transmise à ton script PHP?
    Est-ce tu arrives à afficher les variables dans ton script PHP?

    Essai p-e en remplacant $_POST par $_REQUEST dans ton script PHP.

    J'ai déjà rencontré des problèmes lorsque je tentais de récupérer mes variables envoyé par mon XHR en les récupérant avec $_POST

    J'espere que ca pourra t'aider

  3. #3
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut
    J'ai trouvé la réponse en fin de journée lol

    En faites dans traitement.php j'ai créé des sessions à partir des post, et c'est dans image.php que j'ai déplacé le script php pour faire l'image avec les sessions...

    Je ne comprends pas bien pourquoi à vraie dire mais je pense que pour créer des images les posts ne marchent pas, du moins il faudrait les serialisés...

    Le principal est que ça marche, merci quand même de m'avoir guider

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 43
    Par défaut
    Mais en réalité ce qui me perturbe c'est le fait que tu n'envois pas réellement ton formulaire, tu récupères tes données via JS, donc le $_POST ne devrait pas fonctionner, du moins je pense donc si tu as ouvert une session et placé tes variables dedans, je pense que c'est normal

  5. #5
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut
    Si si, on peut choisir le type de donnés à renvoyer avec la fonction $.ajax présente dans jQuery.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $.ajax({
         type: "POST",
         url: "tonurl.php",
         data: "param1="+variable1+"&param2="+variable2,
         success: function(){
              alert("$.ajax success");
         }     
    });

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 43
    Par défaut
    Comme je te l'ai dit jQuery et moi ca fait deux, de mon coté par exemple quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objetXHR.open("post","page.php","true");
    Donc il utilise la méthode POST mais pour récupérer mes variables dans mon script PHP je dois utiliser $_REQUEST

    Si t'es motivé et que ca te tente de tester ca assouvirait ma curiosité je ne te cache pas

Discussions similaires

  1. [GD] Problème création images
    Par shelko dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 22/03/2010, 23h08
  2. [GD] Problème de création d'image avec GD2
    Par Halex78 dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 31/03/2007, 15h46
  3. [GD] problème de création d'image
    Par troussepoil dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 16/03/2007, 14h32
  4. Réponses: 10
    Dernier message: 29/01/2007, 17h01
  5. Réponses: 1
    Dernier message: 11/07/2006, 20h00

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