Impossible deconnexion

[Résolu]
Signaler
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007
-
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007
-
Bonjour,

Sur mon espace membre, une fois connecté, je n'arrive plus à me déconnecter, sauf en fermant le navigateur (sous easy php).

Ma page index :
.............

<?php
if(isset($_SESSION['Pseudo']))
{
include("./home.php");
}
else
{
include("./connexion.php");
}
?>

<?php
// On définit le tableau contenant les pages autorisées
// ---------------------------------------------------- $pageOK array('accueil'> 'accueil.php',
'enreg1' => 'enreg1.php',
'enreg2' => 'enreg2.php',
'page1' => 'page1.php',
'page2' => 'page2.php',
'inscription' => 'inscription.php',
'lieux-france' => 'lieux-france.php',
'lieux-pays' => 'lieux-pays.php',
'verif_inscrip' => 'verif_inscrip.php');
// On teste que le paramètre d'url existe et qu'il est bien autorisé
// -----------------------------------------------------------------
if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
include($pageOK[$_GET['page']]); // Nous appelons le contenu central de la page
}
else
{
include 'accueil.php';
}
?>


.............

Page de déconnexion :
<?php
// On appelle la session
session_start();
// On écrase le tableau de session
$_SESSION = array();
// On détruit la session
session_destroy();
?>

Je ne vois pas ce qui cloche. Peut on "purger" la session ?
Merci de votre aide.

13 réponses

Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Re,

moi je ferai un lien direct vers deconnexion.php avec à l'int :
<?php

// On écrase le tableau de session

$_SESSION = array();

session_unset();

// On détruit la session

session_destroy();



@header('Location: index.php');

?>
<hr size="2" width="100%">
Si ma reponse te convient, merci de l'accepter !
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Bonjour,

Je ne vois pas ce qui cloche, sinon moi j'ajoute un session_unset();
<?php

// On appelle la session

session_start();

// On écrase le tableau de session

$_SESSION = array();

session_unset();

// On détruit la session

session_destroy();

?>
<hr size="2" width="100%">
Si ma reponse te convient, merci de l'accepter !
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007

merci pour ta réponse, mais ça ne change rien.
Quand je clique sur déconnexion, ça me renvoie sur la page d'accueil.
Peut être faut il adapter
<?php
// On définit le tableau contenant les pages autorisées
// ---------------------------------------------------- $pageOK array('accueil'> 'accueil.php',
'enreg1' => 'enreg1.php',
'enreg2' => 'enreg2.php',
'page1' => 'page1.php',
'page2' => 'page2.php',
'inscription' => 'inscription.php',
'lieux-france' => 'lieux-france.php',
'lieux-pays' => 'lieux-pays.php',
'verif_inscrip' => 'verif_inscrip.php');
// On teste que le paramètre d'url existe et qu'il est bien autorisé
// -----------------------------------------------------------------
if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
include($pageOK[$_GET['page']]); // Nous appelons le contenu central de la page
}
else
{
include 'accueil.php';
}
?>
avec les sessions.

Merci et @+.
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
A quoi ressemble ton lien de deconnexion ?


<HR width="100%" SIZE=2>
Si ma reponse te convient, merci de l'accepter !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



peut-être que ton code inclue la page de connexion et la page d'accueil lorsque tu rediriges....

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007

voici mon lien de déconnexion

echo '[index.php?page=deconnexion D&eacute;connexion]
';
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
$pageOK = array('accueil' => 'accueil.php',
'enreg1' => 'enreg1.php',
'enreg2' => 'enreg2.php',
'page1' => 'page1.php',
'page2' => 'page2.php',
'inscription' => 'inscription.php',
'lieux-france' => 'lieux-france.php',
'lieux-pays' => 'lieux-pays.php',
'verif_inscrip' => 'verif_inscrip.php',
'deconnexion' => 'deconnecxion.php' );


<HR width ="100%" SIZE=2>
Si ma reponse te convient, merci de l'accepter !
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007

j'ai essayé, et il me dis
Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-7\www\lieu\deconnexion.php on line 3

dc, je suprime le session_start du ficheir deconnexion, il arrive à déconnecter, mais je dois cliquer 2 fois sur deconnexion et il m'affiche pas l'accueil (div vide).
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
pourquoi mettre un @ devant header ?



si la fonction retourne une erreur la direction est inefficace...



si cette fonction retourne une erreur :



ob_start(); tout en haut



ob_end_flush(); tout en bas

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007

Merci, ça marche.
quelque question, à quoi sert le @ ?
et les focntion ob_start(); et ob_end_flush(); servent à quoi ? je supose à ouvrir et fermer une session, mais quelle diférence avec session_start et session_destroy ?

@+.
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Euh, le @ empeche d'afficher les erreurs et ob_start(); et ob_end_flush();
je sais sans savoir.


<HR width="100%" SIZE=2>
Si ma reponse te convient, merci de l'accepter !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
ob_start() permet de stocker la page dans un buffer et donc d'éviter
toutes les erreurs de headers déjà envoyés. ob_end_flush(); envoit le
buffer au navigateur.



a ++

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
85
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 mars 2007

merci pour les explications
@+.