Problème Header PHP
Résolu
XecK
Messages postés
386
Date d'inscription
Statut
Membre
Dernière intervention
-
XecK Messages postés 386 Date d'inscription Statut Membre Dernière intervention -
XecK Messages postés 386 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
mon code PHP ne marche pas comme je le souhaite :
$reponse = $bdd->prepare('SELECT * FROM Adherent WHERE nom = :nom AND prenom = :prenom');
$reponse->execute(array('nom' => $nom, 'prenom' => $prenom));
while ($donnees = $reponse->fetch())
{
if ($donnees['mdp']==$mdp)
{
$_SESSION['statut']=$donnees['fonction'];
$_SESSION['nom']=$nom;
$_SESSION['prenom']=$prenom;
$_SESSION['id']=$donnees['idAdherent'];
$_SESSION['connecte']="on";
header("Location: message.php?err=Connecté");
}
else
{
header("Location: message.php?err=Mot%20de%20passe%20incorrect");
}
}
$reponse->closeCursor();
header("Location: message.php?err=Utilisateur%20inexistant");
Ce n'est pas un problème de variable, ni de condition, mais un problème de redirection : Si je rentre les bonnes données, la session ($_SESSION) est bien mise à jour, On rentre donc bien dans le if, je devrais être redirigé vers la page message.php?err=Connecté.
Pourtant, je suis redirigé vers la page Location: message.php?err=Utilisateur%20inexistant.
Une idée ?
mon code PHP ne marche pas comme je le souhaite :
$reponse = $bdd->prepare('SELECT * FROM Adherent WHERE nom = :nom AND prenom = :prenom');
$reponse->execute(array('nom' => $nom, 'prenom' => $prenom));
while ($donnees = $reponse->fetch())
{
if ($donnees['mdp']==$mdp)
{
$_SESSION['statut']=$donnees['fonction'];
$_SESSION['nom']=$nom;
$_SESSION['prenom']=$prenom;
$_SESSION['id']=$donnees['idAdherent'];
$_SESSION['connecte']="on";
header("Location: message.php?err=Connecté");
}
else
{
header("Location: message.php?err=Mot%20de%20passe%20incorrect");
}
}
$reponse->closeCursor();
header("Location: message.php?err=Utilisateur%20inexistant");
Ce n'est pas un problème de variable, ni de condition, mais un problème de redirection : Si je rentre les bonnes données, la session ($_SESSION) est bien mise à jour, On rentre donc bien dans le if, je devrais être redirigé vers la page message.php?err=Connecté.
Pourtant, je suis redirigé vers la page Location: message.php?err=Utilisateur%20inexistant.
Une idée ?
A voir également:
- Problème Header PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- 400 bad request request header or cookie too large - Forum Windows
- Alert php ✓ - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
3 réponses
Bonjour
Tu as posté 2 fois. Je t'ai répondu là-bas :
https://forums.commentcamarche.net/forum/affich-25583275-probleme-header-php#top
Remarque : il n'y a absolument aucune raison pour qu'un header ne marche pas dans une boucle while. Ou alors il faut m'expliquer pourquoi.
Tu as posté 2 fois. Je t'ai répondu là-bas :
https://forums.commentcamarche.net/forum/affich-25583275-probleme-header-php#top
Remarque : il n'y a absolument aucune raison pour qu'un header ne marche pas dans une boucle while. Ou alors il faut m'expliquer pourquoi.
$valid=false; $utilisateur_existant=false; while($donnees = $reponse->fetch()) { if ($donnees['mdp']==$mdp) $valid=true; $utilisateur_exitstant=true; } $reponse->closeCursor(); if($utilisateur_existant==false) header("Location: message.php?err=Utilisateur%20inexistant"); if($valid==true) { $_SESSION['statut']=$donnees['fonction']; $_SESSION['nom']=$nom; $_SESSION['prenom']=$prenom; $_SESSION['id']=$donnees['idAdherent']; $_SESSION['connecte']="on"; header("Location: message.php?err=Connecté"); } else { header("Location: message.php?err=Mot%20de%20passe%20incorrect"); }
EDIT : Mettre des espaces dans les urls c'est pas vraiment le top utilise plutôt des _
comme dit le père, si le header n'interrompt pas l'execution du script, alors le script execute bien le bon header, mais une fois sorti de la boucle, il execute le dernier header.
personnellement je n'aurais pas mis de header dans la boucle, ça ne fait pas très propre.
tu devrais séparer le coté sauvegarde des données avec le coté redirection grâce à un if($trouve) par exemple
PS Désolés pour le double post, l'autre n'étais pas dans le bon forum