IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Faire perdurer variable de session après fermeture du navigateur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut Faire perdurer variable de session après fermeture du navigateur
    Bonjour,

    J'aimerais arriver à faire perdurer ma variable de session $_SESSION['auth'] même après la fermeture de mon navigateur.
    J'ai regardé sur Internet avant de poster ici, mais ce que j'ai tenté n'a pas marché. Je ne cherche pas pour l'instant à faire quelque chose de très sécurisé, juste que j'arrive à faire ce que je veux avec le login de l'utilisateur par exemple.

    En fait quand je me connecte, je crée un cookie de login qui prend pour valeur la valeur de l'input de mon formulaire de connexion.
    Je range cette valeur dans $_SESSION['auth'] également.
    Ensuite dans un fichier config.php je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    session_start();
    require"ConnexionBDD.php";
     
    if(!isset($_SESSION['auth']) AND isset($_COOKIE['login'],$_COOKIE['password']) AND !empty($_COOKIE['login']) AND !empty($_COOKIE['password']))
    {
      $result = $db->query("SELECT count(*) as nb FROM Utilisateur WHERE Login=".$db->quote($_COOKIE['login'])."AND Password=".$db->quote($_COOKIE['mdp']));
      $data = $result->fetch();
      $nb = $data['nb'];
     
      if($nb != 0){
         $_SESSION['auth']=$_COOKIE['login'];
        }
    }
    ?>
    J'insère ce code dans mon index.php, et normalement il devrait être appelé pour toutes les pages de mon site, car elles complètent toutes index.php.
    Seulement ça ne marche pas, quand je quitte le navigateur, ma variable de session n'existe plus. J'utilise une base SQLITE.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne cherche pas pour l'instant à faire quelque chose de très sécurisé
    Je ne vois pas bien l'interêt de faire quelque chose qui ne peut pas être utilisé.

    Sinon, ta requête est fausse : il manque les apostrophes pour les valeurs.
    Active les erreurs PDO quand tu developpes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut
    C'est juste pour comprendre le principe, après j'adapterai.

    Normalement la requête elle fonctionne, parce que je l'ai pris dans un autre script qui fonctionne. $db->quote permet de bien "apostropher" les valeurs

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $db->quote permet de bien "apostropher" les valeurs
    Ah oui tiens autant pour moi.

    Tu as contrôlé ce que valait $data ?

    Au passage le test isset est déjà inclu dans le test !empty, il n'est pas besoin de faire les deux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut
    Je n'ai pas contrôlé ce que vaut data, mais ma variable $nb fonctionne, elle vaut 0 si l'utilisateur n'existe pas, et 1 s'il existe, donc le contenu de data doit être bon.

    Merci, je vais enlever celui qui est de trop alors.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Donc tu rentres bien dans la condition ?
    ou pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Supprimer variable de session après l'avoir affichée
    Par Augustule dans le forum Langage
    Réponses: 7
    Dernier message: 15/10/2013, 11h22
  2. Réponses: 2
    Dernier message: 20/04/2009, 11h46
  3. Réponses: 4
    Dernier message: 10/09/2008, 14h27
  4. Comment faire une variable de session correctement
    Par Battosaiii dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 10/04/2006, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo