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 :

Utilisation des sessions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut Utilisation des sessions
    Bonjour, je susi en train de concevoir un site web dans lesquels des utilisateurs se verront attribuer des droits et donc des accès différents. Ces accès seront définit dans des grilles et chaque utilisateur sera relié à une grille.
    Cette grille peut contenir une cinquantaine d'éléments du type:
    - droit_ceci = 1
    - droit_cela = 0

    Plusieurs possibilités s'offrent à moi:
    - lors du démarrage, je charge toute sa grille dans les variables de sessions

    - a chaque chargement de page, je charge toute la grille et je regarde l'élément qui m'interesse pour la page

    - a chaque chargement de page, je charge juste l'élément de la grille qui m'interesse et je regarde sa valeur pour voir si il a le droit ou non d'afficher la page

    La premiere solution me parrait etre la meilleure, mais je ne sais pas si c'est bien d'enregsitrer beacuoup d'informations dans les variables de sessions

    La seconde soltuion me parait interessant mais bouffe beaucoup de donnée car requete SELECT qui selectionne beaucoup de choses (50*2 valeurs)

    La troisieme solution est moins couteuse en donnée que la seconde mais elle demande de faire du spécifique sur chaque page pour le chargement de la bonne donnée.


    Je suis preneur de vos bons conseils
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par nonoche200 Voir le message
    Bonjour, je susi en train de concevoir un site .........Je suis preneur de vos bons conseils
    Merci d'avance
    Pour ce genre de chose il vaut mieux mettre en session le niveau d'accès de l'utilisateur en session et travailler en requêtes SQL, en tout cas nous c'est ce qu'on fait

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par nonoche200 Voir le message
    Bonjour,
    - lors du démarrage, je charge toute sa grille dans les variables de sessions
    Merci d'avance
    Oui c'est évident, et ça coute pas cher, par contre il te faudra une trés bonne logique et bien gérer les droits qui changeront au cours de la session

    Donc moi je verrais un truc genre
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?PHP
    session_start();
    // ======= je supposes que le user est logue ===========
    if (!isset($_SESSION['User'])) {$_SESSION['User']="";$User="";}
         else {$User=$_SESSION['User'];}
     
    if (!isset($_SESSION['droi1'])) {$_SESSION['droit1']="";$droit1="";}
         else {$droit1=$_SESSION['droit1'];}
     
    if (!isset($_SESSION['droi2'])) {$_SESSION['droit2']="";$droit2="";}
         else {$droit2=$_SESSION['droit2'];}
     
    //== il suffit d'un control pour savoir si mysql OK ====
     
    if ($User=="") lelogin();
    if ($droit1=="") lelit_mysql($User);
     
    //== enfin quand un droit change 
     
    $_SESSION['droit2']="O";$droit2="O";
    le_MAJ_mysql($User,$droit2,"droit2");
     
     
    ?>

  4. #4
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    En général, un bon système de droit c'est par exemple :

    Liste des Droits :
    1 : access-listmembers
    3 : access-admin
    4 : access-modo
    ...

    Liste des Pouvoirs :
    1 : Admin
    2 : Modérateur
    3 : Membre
    4 : Visiteur

    Liste des Privilèges :
    1(Admin) : 1(Accès à la liste des Membres)
    1 : 2
    1 : 3
    ...
    3 : 1

    Et ensuite, tu regarde en SQL connaissant le droit nécéssaire sur chaque page ainsi que le privilege de l'utilisateur (puisque tu dois pouvoir le trouver dans la base de données), regarder si il a le privilege d'y acceder.

    Attention à ne pas mettre d'informations importantes et risquées dans les variables de session, cookie et même en général toutes les variables super globales $_ puisque bien souvent contrairement à ce que tu peux croire, elles peuvent en être modifiées par l'utilisateur.

    Donc pour des cas pour l'authentification et la sécurité des droits, passe par la base (choix 3)

Discussions similaires

  1. utilisation des sessions dans les jsp
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/08/2006, 19h45
  2. [FPDF] fpdf et utilisation des sessions
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 11/05/2006, 18h46
  3. incompréhension sur l'utilisation des sessions
    Par cladsam dans le forum Langage
    Réponses: 12
    Dernier message: 31/01/2006, 12h28
  4. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  5. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40

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