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 :

[Sécurité] Problème avec les droits dans la partie administration


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut [Sécurité] Problème avec les droits dans la partie administration
    Salut à tous, voila petit problème que j'ai rencontré et ou je ne trouve pour l'instant pas de solution.

    Sur mon site, j'ai créais une partie administration afin de mettre les news à jour, j'ai plusieurs gars qui m'aide à créer les news donc je ne suis pas le seul à mettre le site à jour.

    Pour ne pas me compliquer la vie, j'ai créé dans ma base de donnée un système de droits, j'explique :

    J'ai une table "Utilisateurs" pour rentrer toutes les infos des utilisateurs.
    Une table "Utilisateur Droit" avec 2 clés primaires pour pouvoir faire les jointures
    Puis une table "Droit" ou sont fixé les droits : Administrateur, Newser...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php 
    include ("../requete_droit.php"); //Requete avec jointures
    while ($donnees_info= mysql_fetch_array($sql))
    {
         if (($donnees_info['droit'] == 'Administrateur') || ($donnees_info['droit'] == 'AMV' 'Newser') || ($donnees_info['droit'] == 'Newser'))
         {
              echo "on affiche le contenu"; 
         }
    }
    ?>
    Voila, mon problème est que si une personne possède 2 droits dans mon cas Newser et Amv, le contenu de la page s'affichera 2 fois.

    Quelqu'un aurait une solution pour qu'il ne s'affiche qu'une fois, je sais que mon problème vient du if.

    Merci à tous

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Pourquoi il y a un while à cette endroit ? si tu veux qu'il retourne qu'un élément tu vois du coté de ta requête et voit là ou tu peux placer un "DISTINCT" mais je pense que c'est un problème de conception.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Ben voila le code avec la requête dîte moi si c'est réellement un problème de conception car je n'ai de problème que lorsque l'utilisateur possède 2 droits.

    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
     
    <?php
    $session = $_SESSION['pseudo'];
    include ("connection.php");
     
    $requette= "SELECT droits.droit FROM narutorengan_utilisateur_droit AS util_droit INNER JOIN narutorengan_utilisateurs AS util ON util_droit.utilisateur_id = util.id INNER JOIN narutorengan_droits AS droits ON util_droit.droit_id = droits.id WHERE util.pseudo = '".$session."'";
     
    $sql= mysql_query($requette);
     
    while ($donnees_info= mysql_fetch_array($sql))
    {
    	if (($donnees_info['droit'] == 'Administrateur') || ($donnees_info['droit'] == 'AMV' 'Newser') || ($donnees_info['droit'] == 'Newser'))
    	{
                      echo "on affiche le contenu"; 
                 }
    }
    ?>

  4. #4
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    C'est pas très propre, mais si un utilisateur peut avoir plusieurs droits, modifie ton script comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $test='';
    while ($donnees_info= mysql_fetch_array($sql))
    {
    	if (($donnees_info['droit'] == 'Administrateur') || ($donnees_info['droit'] == 'AMV' 'Newser') || ($donnees_info['droit'] == 'Newser'))
    	{
                      $test='ok'; 
                 }
    }
    if($test=='ok'){
    //alors on affiche le contenu
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Merci johweb pour ta réponse, je vais tester ça desuite.

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Il me met une erreur pour cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    if (($donnees_info['droit'] == 'Administrateur') || ($donnees_info['droit'] == 'AMV' 'Newser') || ($donnees_info['droit'] == 'Newser'))
    ?>
    Voici l'erreur : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

    Je pense que ca vient de l'espace entre 'AMV' et 'Newser'

    Une idée?

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par furth
    Il me met une erreur pour cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    if (($donnees_info['droit'] == 'Administrateur') || ($donnees_info['droit'] == 'AMV' 'Newser') || ($donnees_info['droit'] == 'Newser'))
    ?>
    Voici l'erreur : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

    Je pense que ca vient de l'espace entre 'AMV' et 'Newser'

    Une idée?
    A cause de ceci == 'AMV' 'Newser')

    que voulais-tu faire à cette endroit ? si c'est concaténer avec espace :
    'AMV Newser'
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Apparament la solution c'était bien ca : 'AMV Newser'

    Merci à toi

  9. #9
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par furth
    Apparament la solution c'était bien ca : 'AMV Newser'

    Merci à toi
    Juste dans le cas ou tu ne serais pas :

    ça aurait été deux variables que tu aurais voulu concatener avec un espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variabel1.' '.$varaible2;
    Methode pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variabel1.chr(1).$varaible2;
    je sais plus si c'est 0 ou 1.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. [SimpleXML] Problème avec les accents dans le XML
    Par trotters213 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/12/2006, 10h23
  3. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 19h30
  4. Réponses: 4
    Dernier message: 01/05/2006, 22h53
  5. [MFC] problème avec les insertions dans CComboBox
    Par Joeleclems dans le forum MFC
    Réponses: 12
    Dernier message: 11/06/2004, 15h31

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