[PHP] Pb de déconnexion

Bonjour,

Je voudrais que la déconnexion de mon site se fasse correctement ...
Seulement elle ne se fait pas ...

Code de ma page de déconnexion (fichier: deconnexion.php)
<?php

session_start();
unset($_SESSION);
session_destroy();

header ('Location:connexion.php');

?>


Code de ma page de connexion (fichier: connexion.php)
<?php
session_start ();
$_SESSION = true;
?>

<!DOCTYPE HTML + code html>
			
	<?php
									
	if ($_SESSION)
	{
	echo '<br/>Vous êtes deja connecté !<br/>';
	}

        else
	{
	include ("connexion1.php"); //page avec formulaire de connexion
	}
	?>
				
				
				<?php include("footer.php"); ?>
			
<fin du code html entier>


La connexion se fait normalement mais quand je clique sur le bouton déconnexion (avec le script deconnexion), il me met "Vous êtes déjà conecté !" alors que je voudrais qu'il m'affiche le fichier connexion1.php (fichier contenant le formulaire de connexion)

4 réponses

  1. Contributeur
    <?php

    if (isset($_SESSION))
    {
    echo '<br/>Vous êtes deja connecté !<br/>';
    }

    else

    {
    include ("connexion1.php"); //page avec formulaire de connexion
    }
    ?>
    1. $_SESSION = true;
      
      									
      if ($_SESSION)


      si tu met $_SESSION = true, la condition derrière sera toujours vraie...

      enlève $_SESSION = true;
      1. J'ai déjà essayé le isset, ça ne fonctionne pas.
        Concernant le $_SESSION = true, je l'ai enlevé puis remis pour voir mais c'est toujours pareil ...

        Pour moi, c'est la page de déconnexion qui merde ...

        D'autres avis ?
        1. As-tu essayé avec session_unset() à la place de unset() ?
      2. c'est interdit de faire : unset($_SESSION); car là tu détruis la superglobale
        attention à la redirection avec header dans un code contenant les variables de $_session.

        efface ceci qui ne sert à rien
        session_start ();
        $_SESSION = true;

        et utilise plutot session_unset() dans la page de deconnexion