Problème avec mes GET_ ...
Aaymeric91
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
ma question est toute simple mais bizarrement ca pose un problème dans mon code. pour faire simple, un utilisateur rentre des valeurs dans un champs de texte (pseudo) et et token/clé est généré (token) et cela les envoie via l'URL qui est le suivant:
http://127.0.0.1/test/activation.php?pseudo='.urlencode($pseudo).'&token='.urlencode($token).'
Ma page "activation.php" quant à elle récupère bien la valeur de pseudo et la token/clé dans l'URL mais lorsque que je fais par exemple echo 'Pseudo: '.GET['pseudo']; ca m'affiche un message d'erreur comme quoi la variable n'existe pas alors que la valeur de cette variable est visible dans l'URL. Une petite idée ?
Merci
ma question est toute simple mais bizarrement ca pose un problème dans mon code. pour faire simple, un utilisateur rentre des valeurs dans un champs de texte (pseudo) et et token/clé est généré (token) et cela les envoie via l'URL qui est le suivant:
http://127.0.0.1/test/activation.php?pseudo='.urlencode($pseudo).'&token='.urlencode($token).'
Ma page "activation.php" quant à elle récupère bien la valeur de pseudo et la token/clé dans l'URL mais lorsque que je fais par exemple echo 'Pseudo: '.GET['pseudo']; ca m'affiche un message d'erreur comme quoi la variable n'existe pas alors que la valeur de cette variable est visible dans l'URL. Une petite idée ?
Merci
8 réponses
Salut,
Les paramètres GET sont accessibles via la variable $_GET et non GET.
Essaye comme ceci :
Bonne journée
Les paramètres GET sont accessibles via la variable $_GET et non GET.
Essaye comme ceci :
echo 'Pseudo: ' . $_GET['pseudo'];
Bonne journée
Un tout grand merci, la réponse est tellement simple que c'est frustrant de ce dire que j'ai passé 2 jours dessus :) Merci
Je profite vite fait de ta présence pour te demander si tu pouvais résoudre ce probleme suivant: j'ai ce bout de code:
Et j'ai l'erreur suivant: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\test\activation.php on line 45
$stmt = $bdd->prepare("SELECT token,actif FROM membres WHERE pseudo like :login ");
if($stmt->execute(array(':pseudo' => $login)) && $row = $stmt->fetch())
{
$clebdd = $row['token']; // Récupération de la clé
$actif = $row['actif']; // $actif contiendra alors 0 ou 1
}
Et j'ai l'erreur suivant: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\test\activation.php on line 45
L'erreur vient du paramètre nommé :pseudo qui n'existe pas dans ta requête préparée :
$stmt = $bdd->prepare("SELECT token,actif FROM membres WHERE pseudo like :login ");
if($stmt->execute(array(':login' => $login)) && $row = $stmt->fetch())
{
// ...
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je m'étais fais la reflexion mais je fais passer :pseudo ou :login c'est la valeur envoyé par l'utilisateur non ? Si c'est oui, pourquoi mettre :login et $login ?
La réponse sera toute simple je suppose -_-"
La réponse sera toute simple je suppose -_-"
Il ne faut pas confondre la paramètre nommé :login et la variable php $login.
Tu peux le faire en nommant ton paramètre :pseudo, mais il faut utiliser ce même nom dans la fonction execute() :
L'important est d'utiliser le même nom de paramètre dans la requête préparée et dans la fonction execute().
Tu peux le faire en nommant ton paramètre :pseudo, mais il faut utiliser ce même nom dans la fonction execute() :
$stmt = $bdd->prepare("SELECT token,actif FROM membres WHERE pseudo like :pseudo");
if($stmt->execute(array(':pseudo' => $login)) && $row = $stmt->fetch())
{
// ...
}
L'important est d'utiliser le même nom de paramètre dans la requête préparée et dans la fonction execute().
Ok ok. J'ai en fait, fait un copié collé donc j'ai un peu du mal avec mon code.
La ligne suivante: AND $row = $stmt->fetch()) {
$row prend les valeurs de la ligne lorsque le login rentré correspond à celui dans la bdd stmt c'est ca ? car 2 ligne plus loin j'ai ce bout de code: $actif = $row['actif']; et j'ai une erreur plus loins comme quoi $actif n'est pas définie
Dans ma base de donné $actif devrait prendre la valeur 0 mais apparement ce n'est pas le cas.
EDIT: En fait, je remarque qu'il rentre même pas dans le if alors que le pseudo existe ..
La ligne suivante: AND $row = $stmt->fetch()) {
$row prend les valeurs de la ligne lorsque le login rentré correspond à celui dans la bdd stmt c'est ca ? car 2 ligne plus loin j'ai ce bout de code: $actif = $row['actif']; et j'ai une erreur plus loins comme quoi $actif n'est pas définie
Dans ma base de donné $actif devrait prendre la valeur 0 mais apparement ce n'est pas le cas.
EDIT: En fait, je remarque qu'il rentre même pas dans le if alors que le pseudo existe ..
Tu dois savoir que le copier/coller est l'ennemi du développeur ;)
Je te conseil de trouver un tuto sur PDO, il y en a plein sur le net et ce sera beaucoup plus facile pour le reste de tes développements de bien comprendre son fonctionnement.
N'hésites pas à revenir si tu as des questions plus précises, mais ça ne sert à que t'explique ici comment utiliser PDO alors qu'un bon tuto sera bien plus efficace :)
Je te conseil de trouver un tuto sur PDO, il y en a plein sur le net et ce sera beaucoup plus facile pour le reste de tes développements de bien comprendre son fonctionnement.
N'hésites pas à revenir si tu as des questions plus précises, mais ça ne sert à que t'explique ici comment utiliser PDO alors qu'un bon tuto sera bien plus efficace :)