Bienvenue sur www.STUDENT-DESIGNER.com

Annonces


Forum

Forum Forum > PHP / Mysql > Deconnexion ne déconnecte pas ^^

Deconnexion ne déconnecte pas ^^

Page : [1] 2
iDan Ecrit le Dimanche 3 Decembre 2006 à 15h12


Messages : 23
Grade : Membre
Statut : Hors ligne

Bonjour, j'ai enfin réussi à faire un espace membre :D. Le problème c'est que lorsque je veux qu'il se déconnecte ça ne fonctionne pas.

Mise en situation ^^

Les membres qui ne sont pas inscrits ne peuvent pas voir une certaine page... ils s'incrivent, et la voie. Le problème est que j'ai fait un lien pour ce déconnecter avec ce code :

Code :

<?php
session_start
();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>



Lorsqu'il clique dessus c'est censer le faire déconnecter mais il peut encore aller sur la page réservée au membres...

Si vous pouvez m'aider...

Merci :)

kalipka Ecrit le Dimanche 3 Decembre 2006 à 16h07


Messages : 198
Grade : Super Modérateur
Statut : Hors ligne

Citation :
Lorsqu'il clique dessus c'est censer le faire déconnecter mais il peut encore aller sur la page réservée au membres...


Je ne comprends pas trop là...

iDan Ecrit le Dimanche 3 Decembre 2006 à 16h43


Messages : 23
Grade : Membre
Statut : Hors ligne

Ok...

Alors,

1 : pour faire le test je me suis inscrit, tout va bien

2 : pour faire le test je me suis loguer, tout va bien

3 : pour faire le test j'ai cliquer sur le bouton "déconnexion" qui est supposer me ramener à la page d'accueil déconnecter fonctionne pas.

C'est ça mon problème...

Lorsque je clique sur le bouton "Déconnexion" je suis supposer arriver sur la page d'accueil, ça sa fonctionne, mais lorsque je clique sur un page réservée au membres inscrits et connecter je suis capable de la voir...

Tu comprend mieux ?

manu Ecrit le Dimanche 3 Decembre 2006 à 17h01


Messages : 450
Grade : Administrateur
Statut : Hors ligne

Tu n'as pas fait un systeme avec les cookie qui permet d'etre loggué automatiquement a chaque visite? Ca peut venir de la. Sinon ton code pour se délogguer m'a l'air correct.

Si c'est pas ca, dégage ton

Code :

header('Location: index.php');

et met a la place print_r($_SESSION);

Ca va te retourner le contenu de ta session, pour voir si oui ou non elle a été supprimé.

Prodigy Ecrit le Dimanche 3 Decembre 2006 à 18h14


Messages : 61
Grade : Membre
Statut : Hors ligne

Et ta page qui ne peut être vu que quand on est connecté, on peut voir le code que tu a mis pour réguler l'accès ? Si çà ce trouve çà vient de là.

iDan Ecrit le Dimanche 3 Decembre 2006 à 21h22


Messages : 23
Grade : Membre
Statut : Hors ligne

Manu, J'ai essayer de remplacer par print_r($_SESSION); mais ça m'affiche cela :

Array ()


...

Sinon voici le code pour que juste les membres logués vois la page en faite c'est toute la page au complet...pas juste le code PHP :

Code :

<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    if ((isset(
$_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

        
$base mysql_connect ('serveur''user''pass'); 
        
mysql_select_db ('nom_de_la_base'$base);
        
        
// on teste si une entrée de la base contient ce couple login / pass
        
$sql 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
        
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        
$data mysql_fetch_array($req);
        
        
mysql_free_result($req);
        
mysql_close();
        
        
// si on obtient une réponse, alors l'utilisateur est un membre
        
if ($data[0] == 1) {
            
session_start();
            
$_SESSION['login'] = $_POST['login'];
            
header('Location: membre.php');
            exit();
        }
        
// si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe
        
elseif ($data[0] == 0) {
            
$erreur 'Compte non reconnu.';
        }
        
// sinon, alors la, il y a un gros problème :)
        
else {
            
$erreur 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        }
    }
    else {
        
$erreur 'Au moins un des champs est vide.';
    }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- declaration du doctype, ici une feuille codée en xhtml -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<!-- Titre du site -->
<title>iWebCreation-Accueil</title>
<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
<link rel="stylesheet" media="screen" type="text/css" title="défaut" href="style_pro.css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="style_pro_ie.css" />
<![endif]-->
</head>
<body>

<div id="global">

<div id="header">
    <div class="texte_gauche">
    iWebCreation
    </div>
    <div class="texte_gauche2">
    la nouvelle g&eacute;n&eacute;ration de la conception web.
    </div>
    <div class="texte_droite">
    Vous voulez un site web ?
    </div>
    <br />
    <div class="texte_droite2">
    Demandez à iWebCreation. Faire confiance &agrave; iWebCreation c'est faire confiance au web.
    </div>
    <div class="lien_haut">

    <a href="index_pro1234567890.php"> Accueil</a> <span class="orange">|</span> <a href="#">English</a> 
    </div>
    <div class="lien_horizontal">
    <ul>
    <li><a href="index_pro1234567890.php">Accueil</a></li>
    <li><a href="partenaires.php">Partenaires</a></li> 
    <li><a href="forum.php">Forum</a></li>
    <li><a href="apropos.php">&Agrave; propos d'iWebCreation</a></li>
    <li><a href="ressources.php">Ressources</a></li>
    </ul>
    </div>
</div>

<div id="zone_texte">
    <div class="texte">
        <span class="titre">Liste des logiciel mis en t&eacute;l&eacute;chargement libre.</span>
        <br />
        <br />
        <p>
        <img src="images/downloadiwc.png" />
        </p>        
        <p class="texte_p">
        Bonjour, comme je vois que vous &ecirc;tes membre de mon site, je vous offre quelques logiciels en t&eacute;l&eacute;chargement
        libre qui pourrais vous servir pour administrer votre site web si ce n'est pas moi que le fait.
        </p>
        <p class="texte_p">
        ***Comme premier logiciel GPL je vous offre NotePad++, un &eacute;diteur de texte tr&egrave;s puissant aux multiples fonctions.
        <br />
        <br />
        D&eacute;veloppeur         Don HO
        <br />
        Dernière v&egrave;rsion     3.9 (le 2 octobre 2006)
        <br />        
        Environnement         Microsoft Windows (Autre &agrave; v&eacute;rifier)
        <br />        
        Type                 Éditeur de texte (open source)
        <br />        
        Licence             GPL (Licence publique g&eacute;n&eacute;rale)
        <br />        
        Site web             <a href="notepad-plus.sourceforge.net">notepad-plus.sourceforge.net</a>
        <br />
        T&eacute;l&eacute;charger NotePad++     <a href="iwebcreation.servhome.org/NotePad++.zip">NotePad++ fichier .zip</a>
        </p>
        <p class="texte_p">
        D'autres logiciels vont surment &ecirc;tre mis en t&eacute;l&eacute;chargement libre bient&ocirc;t.
        </p>
    </div>    
    <div class="menu">
    <ul>
    <li><a href="new.php">Nouvelles</a></li>
    <li><a href="download.php">T&eacute;l&eacute;chargement</a></li>
    <li><a href="contact_pro.php">Contact</a></li>    
    </ul>
    </div>
<div class="login">
    <form method="post" action="membre.php">
    <span class="text_login">Login:</span> 
    <br />
    <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>" size="10" maxlength="20" />
    <br />
    <span class="text_login">Mot de passe:</span> 
    <br />
    <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>" size="10" maxlength="20" />
    <br />
    <br />    
    <input type="image" src="../Mes images/envoi.gif" alt="Connexion" title="Connexion à l'espace membre." width="100" height="20" value="Connexion" />
    </form>
    <a href="inscription_membre2.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</div>    
</div>
<div id="footer">

</div>

</div>
</body>
</html>




S'il y a autre chose dites-le :)

Merci encore

manu Ecrit le Dimanche 3 Decembre 2006 à 23h46


Messages : 450
Grade : Administrateur
Statut : Hors ligne

Je ne vois pas ou tu met ta condition dans ton code html, pour n'afficher qu'aux membres une partie réservée de la page.

tu devrais avoir qq part : if ($_SESSION['loggue']) j'affiche la partie reservée

C'est le plus simple de faire un boolean disant si oui ou non le membre est loggué :)

iDan Ecrit le Lundi 4 Decembre 2006 à 12h46


Messages : 23
Grade : Membre
Statut : Hors ligne

Ok et je le met où dans mon code HTML ? est-ce que j'enlève le code PHP qui est avant le code HTML et le remplace par if ($_SESSION['loggue'])?

En tout cas merci et je vais essayer quand je vais savoir où le mettre ^^ :$

manu Ecrit le Lundi 4 Decembre 2006 à 12h50


Messages : 450
Grade : Administrateur
Statut : Hors ligne

Salut,
Déja quand tu fais ca :

Code :

session_start();
$_SESSION['login'] = $_POST['login'];
//Ligne a rajouter
$_SESSION['loggue']=true;



La condition if ($_SESSION['loggue']) signifie littéralement, si le membre est loggué, donc tu dois mettre ton code HTML que tu veux protéger dedans. J'espère etre clair :)

iDan Ecrit le Mardi 5 Decembre 2006 à 02h25


Messages : 23
Grade : Membre
Statut : Hors ligne

Ok... donc c'est comme ça ?

Code :

<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    if ((isset(
$_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

        
$base mysql_connect ('serveur''user''pass'); 
        
mysql_select_db ('nom_de_la_base'$base);
        
        
// on teste si une entrée de la base contient ce couple login / pass
        
$sql 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
        
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        
$data mysql_fetch_array($req);
        
        
mysql_free_result($req);
        
mysql_close();
        
        
// si on obtient une réponse, alors l'utilisateur est un membre
        
if ($data[0] == 1) {
            
session_start();
            
$_SESSION['login'] = $_POST['login'];
            
//Ligne a rajouter
            
$_SESSION['loggue']=true;
            
header('Location: membre.php');
            exit();
        }
        
// si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe
        
elseif ($data[0] == 0) {
            
$erreur 'Compte non reconnu.';
        }
        
// sinon, alors la, il y a un gros problème :)
        
else {
            
$erreur 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        }
    }
    else {
        
$erreur 'Au moins un des champs est vide.';
    }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- declaration du doctype, ici une feuille codée en xhtml -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<!-- Titre du site -->
<title>iWebCreation-Accueil</title>
<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
<link rel="stylesheet" media="screen" type="text/css" title="défaut" href="style_pro.css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="style_pro_ie.css" />
<![endif]-->
</head>
<body>

<div id="global">

<div id="header">
    <div class="texte_gauche">
    iWebCreation
    </div>
    <div class="texte_gauche2">
    la nouvelle g&eacute;n&eacute;ration de la conception web.
    </div>
    <div class="texte_droite">
    Vous voulez un site web ?
    </div>
    <br />
    <div class="texte_droite2">
    Demandez à iWebCreation. Faire confiance &agrave; iWebCreation c'est faire confiance au web.
    </div>
    <div class="lien_haut">

    <a href="index_pro1234567890.php"> Accueil</a> <span class="orange">|</span> <a href="#">English</a> 
    </div>
    <div class="lien_horizontal">
    <ul>
    <li><a href="index_pro1234567890.php">Accueil</a></li>
    <li><a href="partenaires.php">Partenaires</a></li> 
    <li><a href="forum.php">Forum</a></li>
    <li><a href="apropos.php">&Agrave; propos d'iWebCreation</a></li>
    <li><a href="ressources.php">Ressources</a></li>
    </ul>
    </div>
</div>

<div id="zone_texte">
    <div class="texte">
        <span class="titre">Liste des logiciel mis en t&eacute;l&eacute;chargement libre.</span>
        <br />
        <br />
        <p>
        <img src="images/downloadiwc.png" />
        </p>        
        <p class="texte_p">
        Bonjour, comme je vois que vous &ecirc;tes membre de mon site, je vous offre quelques logiciels en t&eacute;l&eacute;chargement
        libre qui pourrais vous servir pour administrer votre site web si ce n'est pas moi que le fait.
        </p>
        <p class="texte_p">
        ***Comme premier logiciel GPL je vous offre NotePad++, un &eacute;diteur de texte tr&egrave;s puissant aux multiples fonctions.
        <br />
        <br />
        D&eacute;veloppeur         Don HO
        <br />
        Dernière v&egrave;rsion     3.9 (le 2 octobre 2006)
        <br />        
        Environnement         Microsoft Windows (Autre &agrave; v&eacute;rifier)
        <br />        
        Type                 Éditeur de texte (open source)
        <br />        
        Licence             GPL (Licence publique g&eacute;n&eacute;rale)
        <br />        
        Site web             <a href="notepad-plus.sourceforge.net">notepad-plus.sourceforge.net</a>
        <br />
        T&eacute;l&eacute;charger NotePad++     <a href="iwebcreation.servhome.org/NotePad++.zip">NotePad++ fichier .zip</a>
        </p>
        <p class="texte_p">
        D'autres logiciels vont surment &ecirc;tre mis en t&eacute;l&eacute;chargement libre bient&ocirc;t.
        </p>
    </div>    
    <div class="menu">
    <ul>
    <li><a href="new.php">Nouvelles</a></li>
    <li><a href="download.php">T&eacute;l&eacute;chargement</a></li>
    <li><a href="contact_pro.php">Contact</a></li>    
    </ul>
    </div>
<div class="login">
    <form method="post" action="membre.php">
    <span class="text_login">Login:</span> 
    <br />
    <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>" size="10" maxlength="20" />
    <br />
    <span class="text_login">Mot de passe:</span> 
    <br />
    <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>" size="10" maxlength="20" />
    <br />
    <br />    
    <input type="image" src="../Mes images/envoi.gif" alt="Connexion" title="Connexion à l'espace membre." width="100" height="20" value="Connexion" />
    </form>
    <a href="inscription_membre2.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</div>    
</div>
<div id="footer">

</div>

</div>
</body>
</html>


?????

À bientôt :)

Page : [1] 2
Forum Forum > PHP / Mysql > Deconnexion ne déconnecte pas ^^

Derniers inscrits