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 :

Image dynamique à partir d'un champ de formulaire [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut Image dynamique à partir d'un champ de formulaire
    Bonjour,

    Voilà, j'aimerais créer une image en fonction d'un champ d'un formulaire.
    Mon problème est que je n'arrive pas à récupérer la valeur du champ formulaire que ce soit avec les méthodes GET ou POST dans mon fichier image.

    J'ai essayé de simplifier mon code au maximum pour essayer de résoudre le problème.

    Voici mon fichier index.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
    <HTML>
    <HEAD></HEAD>
    <BODY>
    <FORM  Name='Forumlaire' Method="GET" Action="index.php" onsubmit="return valider()">
    <INPUT Name="TexteSaisie" TYPE="text" COLS=4 SIZE=4 ROWS=1 MAXLENGTH=4 WRAP="virtual">
    <INPUT type=submit value=Action>
    </FORM>
     
    <?php                                   
    if (isset($_GET['TexteSaisie'])) {
      echo $_GET['TexteSaisie']; 
    }
    ?>
    <BR>
     
    <img src='image.php' border="0"> 
    </BODY></HTML>
    et voici mon fichier image.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
    <?php                          
    	header ("Content-type: image/png");
     
    	$Image = imagecreatetruecolor(100, 100);
    	$Noir = imageColorAllocate($Image,0,0,0);
      $CouleurTxt = imagecolorallocate($Image,255,255,255);
     
      if (isset($_GET['TexteSaisie'])) {
        imagestring($Image, 2, 0, 0, $_GET['TexteSaisie'], $CouleurTxt);
      } // if (isset($_POST['TexteSaisie'])) {
     
      imagePNG($Image);
    	imageDestroy($Image);
    ?>
    Comme je vous ai dit j'ai essayer avec la méthode POST dans ce cas, je change les GET par des POST dans mon code. Mais le résultat reste aussi peu concluant.


    Si vous pouvez m'expliquer mon problème ou m'orienter vers un solution, je vous en serrez reconnaissant.

    PS : Je début en PHP donc je suis peut-être passé à coté de quelque chose.

  2. #2
    Membre à l'essai Avatar de bhamza
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Points : 15
    Points
    15
    Par défaut
    Dans l'action du formulaire faut faire image.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form .. Action="image.php" .. >

  3. #3
    Membre à l'essai Avatar de bhamza
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Points : 15
    Points
    15
    Par défaut
    Ah désole, j'ai compris votre problème faut passer le texte dans les paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='image.php?text=<?php echo $_GET['TexteSaisie'] ?>' border="0">

  4. #4
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Merci, ça fonctionne.

    Par contre, je perd mon formulaire puisqu'une fois ayant appuyé sur "Action", je n'ai plus que l'image.
    J'aimerais que cette image soit intégrée à ma page Web.

    Je vais continuer mes recherches. Grâce à ton aide, je ne suis plus très loin du résultat espéré.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Le premier message de bhamza était erroné, il ne fallait pas modifier l'attribut action du formulaire...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre à l'essai Avatar de bhamza
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Points : 15
    Points
    15
    Par défaut
    Merci Bovino.

    @Narwe il fait savoir quand vous mettez ce code la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='image.php?text=<?php echo $_GET['TexteSaisie'] ?>' border="0">
    c'est comme ouvrir image.php?text=toto avec votre navigateur et il va pas connaitre les données envoyées par le formulaire vous êtes obligé de passer des paramètres.

  7. #7
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Ok, merci à tous les deux.
    J'ai compris et j'ai réussi à faire ce que je souhaitais.

    J'ai 2 solutions viables.
    La première, en modifiant la valeur ACTION du form et en spécifiant une TARGET iFrame.
    Voici la valeur de index.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
     
    <HTML>
    <HEAD></HEAD>
    <BODY>
    <FORM  Name='Forumlaire' Method="GET" Action="image.php" onsubmit="return valider()" Target="zoneimage">
    <INPUT Name="TexteSaisie" TYPE="text" COLS=4 SIZE=4 ROWS=1 MAXLENGTH=4 WRAP="virtual">
    <INPUT type=submit value=Action>
    </FORM>
     
    <?php                                   
    if (isset($_GET['TexteSaisie'])) {
      echo $_GET['TexteSaisie']; 
    }
    ?>
    <BR>
    <iframe name="zoneimage" src="image.php" frameborder="0" height=100 width=100 seamless></iframe>
    </BODY></HTML>
    L'autre en passant un paramètre à l'image.
    Par contre, il faut que je passe par une variable intermédiaire sinon, à l'ouverture de la page j'ai une valeur bizarre dans mon $_GET['TexteSaisie'] dans image.php. Cette variable me sera utile dans le reste de ma page, donc ça m'arrange :
    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
     
    <HTML>
    <HEAD></HEAD>
    <BODY>
    <FORM  Name='Forumlaire' Method="GET" Action="index.php" onsubmit="return valider()">
    <INPUT Name="TexteSaisie" TYPE="text" COLS=4 SIZE=4 ROWS=1 MAXLENGTH=4 WRAP="virtual">
    <INPUT type=submit value=Action>
    </FORM>
     
    <?php                                   
    $Valeur='';
    if (isset($_GET['TexteSaisie'])) {
      $Valeur = $_GET['TexteSaisie']; 
      echo $Valeur;
    }
    ?>
    <BR>
     
    <img src='image.php?TexteSaisie=<?php echo $Valeur; ?>' border="0">
     
    </BODY></HTML>
    Merci encore.

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

Discussions similaires

  1. afficher une image a partir d'un champ Blob
    Par aimer_Delphi dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/07/2011, 15h31
  2. Réponses: 7
    Dernier message: 02/10/2010, 21h42
  3. [MySQL] afficher une image a partir d'un champs blob
    Par duko57 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/04/2008, 14h22
  4. nom d'un champs de formulaire dynamique
    Par wil4linux dans le forum ASP
    Réponses: 2
    Dernier message: 22/09/2005, 17h42
  5. Réponses: 4
    Dernier message: 13/09/2005, 11h50

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