PHP

Problème de redirection PHP

Non Résolu

Bonsoir, je viens vous demander de l'aide concernant un problème que je rencontre avec une redirection. Je souhaite afficher le profil de l'utilisateur connectant via la page "Mon profil", j'ai bien fait tout comme il est expliqué dans la vidéo : "#9 Voir son profil en PHP".


Le problème est que : je suis connecté donc je suis censé pouvoir accéder à mon profil pour ensuite pouvoir le modifier. Sauf que lorsque j'appuie sur le bouton pour accéder à ma page profil.php le site me redirige en permanence sur la page membres.php. Vous comprendrez peut être mieux avec le code ci-dessous.


Merci d'avance.


L'erreur à lieu dans le :


    if(empty($utilisateur_id)){
        header('Location: membres.php');
        exit;
    }   

Code complet : 

<?php
    session_start();


    include_once('db/connexionDB.php');


    $utilisateur_id = (int) $_SESSION['id'];


    if(empty($utilisateur_id)){
        header('Location: membres.php');
        exit;
    }   


    $req = $BDD->prepare("SELECT u.*, d.ville_nom 
        FROM utilisateur u 
        INNER JOIN city d ON d.ville_code = u.city
        WHERE u.id = ?");


    $req->execute(array($utilisateur_id));


    $voir_utilisateur = $req->fetch();


    if(!isset($voir_utilisateur['id'])){
        header('Location: /');
        exit;
    }


    function age($date){
        $age = date('Y') - date('Y', strtotime($date));
        if(date('md') < date('md', strtotime($date))){
            return $age - 1;
        }
        return $age;


    }


?>


<!DOCTYPE html>
<html lang="fr"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initiale-scale=1, skrink-to-fit=no"/><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"><link rel="stylesheet" href="membresstyle.css"><title>Profil de <?= $voir_utilisateur['pseudo'] ?></title></head><body><header><?phprequire_once('menu1.php');
            ?></header><div class="container"><div class="row"><div class="col-sm-12"><div class="membres-corps"><div>
                            Pseudo : <?= $voir_utilisateur['pseudo'] ?></div><div>
                            Ville de départ : <?= $voir_utilisateur['ville_nom'] ?></div><div>
                            Age : <?= age($voir_utilisateur['date_naissance']) ?> ans
                        </div></div></div></div></div>            
    </body>
</html>
657 vues
08 juillet 2020 à 16:24 (Édité)
Cette pub permet au site de vivre ...

9 commentaires

Re:


On a plus reçu de nouvelles concernant ton problème... L'as-tu résolu ? 🤔

Si c'est le cas, il faut cliquer sur le bouton vert "Résolu" 😉

Hello @LouisChrlt,


As-tu tenter de télécharger directement le code source en cliquant sur "Obtenir le code" puis "Télécharger le code" de cet article de formation ? 🤔

Si tu as fait un copier/coller du code, un caractère spéciaux invisible à du s'insérer lors de la copie...

Bonjour @LouisChrlt,


As-tu regarder ici ?


$utilisateur_id = (int) $_SESSION['id'];


Fait un echo de la variable $utilisateur_id et regarde si tu as bien une valeur différente de 0

@Alexoune001 ;


Oui en effet, si tu regarde le code complet que j'ai mis au début (qui est donc le code de la page profil.php) tu verras au tout début de mon PHP que la redirection est là.

@LouisChrlt,


Ah oui d’accord, hum c’est parce que ta vérification est dans la même page non?

Genre la redirection est dans profil.php ?

@Alexoune001,


J'ai donc fais ça :

Et là ma page se refresh en continue


if(empty($utilisateur_id)){
        echo '<meta http-equiv="refresh" content="0;URL=profil.php">';
        exit;
    }   

Bonjour @LouisChrlt,


Essaie avec cette redirection et dit moi si ça fonctionne car souvent le header, plante en localhost j’ai remarqué de mon côté.


<?php echo '<meta http-equiv="refresh" content="0;URL=profil.php">'; ?>

Salut @Alexoune001 ,


J'ai donc fais comme tu m'as dit, j'ai remplacé :


header('Location: membres.php');


Par :


header('Location: profil.php');


Le problème qu'il y a maintenant c'est quand je tape l'URL dans la barre de recherche la page profil.php s'affichent mais ca me marque :


"Cette page ne fonctionne pas

localhost vous a redirigé à de trop nombreuses reprises."


J'y ai réfléchis toute la soirée hier mais je vois pas ce qui pose problème... 😖

Bonsoir @LouisChrlt,


Truc tout bête : Ne devrai-tu pas changer les re directions membres.php par profil.php pour que ça fonctionne et te redirige vers profil.php ?


Car la, de ce que tu demandes et nous montres comme code, tu rediriges vers membres au lieu de profil.php.


Vérifie et dit nous quoi ;)

Cette pub permet au site de vivre ...