Hello
Alors j'explique le but de ce script, j'utilise sur mon site trois niveaux de hiérarchie dans l'administration:
- les administrateurs, êtres omnipotents (access 3);
- les opérateurs, qui ont chacun une zone d'action (access 2);
- les agents, qui sont subalternes de opérateurs dans leurs zones (access 1).
En effet, le système administrateur/modérateur habituel est très limité et limitant...
Il me fallait donc trouver un moyen d'autoriser chaque agent et opérateur à utiliser uniquement les parties du panneau d'admin qui lui étaient attribuées et à lui interdire les autres.
Voici ce script que j'espère assez bien commenté.
J'utilise deux tables:
- membres_infos : on y trouve les infos de base du membre.
¤ colonne id qui contient l'id du membre (original avouez ^^)
¤ colonne rang qui content l'access du membre (0=utilisateur, etc...)
- admin_access : on y trouve les infos sur les droits du membres.
¤ colonne userid qui contient l'id du membre de l'autre table
¤ colonnes aussi nombreuses que vous voulez avec pour valeur 0 ou 1 selon le cas où le membre a accès ou non à le zone qui est nom de la colonne.
Au moment de la connexion:
Alors j'explique le but de ce script, j'utilise sur mon site trois niveaux de hiérarchie dans l'administration:
- les administrateurs, êtres omnipotents (access 3);
- les opérateurs, qui ont chacun une zone d'action (access 2);
- les agents, qui sont subalternes de opérateurs dans leurs zones (access 1).
En effet, le système administrateur/modérateur habituel est très limité et limitant...
Il me fallait donc trouver un moyen d'autoriser chaque agent et opérateur à utiliser uniquement les parties du panneau d'admin qui lui étaient attribuées et à lui interdire les autres.
Voici ce script que j'espère assez bien commenté.
J'utilise deux tables:
- membres_infos : on y trouve les infos de base du membre.
¤ colonne id qui contient l'id du membre (original avouez ^^)
¤ colonne rang qui content l'access du membre (0=utilisateur, etc...)
- admin_access : on y trouve les infos sur les droits du membres.
¤ colonne userid qui contient l'id du membre de l'autre table
¤ colonnes aussi nombreuses que vous voulez avec pour valeur 0 ou 1 selon le cas où le membre a accès ou non à le zone qui est nom de la colonne.
Au moment de la connexion:
Code PHP :
<?php
/* je vous refais pas tout le script de connexion, si vous en avez besoin exprimez vous!
Partons du principe que le membre se connecte, que son pseudo est $pseudo et que les les information de la table membres_infos soit dans le tableau $data */
$_SESSION['id'] = $data['id'];
$_SESSION['rang'] = $data['rang'];
Ensuite, comme je suis une feignasse et que j'ai pas trop envie de me retaper tout le code sur chaque page, voyons une page fonctions.php:
Code PHP :
<?php
function isAllow($location) // on envoie la zone à laquelle le membre veut se connecter à la fonction
{
$req1 = mysql_query("SELECT '".$location."' FROM admin_access WHERE userid='".$_SESSION['id']."'");
$data1 = mysql_fetch_array($req1);
if ($data1[$location] == 0 && $_SESSION['rang'] != 3) // Si le mec est noté comme n'ayant pas accès à la zone et qu'il n'est pas administrateur
{
exit("Vous n'avez pas accès à cette zone!"); // On le bloque
}
elseif ($data1[$location] == 0 && $_SESSION['rang'] == 3) // Si le mec est noté comme n'ayant pas accès à la zone mais qu'il est admin
{
echo 'Votre statut d\'administrateur vous permet de passer malgré votre manque de pouvoir sur cette zone';
}
}