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 :

protection page switch case


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut protection page switch case
    bonjour,

    j'ai une petite question technique, je crée actuellement une admin pour mon site, cet admin sera administrable par un admin, editeur, utilisateur...
    Chaque utilisateur selon sont niveaux pourra accéder à un niveau (exemple un editeur ne pourra pas supprimer, un utilisateur ne pourra pas updater, supprimer, ajouter... dans mon cas comment je peux protégér les switchs cases.

    A noter que dans le header il y a le html/head/body et un include session qui protege la page !

    le problème c'est que en saisissant dans l'url nation.php?action=add on accède à la case add meme en temps que simple utilisateur.... le résultat peut etre catastrophique si je laisse comme cela

    ci joint un extrait de ma page nation.php et le fichier session.php qui est en entete.

    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
     
    <?php
    require("include/header.php");
    ?>
    <h1>NATIONS CONTINENTS</h1>
    <?php
    switch ($_GET['action']){
    case 'display':
    mon code
    break;
     
    case 'add':
    mon code
    break;
     
    case 'update':
    break;
    break;
    }
    require("include/footer.php");
    ?>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    session_start();
    if( !isset($_SESSION["login"]) && !isset($_SESSION["loginID"]) && !isset($_SESSION["logintypeID"]))
    {
    header("location: index.php");
    die();
    }
    ?>
     
    login= le login du connecté
    longinID= le ID de l'user dans la base
    logintypeID= le niveau de l'utilisateur 1=admin....4=utilisateur

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    tu dois pouvoir régler ton problème en faisant ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case 'add' && $logintypeID <= 2:
    si tu veux que seuls les admins et les editeurs puissent insérer. (en admettant que 2=editeurs)

    Bye

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut
    je vais essayer cette solution.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut
    cela ne semble pas fonctionner ! en effet dans le tableau situé sur la page display, si je clique sur update, alors que j'ai les droits je suis redirigé vers ADD !!! bizarre...

    par contre qu'en je n'ai pas les droits je n'ai rien à l'ecran que le titre UPDATE donc on peux dire que cela fonctionne qu'en je n'ai pas les droits.

    Autres questions, comment rajouter un message pour dire à la personne qui n'a pas les droits 'vous n'avez pas les droits pour accéder à cette page'......

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Il doit y avoir une erreur à un autre niveau. Pour le message tu peux mettre ça dans le default du switch (si tu veux un message plus précis tu peux mettre un if dans chaque cas). Le code réduit :

    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
     
     
    if(isset($_GET['action']))
    $action = $_GET['action'];
    else
    $action = 'display';
     
    $lvl = 4;
    switch ($lvl){
    case 'display':
    //mon code
    break;
     
    case 'add' && $lvl <= 2:
    //mon code
    break;
     
    case 'update' && $lvl <= 2:
    // code
    break;
     
    default:
    echo 'erreur accès';
    break;
    }
    si t'es redirigé sur le add c'est que $_GET['action'] ou $lvl est mal renseigné.

Discussions similaires

  1. switch case pour deux variable en meme temps
    Par petitours dans le forum C
    Réponses: 3
    Dernier message: 06/11/2005, 19h20
  2. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37
  3. probleme gestion condition switch - case
    Par DarkMax dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2005, 14h25
  4. [Language] aide sur les switch case
    Par pouss dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2005, 11h34
  5. protection page asp
    Par rony dans le forum ASP
    Réponses: 4
    Dernier message: 22/02/2005, 17h26

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