[PHP] organisation d'un switch-case en fonction de droits

organisation d'un switch-case en fonction de droits [PHP] - PHP - Programmation

Marsh Posté le 16-06-2009 à 08:32:59    

Bonjour à tous,
 
J'organise mon site php autour d'un fichier index.php qui inclus les pages correspondants à ma variable section comme suit :

Code :
  1. index.php?section=accueil


 
au niveau code, cela donne

Code :
  1. <?php
  2. if (isset($_GET['section']))
  3. switch(@$_GET['section'])
  4. {
  5. case "accueil":
  6.  include("pages/accueil.php" );
  7.  break;
  8. case "administration":
  9.  include("pages/administration.php" );
  10.  break;
  11. case "admin":
  12. default:
  13.  include("pages/accueil.php" );
  14.  break;
  15. }
  16. ?>


 
Je voudrais organiser les case de ce switch en fonction de droits particuliers dont l'état est stocké dans une variable de session. Cela donnerait :

Code :
  1. <?php
  2. if (isset($_GET['section']))
  3. switch(@$_GET['section'])
  4. {
  5. case "accueil":
  6.  include("pages/accueil.php" );
  7.  break;
  8. // Administrateur
  9. if ($_SESSION['droits'] == 'administrateur')
  10. {
  11.  case "administration":
  12.   include("pages/administration.php" );
  13.   break;
  14. }
  15. case "admin":
  16. default:
  17.  include("pages/accueil.php" );
  18.  break;
  19. }
  20. ?>


Evidemment, cela ne marche pas, mais voilà ce que je souhaiterai car cela permettrait de ne pas prendre en compte le case 'administration" si on n'a pas les droits.
 
J'ai malheureusement une tripoté de case maintenant, du coup, je me demande si je dois tout casser ou astucieusement trouver quelque chose qui modifiera très peu mon code et qui marchera. Comment faire ?

Reply

Marsh Posté le 16-06-2009 à 08:32:59   

Reply

Marsh Posté le 16-06-2009 à 08:39:12    

Pourquoi tu ne mets pas le :
if ($_SESSION['droits'] == 'administrateur')
à l'intérieur du case ?

Reply

Marsh Posté le 16-06-2009 à 18:24:41    

ou tu fais un switch que pour tes pages  admin


---------------
http://petitjonas.blogspot.com/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed