Problème de déconnexion
Résolu
Zakarya93
Messages postés
1026
Statut
Membre
-
Zakarya93 Messages postés 1026 Statut Membre -
Zakarya93 Messages postés 1026 Statut Membre -
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
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");
<?php session_destroy(); header("Location: index.php?page=login") ?>