Bonjour, j'essaie de creer un systeme de connexion automatique sur mon site, mais ca empeche l'acces a certaines pages.

voici le scenario:
J'ai une page de connexion.
Quand l'utilisateur se connecte, cette page cree un cookie contenant permettant de se rappeler de l'utilisateur et le redirige vers son espace membre. Mais le probleme qui se: Le cookie a ete bien creer, la redirection vers la page account marche tres bien, mais le navigatuer me dit qu'il est impossible d'acceder a cette page a cause des cookies. C'est le cas de Firefox, safari, chrome et iE.

hELP me Please.

12 réponses


Lartak
Réponse acceptée

OK, je test si le cookie existe deja, sinon je le cree...c' ca?

Pas uniquement.
Surtout que si le navigateur de l'utilisateur bloque les Cookies, tu ne pourras pas en créer.
Si comme dans ton cas, les Cookies ne sont pas autorisés (et donc bloqués) par le navigateur de l'utilisateur, tu ne fais aucune redirection et tu annules le système de connexion persistante pour l'utilisateur tout en le prévenant par exemple.
Pour faire simple, tu tentes de créer le Cookie à sa connexion et dans ton système de vérification de Cookie lorsqu'un utilisateur est déconnecté, tu vérifies d'abord si le Cookie existe avant de le connecter et faire la redirection.
Ce serait quand même plus simple si tu nous montrait du code, car là nous ne pouvons faire que des suppositions.

Steeve VERDIEU
Auteur
Réponse acceptée
$req = $database->prepare('SELECT * FROM users WHERE username = ? OR email=?');
    $req->execute(array($_POST['username'], $_POST['username']));
    $user = $req->fetch();

    if($user){

        if(password_verify($_POST['password'], $user['password'])){
            if($user['validate_token'] == NULL){
                $_SESSION['auth'] = $user;
                $remember_token = $_COOKIE['remember_me'];
                $update_token = $database->prepare('UPDATE users SET remember_token=? WHERE id_user=?');
                $update_token->execute(array($remember_token, $user['id_user']));

                $_SESSION['flash']['succes'] = "You are connected";
                header('Location: index.php?page=account');
                setcookie('remember_me', $user['id_user'] . '==' . sha1($user['id_user']) . '==' . sha1($user['username']), time() + 3600 * 24 * 1);
                exit();
            }
Lartak
Réponse acceptée

Merci de ton aide, j'ai suivi ton conseil, et c'est resolu.

De rien.

Salut,

Je n'ai pas compris, tu veux bloquer l'accès à certaines pages ou c'est un bug que tu rencontres ?
Si c'est un bug, un bout de code aide toujours pour se rendre compte de ce que tu as comme existant :)

Salut,

Peux-tu c/c l'erreur qui t'es retrounée qu'on puisse t'aider ?
Tu utilises un framework ?

non, pas de framework

je vais poster l'erreur

voici l'erreur:![](C:\Users\Steevy Jobs\Pictures\red.jpg)

The page isn't redirecting properly
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
This problem can sometimes be caused by disabling or refusing to accept cookies

Bonjour.
Vu l'erreur, c'est que tu as bloqué les cookies et la redirection ne s'effectue pas correctement.
Il te faut donc faire une vérification si le Cookie existe bien avant de vouloir faire une redirection.

OK, je test si le cookie existe deja, sinon je le cree...c' ca?

Merci de ton aide, j'ai suivi ton conseil, et c'est resolu.