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

Langage PHP Discussion :

[Cookies] Session.. ou non ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [Cookies] Session.. ou non ?
    Bonjour à tous !

    Comme vous pouvez le voir je suis un petit nouveau (étudiant en DUT info)... Et comme le veut la tradition, je vais venir vous embêter un peu avec mes petites questions métaphysiques qui ne concernent cependant pas directement le codage. En passant je tiens à remercier les différentes personnes à l'origine des cours et tutoriels du site qui m'ont bien aidé à avancer dans mon projet (qui n'est rien d'autre qu'apprendre l'utilisation du langage php combinée à une base de donnée, dans mon cas MySQL et PL/SQL).

    Venons en à ce qui me dérange...

    J'ai commencé la création d'un portail dynamique pour m'entrainer, et donc qui n'a pas pour but d'être publié mais plutôt de me servir de base d'étude. Ce portail utilise MySQL comme base de donnée, et ma base en question contient comme je suppose tous les portails une table "Utilisateur" qui contient donc toutes les informations relatives à un utilisateur.
    Cette base contient aussi depuis peu une base "Session" que j'ai créé après avoir regardé le tutoriel expliquant que la création d'une session avec la fonction correspondante en php n'est pas sécurisée.
    Une utilisation minime de cette fonction fait cependant partie du tutoriel et concerne le stockage du sid qui nous donne accès à la base session, puis à la base utilisateur, à partir de laquelle on récupère les informations dont nous aurons plus tard besoin un peu partout sur le portail.

    Ma question est donc la suivante... Est-il vraiment necessaire d'utiliser à un moment la fonction session du php qui ne fait finalement que propager une variable (sid). N'est-il pas plus simple de gérer le sid à partir d'une variable globale qu'on régénererait aléatoirement à chaque connexion de l'utilisateur avec une fonction, pourquoi pas de type random ? La base session est-elle necessaire si l'on ne veut pas necessairement générer un log des connections des utilisateurs... Ne pourrait-on pas se contenter de placer directement le sid dans la base utilisateur dans un tel cas ?

    Et enfin, dans une autre optique, le passage en paramètre du $userid dans la fonction openSession n'est-il pas dangereux (j'ai du mal à voir d'où il vient en fait, s'il s'agit d'une variable global ou d'uatre chose... Je n'ai surement pas bien compris et je suis en train de voir que je me mélange les pinceaux) ?

    Voila, je crois qu'il n'y a que ça qui m'embete pour le moment (et c'est déjà pas mal remarquez). Merci davance pour vos réponses

    Ark

    Ps : lien vers le tutoriel en question

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Salut,
    l'intérêt d'utiliser les session est que le session_start() génère un id aléatoire mais l'envoie également en tant que cookie au client. Si le client a désactivé les cookies et que le paramètre trans.id du fichier de config php.ini est à on, le SID sera transmis par url. Donc c'est à tout à fait possible de recréer ce mécanisme à la main mais il ne suffit pas de générer une variable globale aléatoire.

    Normalement dans le tuto à un endroit il doit y avoir la suppression des anciennes sessions en fonction d'un certain délai donc si tu veux sauver le SID dans la table users il faudra également sauver la date de dernière connexion, c'est tout à fait possible, le seul désavantage que je verrais c'est le mélange de données statiques et temporaires, en effet si t'exportes la table users, il y a aucun intérêt d'avoir les derniers SID de chaque utilisateur. C'est quand même plus propre d'avoir 2 tables sur ce coup-là.

    Pas de problème pour le passage de $userid, en fait il vient de getLoginCheck(), de la base de données.
    Bye
    Vive les roues en pierre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci, tu m'éclaires bien

    Autre question alors, le cookies est-il créé de la même manière lors d'un session_id() ? Parce-que le tutoriel n'utilise justement pas de session_start() à moins que je l'ai loupé mais je ne crois pas (il utilise aussi session_regenerate_id() pour renouveler l'id).

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/02/2009, 10h28
  2. Réponses: 5
    Dernier message: 24/10/2006, 11h56
  3. Réponses: 12
    Dernier message: 14/02/2006, 19h03
  4. [Cookies] Session object destruction failed
    Par Paganoni dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2006, 09h38
  5. Réponses: 12
    Dernier message: 24/09/2003, 15h26

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