Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème redirection après if() - PHP

    19 février 2019 à 21:25:26

    Bonjour,

    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>' ;}
    }



    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2019 à 22:01:00

      Et comment je fais pour utiliser un header en plein milieu d'un if() ?
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2019 à 7:48:40

        Bonjour,

        Utilise celà lorsque tu veux faire ta redirection.

        header('Location: mapage.php');
        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2019 à 8:26:11

          Bonjour,

          Dans le doc php de header :

          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.

          Source.

          • Partager sur Facebook
          • Partager sur Twitter

          Call me Spaceman

            20 février 2019 à 10:28:52

            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

            • Partager sur Facebook
            • Partager sur Twitter
              20 février 2019 à 11:03:32

              bonjour,

              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

              • Partager sur Facebook
              • Partager sur Twitter
                20 février 2019 à 12:23:15

                FranckLeukeu : merci de créer ton propre sujet (mais avant ça, recherche, parce que ta question est très basique).
                • Partager sur Facebook
                • Partager sur Twitter

                Pas d'aide concernant le code par MP, le forum est là pour ça :)

                  20 février 2019 à 15:53:26

                  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.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 février 2019 à 16:04:44

                    Et si tu regarde bien le code ici ce n'est pas le cas
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Call me Spaceman

                      20 février 2019 à 16:21:15

                      Le seul echo que je vois qui pose problème c'est celui de la ligne 18. donc tu as juste a le viré
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 février 2019 à 19:22:00

                        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 ?

                        • Partager sur Facebook
                        • Partager sur Twitter

                        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.
                        • Editeur
                        • Markdown