je suis bloqué sur un problème assez basique mais impossible de m'en sortir. J'ai une page de connexion avec id et mdp que l'user saisis, jusque là tout va bien. Il saisi les infos, clic sur submit et de là le script php vérifie qu'il existe dans la bdd pour le connecter et si tout est bon j'aimerais le ridiriger automatiquement vers la page home.php sauf que je n'y arrive pas. Je ne peux pas utiliser de header car c'est au beau milieu d'un if() donc il ya des infos au dessus. Des idées ?
L'extrait de mon code :
$rep = $bdd->query('SELECT user_id, first_name, last_name, password FROM user_info WHERE email = "'.$username.'"');
$resultat = $rep->fetch();
$isPasswordCorrect = password_verify($_POST['password'], $resultat['password']);
if (!$resultat)
{
echo '<font color="red">Wrong password or username !</font>' ;
}
else
{
if ($isPasswordCorrect) {
$_SESSION['user_id'] = $resultat['user_id'];
$_SESSION['first_name'] = $resultat['first_name'];
$_SESSION['last_name'] = $resultat['last_name'];
echo 'You are connected ' .$_SESSION['first_name'].' '. $_SESSION['last_name'].' <br/>';
//Redirection automatique vers home.php
}
else {echo '<font color="red">Wrong password or username !</font>' ;}
}
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP.
D'après mémoire, ca génère une erreur, mais la redirection marche tout de même.
Le mieux est de fonctionner avec jquery. En retour d'ajax tu vérifies si la connection a marché. Si oui, tu rafraichis la page ou tu fais une redirection, sinon tu affiches un message d'erreur.
- Edité par BertrandAnne 20 février 2019 à 14:57:41
j'ai un probleme, j'aimerai savoir comment l'on peut recuperer les données d'une table dans la bdd entre autre ( select* from nom de la table ) pour l'afficher sur une des page de mon site
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP.
-- Donc, oui, si t'as aucun HTML / et/ ou echo avant ton code, tout est bon.
J'ai trouvé ma solution, j'ai juste mis un header comme conseillé dans mon if et j'ai viré l'echo aussi. Mais j'avais du code html avant, j'ai déplacé mon code php en haut du script et ça fonctionne. Mon code php est déclenché lors de l'envoi du formulaire.
Tant que j'y suis j'ai un autre petit souci, je sais pas si je dois recréer un post pour ça mais j'ai en gros une page home.php avec un bouton logout. Lors du clic sur ce bouton, ça envoi vers un page logout.php qui détruit la session et renvoi vers la page index.php qui sert à se connecter. Le bouton, la déconnexion et la redirection marche très bien sauf que lorsque j'arrive sur ma page de connexion, l'url est toujours /logout.php et quand je clic sur mon bouton connexion rien ne se passe. Par contre si je refresh la page, je retombe bien sur le bon url /index.php et le bouton connexion marche. c'est du à quoi ?
Problème redirection après if() - PHP
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Call me Spaceman
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Call me Spaceman
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL