Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai suivi le tutoriel de Grafikart sur la gestion d'espace membre (refactorisation)

logout.php
require '../Library/Autoloader.php';
Autoloader::register();
App::getAuth()->logout();
Session::getInstance()->setFlash('success', 'Vous êtes maintenant déconnecté');
App::redirect('../login.php');
public function logout(){
        setcookie('remember', NULL, -1);
        $this->session->delete('auth');
    }

Ce que je veux

Je cherche a faire en sorte que le systeme marche en se deconnectant le cookie s'éfface et que cela me reconnecte pas automatiquement apres deconnexion

Ce que j'obtiens

Quand je me déconnecter sa me renvoir sur la page account.php avec en message vous etes déconnecter mais le cookie est toujours present je peut pas me déconnecter

5 réponses


Mmh c'est bizarre,
essaie de var_dump les cookies après la partie logout, voir si l'effacement se passe correctement

Essaie de unset($_COOKIE['remember']) en plus pour voir dans ton logout

Cela suprime le cookie mais sa me reconnect direct
code du reconnectformcookie
https://gyazo.com/8f0c28da16fe2f03c308a1cc5d6a25a8.png

    public function connectFromCookie($db){
        if(isset($_COOKIE['remember']) && !$this->user()){
            $remember_token = $_COOKIE['remember'];
            $parts = explode('==', $remember_token);
            $user_id = $parts[0];
            $user = $db->query('SELECT * FROM users WHERE id = ?', [$user_id])->fetch();
            if($user){
                $expected = $user_id . '==' . $user->remember_token . sha1($user_id . 'ratonlaveurs');
                if($expected == $remember_token){
                    $this->connect($user);
                    setcookie('remember', $remember_token, time() + 60 * 60 * 24 * 7);
                } else{
                    setcookie('remember', null, -1);
                }
            }else{
                setcookie('remember', null, -1);
            }
        }
    }