[RESOLU] interrogation correspondance section/url (array/xlm/switch?)

Eléphanteau du PHP | 34 Messages

17 août 2016, 19:56

Bonjour,
Sur mon site j'ai un très grand nombre de pages (+50 pour le moment). A chaque page correspond une section (reçus en GET elles correspondes à des string classique). Une contrainte supplémentaire : certaines pages ne sont accessible que si l'on est connecté. Une fois q'une section à été validé comme existante et qu'on à le statut suffisant pour y accéder un include est réaliser. Pour le moment j'utilise des switch-case et autre if. Mais ça prend beaucoup de place et n'est pas très claire (surtout quand on rajoute de plus en plus de page). Alors quel serrais la solution la plus rapide, sécuriser, évolutive ? Un array avec 2 dimensions : section->url/statut ; un fichier (XML/autre) ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 août 2016, 23:12

Bonjour,

La solution habituellement utilisée est de définir des rôles pour regrouper tes utilisateurs : admin / équipe / membres / invités/ etc...
Et ensuite en entête de chaque page, tu définies les rôles qui sont autorisés à voir la page en question.
Si non identifiés, tu renvoie vers un formulaire de login
Si autorisés, tu laisses l'affichage de la page.
Si non-autorisés, tu affiches un message permissions insuffisantes
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

18 août 2016, 12:41

Oui mais mon problème c'est qu'avant de chargé les pages et de gérer les autorisation je doit validé leur existence. Pour accéder à une page on charge d'abord un index.php avec un paramètre dans l'url. Par exemple index.php?section=profile. Dans mon index on regarde si la section "profile" existe. Je le fait avec des switch mais je pense qu'un array serrais mieux. Qu'en penses tu ?
Là une fois la section validé on s'occupe des permission comme tu le suggère.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

18 août 2016, 13:31

As tu vraiment besoin d'un tableau pour vérifier l'existence, un coup de file_exists() et c'est réglé, non ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

18 août 2016, 14:03

Le problème viens du faite que je n'utilise pas des url qui corresponde à l'adresse du fichier. C'est plutôt le section passer en GET dans l'url donc, qui doit être existante et correspondre à une page qu'on inclue ensuite.
Avec un exemple ça doit être plus parlant, pour l'instant je fait ça :

Code : Tout sélectionner

switch ($section) // on indique sur quelle variable on travaille { //pour l'inscription case 'inscription': include_once('controleur/inscription/index.php'); break; }
Sauf qu'il y a pluis de 50 cases et j'aimerais rendre ça le plus rapide, sûr et modifiable possible.
Avec un array ça donnerais :

Code : Tout sélectionner

array section(inscription([controleur/inscription/index.php],[1]));

Eléphanteau du PHP | 34 Messages

19 août 2016, 14:46

Personnes ne sais quel serrais la méthode la plus efficaces. J'avais aussi penser à utiliser des fichier, mais je doute de la rapidité. Je suis assez sûr que les array sont une bonne solution mais j'aimerais avoir une confirmation avant de me lancer dedans !

Mammouth du PHP | 1967 Messages

19 août 2016, 15:37

Une array est possible, mais au final la maintenance est pareil qu'un switch.

si tu veux une array crée la comme ceci
$sections = array("section1" => "url1","section2" => "url2", ...);
et un include($sections[$section]);
devrait te suffire, mais une recherche de l’existence de $sections[$section] est recommandé avant l'include et pour prévoir un cas par défaut.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 34 Messages

20 août 2016, 09:18

ok je part donc sûr ça merci