Partage
  • Partager sur Facebook
  • Partager sur Twitter

Les cookies ne restent pas...

    21 janvier 2021 à 13:52:21

    Bonjour à tous,

    J’ai un petit gros problème :

    Je suis en train de coder un site internet/forum avec du php, une base de données, etc... et j’ai envie d’enregistrer les informations de connexion dans des cookies.

    Les cookies se créent et sont enregistrer dans un fichier dans le serveur du site appelé, par exemple : « sess_5omduuellaeddl4i7jejfcecmu ». J’ai mis comme durée de vie du cookie :

    time() + 365*24*3600

    Mais à chaque fois que je ferme le navigateur et que je le rouvre, un nouveau fichier de session est créé et les cookies stockés dans celui d’avant ne sont plus accessibles par le site... et je ne comprends pas pourquoi !! Help !

    (Mon code html de création de cookie :)

    //envoi des données de connexion par l’utilisateur via un formulaire
    //récupération dans la bdd des données de connexion
    //vérification des données de connexion et vérification si la checkbox « stay_connected » est cochée
    if ($isPasswordCorrect)
                     {
                     session_start();
                     $_SESSION['id'] = $resultat['id'];
                     $_SESSION['pseudo'] = $resultat['pseudo'];
                     if(isset($_POST['stay_connected']))
                     {
                     	setcookie('id', $resultat['id'], time() + 365*24*3600);
                     	setcookie('pseudo', $resultat['pseudo'], time() + 365*24*3600);


     


    Mon code html de récupération de cookie :

    <?php
        session_start();
        if(!isset($_SESSION['pseudo']) AND !isset($_COOKIE['pseudo']))
            {
                header("Location:connexion/connexion.php");
            }
        if(!isset($_SESSION['pseudo']) AND isset($_COOKIE['pseudo']))
        {
        	$_SESSION['pseudo'] = $_COOKIE['pseudo'];
        }


    En tout cas, merci par avance !

    Apprenti_Will

    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2021 à 13:56:17

      Tu es conscient qu'avec ton système de cookie on peut usurper l'identité de qui on veut ?

      Bref, essaie de préciser le paramètre path de tes setcookie avec '/' en valeur vu le Location:connexion/connexion.php, ça doit impliquer différents niveaux dans l'arborescence de ton site ce qui fait qu'ils ne sont pas envoyés sur les pages que tu penses.

      > Les cookies se créent et sont enregistrer dans un fichier dans le serveur du site appelé

      Non, les cookies sont stockés sur le client. Les données de sessions sur le serveur.

      > à chaque fois que je ferme le navigateur et que je le rouvre, un nouveau fichier de session est créé

      C'est ainsi que sont censées fonctionner les sessions. Du moins si on met le temps d'expiration de leur cookie à 0 (session.cookie_lifetime) - valeur par défaut, ce qui les qualifie justement de cookies dits de session, ce qui signifie que le client (navigateur mais pas que) est censé les supprimer à sa fermeture (mais c'est de moins en moins respecté - Chrom* et Firefox ne le font pas/plus par défaut)

      -
      Edité par julp 21 janvier 2021 à 14:01:19

      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2021 à 14:01:39

        Oui je suis au courant pour l’usurpation d’identité mais là, je fais des petits tests... Sinon, comment faire pour que l’utilisateur n’ai pas à se connecter dès qu’il sort de son navigateur ??

        C’est étrange parce que la plupart des fichiers présents sont vides à part les sessions durant lesquelles les cookies ont été créé... comme celui-ci :

        id|s:2:"20";pseudo|s:14:"Maître du Jeu";


        Je suis au courant aussi pour les sessions, mais alors pourquoi mes cookies sont-ils inaccessibles ? Pourquoi ça ne se reconnecte pas automatiquement ??

        Edit : c’est d’ailleurs pour cela que j’ai mis time() + 365*24*3600

        -
        Edité par Apprenti_Will 21 janvier 2021 à 14:02:37

        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2021 à 14:04:05

          > C’est étrange parce que la plupart des fichiers présents sont vides à part les sessions durant lesquelles les cookies ont été créé...

          Je ne vois pas que ça prouve. Au contraire, je trouve ça parfaitement normal, ça montre justement que tu repars d'une session vide parce qu'il y a un problème avec tes cookies pour rester connecté.

          > mais alors pourquoi mes cookies sont-ils inaccessibles ?

          Tu as essayé de mettre leur path à / comme demandé ?

          > Pourquoi ça ne se reconnecte pas automatiquement ?

          Parce que comme je le pense tes cookies ont /connexion/ comme path donc il ne sont pas envoyés pour / et autres (tout ce qui n'est pas /connexion/ et toute sa propre "arborescence") ?

          > c’est d’ailleurs pour cela que j’ai mis time() + 365*24*3600

          Quand j'évoquais l'expiration, je mentionnais spécifiquement celui du cookie qui propage l'identifiant de la session, pas de tes propres cookies. A aucun moment dans ces codes, tu ne redéfinis session.cookie_lifetime, sachant que ce cookie de session, c'est PHP qui le gère.

          -
          Edité par julp 21 janvier 2021 à 14:11:34

          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2021 à 14:08:42

            C’est ça !! C’est que je n’avais pas mis le path ‘/‘ !

            Merci beaucoup !

            Une petite dernière question : avec plus de sécurité, y’a-t-il une autre solution pour que l’utilisateur reste connecté sans qu’il risque de se faire usurper son identité ??

            -
            Edité par Apprenti_Will 21 janvier 2021 à 14:08:55

            • Partager sur Facebook
            • Partager sur Twitter
              21 janvier 2021 à 14:17:07

              Un token ? Je ne connais pas... -_-

              À quoi ça sert s’il vous plaît ?

              -
              Edité par Apprenti_Will 21 janvier 2021 à 14:17:29

              • Partager sur Facebook
              • Partager sur Twitter

              Les cookies ne restent pas...

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown