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 :

impossoble de recevoir $_GET


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Points : 21
    Points
    21
    Par défaut impossoble de recevoir $_GET
    Salut à toutes et à tous!

    Je pense que la fatigue y joue mais vu que je suis à bout de tentative je me tourne vers vous.
    Voilà j'ai un script qui me permet de créer une image en PHP avec la librairie GD. J'ai un script js qui me permet de créer un menu déroulant qui propose plusieurs couleurs en code hexadecimal. Le principe est simple, on entre un texte, on choisit la couleur du texte et celle du fond, la taille et on valide. Le formulaire envoie avec la méthode POST sur cette même page qui affiche à la fois le formulaire et l'image créée.
    Le problème est le suivant. Cette image est entouré de la balise <a> pour créer un lien vers une autre page B qui récupère les données telle que la couleur qui a été choisit, le texte, etc...
    Mais bizarrement, je n'arrive pas à récupérer les couleurs. Sur la page B, j'affiche mon array $_GET et je vois id, fontSample, fontSize, et à fontColor il n'affiche rien et s'arrête là sans m'afficher le reste des informations passées dans l'url. D'où vient le problème?

    Voici le code:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <link href="colorPicker/css/style.css" rel="stylesheet" type="text/css" />
    <link href="colorPicker/css/reset.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="colorPicker/js/jquery-1.4.2.js"></script>
    <script type="text/javascript" src="colorPicker/js/jquery.simple-color.min.js"></script>
    <script  type="text/javascript">
    $(document).ready(function(){
        $('.fontColor').simpleColor({
                cellWidth: 9,
                cellHeight: 9,
                border: '1px solid #333333',
                buttonClass: 'button',
                displayColorCode: false
        });    
        $('.fontBg').simpleColor({
                cellWidth: 9,
                cellHeight: 9,
                border: '1px solid #333333',
                buttonClass: 'button',
                displayColorCode: false
        });    
    });
    </script>
    </head>
     
    <body>
     
    <form action="index.php" method="post" name="form" title="Pick a color" lang="fr">
        <label for="sampleText">Votre texte :</label>
        <input name="sampleText" type="text" size="20" value="<?php if(isset($_POST['submit'])){echo $_POST['sampleText'];} ?>"/>
        <label for="fontSize">Taille :</label>
        <select name="fontSize" id="fontSize">
          <option value="<?php if(isset($_POST['submit'])){echo $_POST['fontSize'];} ?>" selected="selected"><?php if(isset($_POST['submit'])){echo $_POST['fontSize'];} ?></option>
          <option value="20">20</option>
          <option value="25">25</option>
          <option value="30">30</option>
          <option value="40">40</option>
        </select>
        <label for="fontColor">Couleur texte :</label>
        <input name="fontColor" class="fontColor" value="<?php if(isset($_POST['submit'])){echo $_POST['fontColor'];} ?>"/>
        <label for="fontBg">couleur fond :</label>
        <input name="fontBg" class="fontBg" value="<?php if(isset($_POST['submit'])){echo $_POST['fontBg'];} ?>"/>
        <input name="submit" type="submit" value="Valider" />
    </form>
     
    <?php
    require_once('inc/config.inc.php');
    require_once('functions/font_generator.function.php');
     
    //si on a recus des infos du formulaire
    if (isset($_POST['submit']))
    {
        $hex_bg_color = $_POST['fontBg'];
        $hex_txt_color = $_POST['fontColor'];
        $txt_size = $_POST['fontSize'];
        $txt_sample =  $_POST['sampleText'];
     
    	$fontLoop = $db->query('SELECT * FROM fonts') or die(print_r($db->errorInfo()));
     
    	while($data = $fontLoop->fetch())
    	{
    		$font_file= 'fonts/'.$data["file"];
    		$nom_image= 'fonts/'.$data["font_name"].'.png';
     
    		CreateImage($hex_bg_color,$hex_txt_color,$txt_size,$txt_sample,$font_file,$nom_image);
    		echo '
    		<p>
    			<a href="font_detail2.php?id='.$data['id'].'&fontSample='.$_POST['sampleText'].'&fontSize='.$_POST['fontSize'].'&fontColor='.$_POST['fontColor'].'&fontBg='.$_POST['fontBg'].'&file='.$data["file"].'&font='.$data["font_name"].'">
    				<img src="'.$nom_image.'">
    			</a>
    		</p>
    		<br/>
    		';
    	}
    }
    ?> 
     
    <?php
    echo '<pre>';
    echo print_r($_POST);
    echo '</pre>';
    ?>
     
     
    </body>
    </html>
    Je vous remercie d'avance pour toute votre aide!

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    Ajoute ce code pour voir ce qu'il y a dans $_POST
    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
    46
    47
    48
    49
    <?php
    require_once('inc/config.inc.php');
    require_once('functions/font_generator.function.php');
     
    
    echo "<hr>POST<hr>";
    foreach($_POST as $key => $val)
    {
    	echo "".$key."=>".$val."<br/>";
    	if(is_array($val))
    	{
    		echo var_dump($val)."<br/>";
    	}
    }
    echo "<hr>FIN POST<hr>";
    
    //si on a recus des infos du formulaire
    if (isset($_POST['submit']))
    {
        $hex_bg_color = $_POST['fontBg'];
        $hex_txt_color = $_POST['fontColor'];
        $txt_size = $_POST['fontSize'];
        $txt_sample =  $_POST['sampleText'];
     
    	$fontLoop = $db->query('SELECT * FROM fonts') or die(print_r($db->errorInfo()));
     
    	while($data = $fontLoop->fetch())
    	{
    		$font_file= 'fonts/'.$data["file"];
    		$nom_image= 'fonts/'.$data["font_name"].'.png';
     
    		CreateImage($hex_bg_color,$hex_txt_color,$txt_size,$txt_sample,$font_file,$nom_image);
    		echo '
    		<p>
    			<a href="font_detail2.php?id='.$data['id'].'&fontSample='.$_POST['sampleText'].'&fontSize='.$_POST['fontSize'].'&fontColor='.$_POST['fontColor'].'&fontBg='.$_POST['fontBg'].'&file='.$data["file"].'&font='.$data["font_name"].'">
    				<img src="'.$nom_image.'">
    			</a>
    		</p>
    		<br/>
    		';
    	}
    }
    ?> 
     
    <?php
    echo '<pre>';
    echo print_r($_POST);
    echo '</pre>';
    ?>
    idem dans l'autre page mais avec $_GET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo "<hr>GET<hr>";
    foreach($_GET as $key => $val)
    {
    	echo "".$key."=>".$val."<br/>";
    	if(is_array($val))
    	{
    		echo var_dump($val)."<br/>";
    	}
    }
    echo "<hr>FIN GET<hr>";

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Salut Patrick, décidement on se retrouve

    Bon j'ai essayé ce que tu me propose. J'avais aussi fais ça et le POST me renvoie bien toutes les infos une fois "submité" mais quand je clique sur mon image pour me retrouver en page B, le GET récupère ça:

    GET
    id=>1
    fontSample=>GraphicSeeds
    fontSize=>40
    fontColor=>
    FIN GET

    Comme tu le vois il s'arrête après fontColor au lieu de continuer parce que ce dernier est vide.

    Tu pense que ça pourrait venir du # qui créérai des pb?

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    ajoute urlencode(...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo '
    		<p>
    			<a href="font_detail2.php?id='.urlencode($data['id']).'&fontSample='.urlencode($_POST['sampleText']).'&fontSize='.urlencode($_POST['fontSize']).'&fontColor='.urlencode($_POST['fontColor']).'&fontBg='.urlencode($_POST['fontBg']).'&file='.urlencode($data["file"]).'&font='.urlencode($data["font_name"]).'">
    				<img src="'.$nom_image.'">
    			</a>
    		</p>
    		<br/>
    		';

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Icroyable, ça fonctionne! J'aurai jamais trouvé ça et cherché des heures sans jamais pensé à cette fonction!

    Merci beaucoup Patrick t'es un chef!

    Sinon c'est une bonne pratique d'utiliser cette fonction, c'est propre?

  6. #6
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    je ne vois pas comment faire autrement:
    disons qui est plus facile de faire une serie de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NomDeVariable = $_POST['NomDeVariable'];
    en début de script de traitement des valeurs POSTées ou GETées
    c'est plus facile a ecrire
    que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['NomDeVariable']
    générale on associe cela a un test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if( isset( $_POST['NomDeVariable'] ) ) /* si $_POST['NomDeVariable'] existe */
    {
     $NomDeVariable = $_POST['NomDeVariable']; /* on met le contenu dans $NomDeVariable */
    }else{           /*sinon on met une valeur par défaut */
     $NomDeVariable = null; /* ou autre chose que null si besoin */
    }

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    C'est bon à savoir et je vais simplifier mon code sur tes conseils pour plus de clarté.
    Merci encore à toi!

  8. #8
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    n'oublie pas de mettre "résolu"

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

Discussions similaires

  1. Comment recevoir rapidement une réponse à votre question ?
    Par Community Management dans le forum Windows
    Réponses: 3
    Dernier message: 17/08/2014, 03h28
  2. [VB.NET] [PPC] Envoyer/Recevoir fichiers PC<->PPC
    Par anthony70 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 18/08/2008, 18h05
  3. Réponses: 4
    Dernier message: 16/04/2007, 17h16
  4. [VB.NET] Recevoir un paramètre venant d'une adresse?
    Par Pleymo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/01/2005, 22h23
  5. envois de var $_GET un peu spécial
    Par frechy dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/11/2004, 12h00

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