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   -
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

8 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Les paramètres GET sont accessibles via la variable $_GET et non GET.
Essaye comme ceci :
echo 'Pseudo: ' . $_GET['pseudo'];

Bonne journée
1
Aaymeric91 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Aaymeric91 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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:

     $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
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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())
{
// ...
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aaymeric91 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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 -_-"
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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() :

$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().
0
Aaymeric91 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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 ..
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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 :)
0