Problème de déconnexion
Résolu
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je n'arrive plus à me déconnecter de mon site...voici mon header.php :
Merci d'avance :)
Je n'arrive plus à me déconnecter de mon site...voici mon header.php :
<div class='header'> <?php $result= infos_membre_connecte(); //-------------------------------------------------// $infos = $result['result']; if(count($infos)>0){ $pseudo = isset($infos['pseudo'])?$infos['pseudo']:''; echo "Bienvenue ". $pseudo; }else{ echo "<br> Aucun résultat."; } if(!isset($_SESSION['pseudo'])) { header("Location:index.php?page=login"); } ?> <p><a href="index.php?page=logout">Se déconnecter</a></p> </div>
Merci d'avance :)
4 réponses
Quel est le code de ta page index.php?page=logout ?
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
10
hharchi9
Messages postés
567
Date d'inscription
Statut
Membre
Dernière intervention
24
As-tu changer quelque chose pour que ça s'arrête de fonctionner ?
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
10
depuis que j'ai modifié l'index.php
hharchi9
Messages postés
567
Date d'inscription
Statut
Membre
Dernière intervention
24
Et qu'as tu changer ?
if(isset($_SESSION['pseudo']) && $page != 'membre' && $page != 'update' && $page !='update_avatar' && $page !="liste_membre"){ redirection("index.php?page=membre"); } ?>
voilà, plus clair ici : https://forums.commentcamarche.net/forum/affich-32077373-renomme-probleme-de-redirection-en-boucle
Tu peux simplifier ce code :
en utilisant la fonction in_array qui teste si un élément est dans un array :
if(isset($_SESSION['pseudo']) && $page != 'membre' && $page != 'update' && $page !='update_avatar' && $page !="liste_membre"){ redirection("index.php?page=membre"); }
en utilisant la fonction in_array qui teste si un élément est dans un array :
if(isset($_SESSION['pseudo']) && !in_array($page, array( 'membre', 'update', 'update_avatar', "liste_membre"))){ redirection("index.php?page=membre"); }
connect.php ?
modifications faites sinon ^^ merci
<?php /** * Fichier connect.php **/ //--------------------------------// //démarrage de session //--------------------------------// if(session_id() == '') { session_start(); } //--------------------------------// // Infos de connexion à la BDD $serveur = "localhost"; $user = "root"; $pwd = ""; $dbname = "rs"; //--------------------------------// // Connexion //--------------------------------// try { $bdd = new PDO ("mysql:host=".$serveur.";dbname=".$dbname.";charset=utf8", $user,$pwd); }catch(Exception $e) { die('Erreur de connexion à la BDD '.$e->getMessage()); } ?>
modifications faites sinon ^^ merci
Bonjour,
En complément de la suggestion d' hharchi (que je salue au passage) ...
je propose :
page lougout.php
... par contre ... ce code (ou l'ancien;. qui faisait la même chose...)
fait en sorte que JAMAIS tu n'iras dans la page LOGOUT .... car ... si la page se nomme lougout... elle ne fait donc pas partie de la liste... et donc... tu es TOUT LE TEMPS redirigé vers la page membre....
Quel est le but de ce bout de code au juste ? A mon avis .... c'est inutile de le mettre.
Cordialement,
Jordane
En complément de la suggestion d' hharchi (que je salue au passage) ...
je propose :
page lougout.php
<?php //Le temps des tests : echo "<br> Sessions AVANT le destroy"; print_r($_SESSION); // avant le session_destroy session_destroy(); //header("Location: index.php?page=login") //Le temps des tests : echo "<br> Sessions APRES le destroy"; print_r($_SESSION); // aprèsle session_destroy ?>
... par contre ... ce code (ou l'ancien;. qui faisait la même chose...)
if(isset($_SESSION['pseudo']) && !in_array($page, array( 'membre', 'update', 'update_avatar', "liste_membre"))){ redirection("index.php?page=membre"); }
fait en sorte que JAMAIS tu n'iras dans la page LOGOUT .... car ... si la page se nomme lougout... elle ne fait donc pas partie de la liste... et donc... tu es TOUT LE TEMPS redirigé vers la page membre....
Quel est le but de ce bout de code au juste ? A mon avis .... c'est inutile de le mettre.
Cordialement,
Jordane
<?php include('functions/connect.php'); // fonctionne // Reporte toutes les erreurs PHP (Voir l'historique des modifications) error_reporting(E_ALL); /** *Fonction de redirection * @param : $url (valeur par défaut = index.php?page=login ) */ function redirection($url = "index.php?page=login"){ header("Location:$url"); exit(); } //Récupération de la valeur de $_GET['page'] Si la variable Existe et qu'elle n'est pas vide... $page = isset($_GET['page']) && !empty($_GET['page'])?$_GET['page']:NULL; include('functions/'.$page.'.func.php'); if($page){ $content = "pages/$page.php"; if(!file_exists($content)){ //La page n'existe pas redirection(); } }else{ // $page est vide ou n'existe pas. redirection(); } if(isset($_SESSION['pseudo']) && !in_array($page, array( 'membre', 'update', 'update_avatar', "liste_membre"))){ redirection("index.php?page=membre"); } ?> <!DOCTYPE html> <html> <head> <link rel='stylesheet' href='css/style.css'> </head> <meta charset="UTF-8" > <body> <div id='content'> <?php include($content); ?> </div> </body>
Change ça :
en :
if(isset($_SESSION['pseudo']) && !in_array($page, array( 'membre', 'update', 'update_avatar', "liste_membre"))){ redirection("index.php?page=membre");
en :
if(isset($_SESSION['pseudo']) && !in_array($page, array( 'membre', 'update', 'update_avatar', "liste_membre", 'logout'))){ redirection("index.php?page=membre");