Page 1 sur 2
Problème de variable $_GET
Posté : 18 oct. 2010, 09:14
par Wofty
Bonjour à tous,
Je rencontre un problème de récupération de variable en utilisant une url de type : http://www.site.fr/id=x
Sur ma page php, j'utilise généralement la variable : $id = $_GET['id']; ce qui fonctionne très bien généralement. Or dans un certain cas ça ne fonctionne pas et je ne comprends pas pourquoi.
Exemple de code :
Code : Tout sélectionner
<?php
$id = $_GET['id'];
$sql = "SELECT * FROM `table` WHERE id = ".$id;
?>
Dans ce cas là, la variable est bien récupérée. Maintenant, voici où ça coince :
Code : Tout sélectionner
<?php
$id = $_GET['id'];
$action = $_GET['action'];
if ($action == read) {
sql = "SELECT * FROM `table` WHERE id = ".$id;
}
?>
Cette fois-ci, la variable n'est pas récupérée. En revanche, si je donne une valeur fixe à $id telle que $id = 10; ça passe bien. J'ai tenté de remplacer mon "if" par un "switch", idem. J'ai également testé de remplacer $id dans ma requête sql par $GLOBALS['id'], rien à faire.
Je suis un perdu, est-ce que quelqu'un aurait une idée du pourquoi du comment ?
Merci par avance.
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 09:16
par Wofty
Petite erreur de frappe, il y a bien un $ devant sql lors de mon deuxième exemple.
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 10:36
par ludwig
Salut,
Dans ton if tu n'as pas de quotes autour de read, le problème vient peut-être de là.
Sinon il faut tracer la valeur de $id au cours de ton script avec un echo $id;
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 10:50
par Wofty
Salut ludwig,
Merci pour ta réponse, mais malheureusement il ne s'agit pas d'un problème de quote. Je viens de tester, ça revient au même.
Pour ce qui est de l'echo, j'ai évidemment fait un test avant de poster sur le forum, l'echo me remonte bien la valeur lorsque je le mets avant le if, mais ne me retourne rien à l'intérieur du if.
J'y ai passé plusieurs heures toute la journée hier, je suis sûr que c'est tout bête mais je ne vois pas la solution.
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 10:52
par stealth35
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:05
par Wofty
Oui effectivement c'est une page du genre : http://www.site.fr/index.php?id=x
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:10
par stealth35
et c'est pas
$action == read
mais
$action == 'read'
t'as pas les erreurs d'activées ?
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:18
par ludwig
C'est qu'il ne passe pas dans le if tout simplement, vérifie que $action soit bien égal à 'read'
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:26
par AoSiX
fais un var_dump de $action
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:35
par Wofty
Alors j'ai bien rajouté les quotes autour de 'read' suite à ce que m'a répondu ludwig.
J'ai activé les erreurs, je n'ai aucun retour.
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:40
par ludwig
<?php
/* $id = $_GET['id'];
$action = $_GET['action']; */
$id = 3;
$action = 'read';
if ($action == 'read') {
$sql = "SELECT * FROM `table` WHERE id = ".$id;
}
?>
Là ça ne peut que passer, fait un echo (ou var_dump) de ta variable $action juste avant le if pour vérifier son contenu.
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:45
par Wofty
En mettant la variable en "dur", ça fonctionne, sauf que c'est pas le but recherché.
le retour de var_dump($action); --> string(4) "read"
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:47
par ludwig
Je me doute bien que ce n'est pas le but
C'était juste pour te montrer que si ta variable contenait vraiment 'read' la condition serait valide, ce qui ne semble pas être le cas quand tu récupère la valeur de ton $_GET...
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:49
par AoSiX
Dans ce cas fais un var_dump de $_GET['action']
Re: Problème de variable $_GET
Posté : 18 oct. 2010, 11:57
par Wofty
Un var_dump sur $_GET['action'] me remonte la même chose : string(4) "read".
En revanche, un var_dump sur $id me remonte : NULL