Perte de mots dans $_GET[...]
Résolu/Fermé
A voir également:
- Perte de mots dans $_GET[...]
- Piratage facebook changer mot de passe - Guide
- Reinstaller windows sans perte de données - Guide
- Identifiants et mots de passe - Guide
- Agrandir une image sans perte de qualité - Guide
- Mettre un mot de passe sur un dossier - Guide
8 réponses
Bonjour
Ce n'est pas dans le GET que tu perds des mots, la preuve, ils sont dans le message d'erreur, c'est qu'ils ont bien été transmis.
Le problème, c'est ta requête : la valeur dans la clause Where doit être entourée de guillemets (simples ou doubles). De plus, pour le cas où cette valeur contient des caractères spéciaux, il faut l'échapper avec mysql_real_escape_string , ça t'évitera quelques mauvaises surprises :
Ce n'est pas dans le GET que tu perds des mots, la preuve, ils sont dans le message d'erreur, c'est qu'ils ont bien été transmis.
Le problème, c'est ta requête : la valeur dans la clause Where doit être entourée de guillemets (simples ou doubles). De plus, pour le cas où cette valeur contient des caractères spéciaux, il faut l'échapper avec mysql_real_escape_string , ça t'évitera quelques mauvaises surprises :
$list = mysql_query('SELECT * FROM clubs WHERE Denomination="' .mysql_real_escape_string($_GET['denomination'])."'") or die(mysql_error());
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 juin 2009 à 23:02
15 juin 2009 à 23:02
<a href="fiche.php?denomination= <?php echo url_encode($donnees['denomination']) ; ?> "> <?php echo $donnees['denomination']; ?> </a>
et attention avant de passer ça dans mysql il vaut mieux se protéger d'attaques:
$denomination=mysql_escape_string($_GET['denomination']); $list = mysql_query("SELECT * FROM clubs WHERE Denomination='" .$denomination."' ") or die(mysql_error());
Salut!
Tout d'abord merci pour votre aide rapide!
Cependant, ça ne fonctionne toujours pas
lorque j'utilise le code de le pere, j'ai tout les mots mais je pense qu'il y a une apostrophe ou un guillemet en trop :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" comment ca marche'' at line 1
je ne parvient donc pas obtenir la donnée dans ma base de donnée.
Merci pour le conseil Alain_42, je m'attellerais à ça plus tard!
Tout d'abord merci pour votre aide rapide!
Cependant, ça ne fonctionne toujours pas
lorque j'utilise le code de le pere, j'ai tout les mots mais je pense qu'il y a une apostrophe ou un guillemet en trop :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" comment ca marche'' at line 1
je ne parvient donc pas obtenir la donnée dans ma base de donnée.
Merci pour le conseil Alain_42, je m'attellerais à ça plus tard!
babou054
Messages postés
162
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
1 septembre 2009
11
16 juin 2009 à 11:56
16 juin 2009 à 11:56
$list = mysql_query('SELECT * FROM clubs WHERE Denomination=' .$_GET[ 'denomination']) or die(mysql_error());
en gras t'a mis un espace avant la premiere cote ce qui est sans doute source d'erreure
en gras t'a mis un espace avant la premiere cote ce qui est sans doute source d'erreure
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 juin 2009 à 12:02
16 juin 2009 à 12:02
$list = mysql_query('SELECT * FROM clubs WHERE Denomination="' .mysql_real_escape_string($_GET['denomination']).'"") or die(mysql_error());
petite erreur de guillemets après $_GET['denomination']
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
16 juin 2009 à 12:17
16 juin 2009 à 12:17
Souvent quand on passe des variables en Get, Les espaces sont remplacés par des %20 ou un truc comme ça. En SQL le signe % à une signification bien particulière. Je pense que ton erreur vient de là.
Essaye en envoyant une variable sans espace, je pense que ça marchera et ça confirmera ma supposition.
Essaye en envoyant une variable sans espace, je pense que ça marchera et ça confirmera ma supposition.
Merci!
Il y avait bien une erreur de guillemet :
Il y avait aussi un espace en trop dans le lien d'origine
<a href="fiche.php?denomination= <?php echo $donnees['denomination'] ; ?> "> <?php echo $donnees['denomination']; ?> </a>
si ça peut aider qqun...
Merci encore bonne journée!!
Il y avait bien une erreur de guillemet :
$list = mysql_query('SELECT * FROM clubs WHERE Denomination=" ' .mysql_real_escape_string($_GET['denomination']).' " ') or die(mysql_error());
Il y avait aussi un espace en trop dans le lien d'origine
<a href="fiche.php?denomination= <?php echo $donnees['denomination'] ; ?> "> <?php echo $donnees['denomination']; ?> </a>
si ça peut aider qqun...
Merci encore bonne journée!!