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 :

[Tableaux] Problème pas de récupération de variable par $_GET()


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut [Tableaux] Problème pas de récupération de variable par $_GET()
    Bonjour à toutes et tous,

    je suis sous php/mysql 5, avec register global off.
    J'ai une table 'lexique' dans ma db (ID, title, content).

    Je veux modifier le contenu de la table par intranet.

    En plus de toutes les références d'ici, j'ai trouvé un tuto sur le wiki :
    http://wiki.media-box.net/tutoriaux/...-des-donne-php

    En m'en inspirant : j'ai un script qui édite le contenu de la table et qui renvoit avec un autre script sensé afficher le title et le content correspondant à l'id mentionnée dans l'url "test2.php?id='.' "

    Script #1 : (pour info car est ok)
    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
     
    <table border="2">
    	<tr>
    		<td>n° d'ID</td>
    		<td>Expression</td>
    	</tr>
    <?php
     
     
    /********************************************************
    
    // Ce script fait apparaître les champs 'title' et 'ID' de la table 'lexique' dans la db 'unicom' 
    // pour permettre à l'administrateur de les modifier en ligne sans avoir à se connecter sur le
    //  serveur MySQL.
    // Il renvoie à la page test2.php?id= où id est sensé être récupérée...
    
    ********************************************************/
     
     
     
     
    	// Paramètres de connexion à la db & à la table
    		require('functions.php');
     
    	// Requête de selection
    		$sql = "SELECT ID,title FROM $mysqltable ORDER BY title";
    		$query = mysql_query($sql) or die($sql . " - " . mysql_error());
     
    	 //affichage des données:
    		while( $result = mysql_fetch_assoc( $query ))
    			{
    				if($result)
    					{
    						$title = $result['title'];
     
    						echo '<tr><td>'.$result['ID'].'</td><td><a href="test2.php?id='.$result['ID'].'" target="_blank">'.$title.'</td></tr>';
    					}
    				else
    					{
    						echo '<tr><td colspan="2">Vous avez une erreur</td></tr>';
    					}
    			}
     
    		mysql_close();
    ?>
    </table>
    Script #2 : je dois avoir un souci de synthaxe car pas de connection, mais pas de message d'erreur non plus alors qu'il y a des vérifs...
    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
    <?php
     
     
    /************************************************************
    // Présentation:
    // Ce script devrait récupérer la variable 'ID' dans l'url générée à partir de test.php.
    //
    // Problème : 
    // Affichage d'une page blanche lorsque je vérifie le contenu de la variable récupérée.
    //
    // Affiche des champs vides si pas de vérif de la variable récupérée.
    ************************************************************/
     
     
     
    	// Paramètres de connexion à la db & à la table
    		require('functions.php');
     
    	// Variable recupérée 
    		$id = $_GET['ID'];
     
    		// Affiche le contenu de la variable $_GET pour vérification
    		echo ' '.var_dump($id).'';
     
    	// Requête de selection
    		$sql = "SELECT * FROM lexique WHERE ID = '$id'";
    		$query = mysql_query($sql, $link) or die($sql . " - " . mysql_error());
     
    	// Affichage du titre:
    		echo '<h1> Expression sélectionnée dans la table `Lexique`</h1>';
     
    	 //affichage des données:
    		$result = mysql_fetch_assoc( $query ))
    			{
    				if($result)
    					{
    						echo '<table border="1"><tr><td colspan="2">L\'expression que vous avez choisie:</td></tr><tr><td>'.$result['title'].'</td><td>'.$result['ID'].'</td></tr></table><br />';
    					}
    				else
    					{
    						echo 'Vous avez une erreur';
    					}
    			}
     
    		mysql_close();
    ?>
    Merci pour votre aide !!!!!

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Tu as un paramètre supplémentaire $link dans l'éxecution de ta requête.
    Je ne vois pas d'où il vient, mais comme sa position suggère qu'il s'agit de la ressource de connexion, c'est peut-être la cause de ton problème...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    Merci jml94 pour ta relecture !

    $link est la variable de connexion à la db définie dans 'functions.php'.

    Même supprimée, l'affichage est toujours le même : nada... même pas d'erreur.
    En plus j'ai utilisé var_dump() sur ma variable récupérée, et que je la concatène ou la mette directement (ce qui est normalement la solution), ça ne m'affiche rien...

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Pourrais-tu nous donner le code de ton appel à cette page ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    heu oui...

    il est le même dans les deux scripts (comme dans tous ceux que j'utilise)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	// Paramètres de connexion à la db & à la table
    		require('functions.php');
    Merci pour ton aide (je développe seul et je n'ai pas de regard extérieur sur mon boulot, c'est plutôt frustrant de pas voir ses erreurs...)

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    En fait, j'aurais souhaité le script où se trouve l'appel : "test2.php?id=..."

    --- edit ---
    Rien qu'en me relisant, je vois un truc :
    tu appeles id et tu essaies de récupérer ID...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    salut,

    si je puis me permettre as tu des messsages d'erreur quand tu oublie un ; ou que tu fais une erreur.

    parce que j'ai moi aussi installé php5 mysql5 et je me suis rendu compte que malgres avoir autorisé l'affichage d'erreur dans mon php.ini il fallait (je te jure que c'est pas des conneries ... ) créé dans ton dossier web a la racine de ton site un autre php.ini avec la phrase "display_errors = on" dedans comme dans le php.ini d'origine.

    voila tiens moi au courant.

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par jml94
    En fait, j'aurais souhaité le script où se trouve l'appel : "test2.php?id=..."

    --- edit ---
    Rien qu'en me relisant, je vois un truc :
    tu appeles id et tu essaies de récupérer ID...
    ok

    Script dans "test.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     //affichage des données:
    		while( $result = mysql_fetch_assoc( $query ))
    			{
    				if($result)
    					{
    						$title = $result['title'];
     
    						echo '<tr><td>'.$result['ID'].'</td><td><a href="test2.php?id='.$result['ID'].'" target="_blank">'.$title.'</td></tr>';
    					}
    Ton edit :
    Voilà pourquoi les livres et les tutos ne remplacent pas la discussion avec une personne ! J'avais à tort compris que c'était bien directement la valeur 'ID' que j'appelais, et non passer par id='ID' pour mon $_GET.

    J'essaie immédiatement.

  9. #9
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par jml94
    En fait, j'aurais souhaité le script où se trouve l'appel : "test2.php?id=..."

    --- edit ---
    Rien qu'en me relisant, je vois un truc :
    tu appeles id et tu essaies de récupérer ID...
    Bon, j'ai cru que c'était bien une erreur impardonnable, mais en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Variable recupérée 
    		$id = $_GET['id'];
     
     
    	// Requête de selection
    		$sql = "SELECT * FROM lexique WHERE ID = '$id'";
    		$query = mysql_query($sql) or die($sql . " - " . mysql_error());
    ça ne change rien ... snif

  10. #10
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    sit tu appelles de cette façon
    Tu dois récupérer ta variable ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $id = $_GET['id'];
    et tu auras 18 dans ta variable...
    Ca c'est la base, mais tu dois agrémenter le tout de tests divers et variés : existence de la variable, validation de la valeur, etc...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  11. #11
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    @ omantherasta : je n'ai jamais eu ce problème ; mes vérifs font s'afficher les erreurs éventuelles...

    merci !

  12. #12
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par jml94
    sit tu appelles de cette façon
    Tu dois récupérer ta variable ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $id = $_GET['id'];
    et tu auras 18 dans ta variable...
    Ca c'est la base, mais tu dois agrémenter le tout de tests divers et variés : existence de la variable, validation de la valeur, etc...
    il me semble bien que c'est ce que j'ai fait juste au dessus de ton post... sans effet
    bon je vais compléter la batterie de tests.

    Merci pour tes conseils jml94 :-)

    ---- EDIT ----
    Juste deux trucs :
    - le fait que la valeur de ?id= provient d'une requete sur le script précédent n'a t il pas d'incidence sur la récupération ???
    Il me semble bien que non mais....

    - Et ne faudrait il pas que j'utilise @ avant $_GET() ??

  13. #13
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Le premier test, super facile, c'est de regarder l'url sur laquelle tu tombes.
    Tu dois pouvoir voir la valeur directement dans la barre d'adresse de ton navigateur (firefox bien sûr )
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  14. #14
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Ou Opéra

    Tu peux vérifier le contenu du tableau $_GET de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_GET);
    echo '</pre>';
    afin de voir les variables passée à ta page via l'URL.
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  15. #15
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    J'utilise le Renard et aussi IE

    Dans les deux cas, si je clique sur le premier lien ->

    la fenêtre qui s'ouvre alors contient bien l'adresse complète :

    "http://test2.php?id=93"

    Ma fonction var_dump n'édite rien...

  16. #16
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Mister Shell
    Juste deux trucs :
    - Et ne faudrait il pas que j'utilise @ avant $_GET() ??
    Non !
    Supprimer la gestion d'erreurs, c'est vraiment contourner brutalement le problème.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  17. #17
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Tu pourrais coller le script complet de test2.php ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  18. #18
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    @ genova j'ai déjà utilisé ce script, mais ça n'affiche rien.

    ... je dois avoir un souci de connexion... je dois vous quitter !

    Merci à tous

  19. #19
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par jml94
    Tu pourrais coller le script complet de test2.php ?
    il y est dans mon premier post :-)

  20. #20
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    - Tout d'abord dans ton formulaire ou tu crees ton tableau de lien (script1 du premier post) tu n'as pas fermé la balise <a href> par un </a>. Donc le lien ne peut etre valide....

    echo '<tr><td>'.$result['ID'].'</td><td><a href="test2.php?id='.$result['ID'].'" target="_blank">'.$title.'</td></tr>';

    devrait etre :
    echo '<tr><td>'.$result['ID'].'</td><td><a href="test2.php?id='.$result['ID'].'" target="_blank">'.$title.'</a></td></tr>';

    - ensuite, tu m'etonnes quand tu dis que tu pointes sur http://test2.php?id=93"
    On s'attendrait plutot a "http://SERVEUR/test2.php?id=93"
    Peut-etre une consequence de l'erreur ci-dessus....

    Sinon, je ne vois rien de particulier....

    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/07/2009, 16h55
  2. Réponses: 2
    Dernier message: 20/10/2008, 11h48
  3. [Tableaux] Problème de test sur une variable
    Par Laurent64 dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2007, 14h04
  4. [MySQL] Problème de récupération de variables en $_GET
    Par gussoner dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/11/2006, 11h38
  5. Récupération de variable par GET et POST
    Par Sophy75 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2006, 14h35

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