Comment déconnecter une session membre

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par gcvoiron, 24 Avril 2006.

  1. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Bonjour, je possède un site avec des membres. Faut-il faire un fichier spécial pour la déconnection des membres? Merci.
     
  2. Delapouite
    Delapouite WRInaute discret
    Inscrit:
    9 Janvier 2005
    Messages:
    156
    J'aime reçus:
    0
    Un utilisateur doit etre en mesure de se déconnecter à tout instant, sans pour cela attendre que son temps de session se termine. Donc oui, il est important de créer ce genre de fonctionnalité.
     
  3. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Et comment créer ce fichier svp? Que dois-je mettre dedans? Merci.
     
  4. petit-ourson
    petit-ourson WRInaute impliqué
    Inscrit:
    31 Mai 2004
    Messages:
    680
    J'aime reçus:
    0
    Dans ton fichier tu mets un unset($_SESSION) ou/et unset($_COOKIE) suivant la façon dont tes sessions sont gérées.

    N'oublies pas d'ouvrir ta session avant de la supprimer.
     
  5. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    Pour cela il faut utiliser la commande session_destroy() (si tu développes en PHP bien évidemment)
     
  6. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Voilà le code du fichier de login pour rentrer dans les sessions :

    Code:
    <?php
            include("var.inc.php");
            $conn = @mysql_connect($dbserver,$dbuser,$dbpass);
            if (!$conn)
                    {
                            die("Sorry, database not found !");
                    }
            mysql_select_db($dbname,$conn);
    
                    {
    
                            $ip = $email;
                            $zeit = time ();
                            $nichtmehrgueltig = $zeit-$stehenlassen;
                            $query = "DELETE FROM demo_a_iptest WHERE timefeld <= ".$nichtmehrgueltig;
                            mysql_query($query,$conn);
                            $query = "SELECT * FROM demo_a_iptest WHERE ip = '".$ip."'";
                            $result = mysql_query($query,$conn);
                            $rows = mysql_num_rows($result);
                            if ($rows >= 1)
                                    {
    
    require('./prepend.inc.php');
    if($email && $password)
            loginb();
    
    }
                            else
                                    {
    
    require('./prepend.inc.php');
    if($email && $password)
            login();
    
    
    $query = "INSERT INTO demo_a_iptest VALUES (\"$ip\", $zeit)";
                                            mysql_query($query,$conn);
                                    }
    
                    }
    
    
    mysql_close($conn);
    ?>
    [/quote]
     
  7. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Est-ce que CODE dont vous avez besoin pour me dire la façon dont mes sessions sont gérés? Merci.
     
  8. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Pour déconnecter l'utilisateur il te suffit de faire une page php qui détruit les sessions comme te le conseil petit-ourson.

    Contenu du fichier deconnexion.php :
    Code:
    <?php
    
    session_start();
    unset($_SESSION);
    unset($_COOKIE);
    session_destroy();
    header ('Location: /index.php');
    
    ?>
    
    Lien sur lequel l'utilisateur doit cliquer pour se déconnecter :
    Code:
    <a href="deconnexion.php">Déconnexion</a>
     
  9. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    C'est fait. Mais dès que je clic qur deconnection, la page de déconnection apparait avec le message suivant :
     
  10. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    puisque c'est une page de deconnexion, il ne doit pas y avoir de session_start()
     
  11. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    J'ai enlevé le session start, ce qui me donne :
    Code:
    <?php 
    
    unset($_SESSION); 
    unset($_COOKIE); 
    session_destroy(); 
    header ('Location: /index.php'); 
    
    ?> 
    Mais le message suivant apparait :
     
  12. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    J'ai merdé sur les cookies, tu peux pas effacer les cookies et rediriger tout de suite. Soit tu effaces les cookies et sur la page deconnexion.php tu places un lien vers l'accueil de ton site, soit tu n'effaces pas les cookies et tu rediriges direct sur l'accueil.

    Sans effacer les cookies :
    Code:
    <?php
    
    session_start();
    unset($_SESSION);
    session_destroy();
    header ('Location: /index.php');
    
    ?>
    
    En effaçant les cookies :
    Code:
    <?php
    
    session_start();
    unset($_SESSION);
    unset($_COOKIE);
    session_destroy();
    
    ?>
    <html>
    <head></head>
    <body>
    <a href="/">Retour à l'accueil</a>
    </body>
    </html>
    
    Et moi sur mon site j'ai un session_start(); sur ma page de deconnexion...
     
  13. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    le session_start() est obligatoire, deconnexion ou pas.

    Code:
    open(/var/www/42/b/o/o/boost-trafic.com/www/sessions//.sess_081a30522aa2421babf048c80efa5122, O_RDWR) failed: No such file or directory (2) in deconnection.php on line 288 
    
    ^^ on line 288 ??? peux tu nous montrer le contenu exact de ce fichier ?

    il y a en fait une seule erreur dans ton code, mais celle ci provoque des messages en chaine, c'est normal lorsque l'on tente d'envoyer des headers.
     
  14. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Je ne sais pas si ça change quelquechose mais lorsque le membre veut se déconnecter, il est dans -http://www.monsite.com/membre. Et la page de déconnection est dans -http://www.monsite.com/deconnection.php (pas dans le répertoire membre).
     
  15. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Au début j'avais mit le CODE au milieu de ma page, ce qui me donnait les lignes 286 à 294 :
    Code:
    <?php 
    
    session_start(); 
    unset($_SESSION); 
    unset($_COOKIE); 
    session_destroy(); 
    header ('Location: /index.php'); 
    
    ?>
    Mais il est maintenant juste après <head>, ce qui me donne les lignes 6 à 13 :
    Code:
    <?php 
    
    unset($_SESSION); 
    unset($_COOKIE); 
    session_destroy(); 
    header ('Location: /index.php'); 
    
    ?>
     
  16. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    >> Mais il est maintenant juste après <head>

    tu essayes de detruire une session apres avoir envoyé le header html au naviagteur ? ton code n'est pas en ligne 1 de ta page ?
     
  17. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Ben non, je ne savais pas qu'il fallait le mettre en première ligne... Je vais essayer!
    :lol:
     
  18. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    C'est ça, en fait tu effaces la session en haut de ton fichier et tu veux acceder à une variable de session ligne 288, c'est pas bon ça.

    Tu peux essayer de faire un nouveau fichier php qui contient seulement :

    Code:
    <?php
    session_start();
    unset($_SESSION);
    unset($_COOKIE);
    session_destroy();
    ?>
    <html>
    <head></head>
    <body>
    <a href="/">Retour à l'accueil</a>
    </body>
    </html>
    
     
  19. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    si il fait une redirection 301 après le session destroy(), ca ne poses pas de problème. mais déjà qu'il le fasse avant tout envoi html ^^
     
  20. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    J'ai créé un deconnection.php avec seulement :

    Code:
    <?php 
    session_start(); 
    unset($_SESSION); 
    unset($_COOKIE); 
    session_destroy(); 
    ?> 
    <html> 
    <head></head> 
    <body> 
    <a href="/">Retour à l'accueil</a> 
    </body> 
    </html> 
    Mais ce message apparait :

     
  21. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Bah la je peux pas t'aider plus, je vois pas le truc...

    Ca dépasse mes compétences. Désolé.
     
  22. finstreet
    finstreet WRInaute accro
    Inscrit:
    10 Juillet 2005
    Messages:
    13 358
    J'aime reçus:
    2
    euh... le <head> ne doit pas apparaitre :)

    si tu écris AVANT, le header ne fonctionnera pas
     
  23. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Je n'ai pas bien compris... Je doit enlever le <head>? Je met ça :
    <?php
    session_start();
    unset($_SESSION);
    unset($_COOKIE);
    session_destroy();
    ?>
    <html>
    </head>
    <body>
    <a href="/">Retour à l'accueil</a>
    </body>
    </html>
     
  24. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Tu peux essayer de mettre juste ça dans ton fichier deconnexion.php :

    Code:
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('Location: index.php');
    exit();
    ?>
    
    La y a pas de cookies, pas de html...

    Ca fonctionne chez moi.

    J'ai trouvé ce bout de code la : http://www.lephpfacile.com/howto/index.php?p=10
     
  25. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    J'ai fait exactement comme reglysse me l'a dit... Mais ce message persiste :

    Quelqu'un saurait m'expliquer d'où vient le problème? Merci.
     
  26. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    attention, un simple espace blanc ou retour à la ligne peut suffir à poser probleme.

    Warning: session_start(): open(/var/www/42/b/o/o/boost-trafic.com/www/sessions//.sess_e431df01f1eea6aa8f9375f6b5a5e74a, O_RDWR) failed: No such file or directory (2) in deconnection.php on line 2

    Ce message persiste, et je commence à me demander si ce n'est pas tout simplement un probleme de répertoire de stockage des sessions...? lorsque tu stocke des variables en session dans une page, tu arrives à les récupérer dans une autre page au moins ??
     
  27. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Désolé, mais je ne comprends pas trop ce que vous me demandez...
    :oops:
     
  28. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Bien vu ça Toutou-Fr !!!

    gcvoiron est-ce que tu peux tester ce fichier php et nous dire ce que ça affiche ?

    test.php :
    Code:
    <?php
    session_start();
    $_SESSION["test"] = "test session";
    
    echo $_SESSION["test"];
    ?>
    
     
  29. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Ca afiche ceci :
     
  30. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    et tes pages qui n'utilisent pas de sessions fonctionnent correctement ? elles sont dans le meme repertoire que cette page ?

    Je vois deux possibilités : soit tu as fait un .htaccess défaillant, soit ton hebergeur devrait changer de métier ;-)
     
  31. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    tu fais ça en asp ou en php ?

    <- ok je sors

    Bon bah vraiment désolé mais je comprends pas plus que toi...
     
  32. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    -> Oui mon site marche parfaitement bien, aucun problème!

    -> Jai à la racine du site toutes mes pages et les répertoires suivants :
    -admin pour l'espace Administrateur
    -member pour l'espace membre
    -images avec les images...

    -> Voici la seule ligne de mon htaccess
    Code:
    ErrorDocument 404 http://www.boost-trafic.com/404.php
    -> C'est Online et j'ai déjà eu quelques problèmes avec eux (mon site ne marchait plus pendant 10 jours!).
     
  33. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
  34. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0

    ...un forum c'est bien, une doc c'est pas mal non plus.



    Désolé pour les croisements successifs depuis le début du topic reglysse ;-)
     
  35. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
  36. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Quand tu dis que ça marche, ça marche avec quel fichier deconnexion.php ?
     
  37. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Oui avec deconnection.php.
     
  38. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    oui mais lequel parce qu'on t'en a fait faire pas mal depuis le début !!!

    Tu peux me montrer le contenu, please ?


    Pas de probleme c'est fait pour ça un forum.
     
  39. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Voici le contenu :

    Code:
    <?php 
    session_start(); 
    session_unset(); 
    session_destroy(); 
    header('Location: http://www.boost-trafic.com/index.php'); 
    exit(); 
    ?>
     
  40. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    et tu as fait quoi pour que ça marche exactement ? Tu as créé un repertoire "sessions" à la racine c'est ça ?
     
  41. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    J'ai créé un repertoire session avec les fichiers :
    -start.php avec ceci dedans :
    Code:
    <?
    session_start();
    session_register ("count");
    $count = 42;
    ?>
    On enregistre <? echo $count; ?> >BR>
    Pour aller a la page suivante, <A HREF="nextpage.php">cliquez ici</A>
    -nextpage.php avec ceci dedans :
    Code:
    <?
    session_start();
    session_register("count");
    echo "La valeur précédente de count etait " . $count ."<br>";
    ?>
     
  42. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    normal que ca ne marche pas.

    session_register ne s'utilise qu'au moment de l'affectation de la valeur.


    et apres il faut appeler la variable en faisant $_SESSION['count']
     
  43. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    OK mais je dois faire quoi? Modifier quoi?
    :lol:
     
  44. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Tes fichiers ne doivent pas être dans le repertoire "sessions", ce repertoire sert uniquement au serveur pour stocker les variables de sessions des utilisateurs. A chaque nouvelle session le serveur va créer un fichier identifiant_session avec à l'interieur les variables de la session.
     
  45. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Mais je dois les mettres où ces 2 fichiers?
     
  46. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    ou tu veux !
     
  47. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Mais ils sont utiles? Je suis obligé de les mettres?
     
  48. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    Non c'est juste un test pour voir si tes sessions fonctionnent bien justement...
     
  49. gcvoiron
    gcvoiron WRInaute occasionnel
    Inscrit:
    19 Octobre 2005
    Messages:
    459
    J'aime reçus:
    0
    Bon ben c'est bon, ça marche! Merci à tous de m'avoir aidé!
     
  50. reglysse
    reglysse WRInaute discret
    Inscrit:
    19 Avril 2006
    Messages:
    146
    J'aime reçus:
    0
    De rien, bon courage pour la suite.
     
  51. petit-ourson
    petit-ourson WRInaute impliqué
    Inscrit:
    31 Mai 2004
    Messages:
    680
    J'aime reçus:
    0
    Moi j'en vois une 3e solution, un autre changement de métier.
     
  52. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    Mais pourquoi est il aussi méchant ?;-)
     
Chargement...
Similar Threads - déconnecter session membre Forum Date
Comment se deconnecter d'une session Développement d'un site Web ou d'une appli mobile 9 Décembre 2007
Comptabiliser session d'une URL avec ancre et avec scroll Google Analytics 27 Avril 2022
sessions PHP sans cookies ? Développement d'un site Web ou d'une appli mobile 26 Décembre 2021
PHP session perso : session_start() en erreur. Développement d'un site Web ou d'une appli mobile 27 Juillet 2020
Memcached/PHP gestion de sessions Développement d'un site Web ou d'une appli mobile 22 Juillet 2020
solution pour avoir une "Durée de la session" autre que 0 Google Analytics 5 Avril 2020
htaccess errordocument me fait perdre ID de session Développement d'un site Web ou d'une appli mobile 18 Août 2019
Organic search = durée de session = 0s Référencement Google 18 Juillet 2019
stats taux de rebond et durée sessions Débuter en référencement 7 Février 2019
Arfooo PHP 7 : (2) session_start(): Cannot send session cache limiter Annuaires et moteurs 31 Janvier 2019
Durée moyenne de session énorme (+ de 15h) dans Google Analytics Problèmes de référencement spécifiques à vos sites 12 Décembre 2018
restauration de la dernière session chrome Gmail, Google Talk, Blogger et Orkut 16 Janvier 2018
Nouvelles sessions vs Utilisateurs Google Analytics 23 Novembre 2016
de 0 à 5O sessions/jour d'une seule ville ?? Google Analytics 12 Septembre 2016
[résolu] Sessions : lire le contenu alors qu'on ne sait pas comment il est nommé... Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Avoir un paramètre de session "dynamique" ? Développement d'un site Web ou d'une appli mobile 25 Mai 2016
session live sur Google Analytics Débuter en référencement 1 Mai 2016
Différence énorme entre clics Facebook Ads et Sessions Google Analytics Google Analytics 9 Février 2016
Extraire les sessions pour chaque mois par source Google Analytics 30 Septembre 2015
Taux de rebond = 0% et durée de session =00:00:00 Google Analytics 24 Juillet 2015