Invité Compte_supprime_75576 Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 Bonjour, j'ai écris ce script (avec l'aide de dreamweaver) afin de restreindre l'acces au site web. Je limite avec un pseudo, et un mots de passe jusque là pas de problème, mais aussi avec des droits. Je limite la page à tous les Administrateurs, comment je peux faire pour autoriser pour un autre groupe, exemple les modérateurs. Pour faire simple j'ai trois types : Admin, Modérateur, et les Clients Comment autoriser cette page seulement au Admin et Modérateur. et refusé aux clients ? Merci de votre aide. Voici mon code : <?php require_once('../connections/membres.php'); ?><?php if (!isset($_SESSION)) { session_start(); } $MM_authorizedUsers = "Administrateur"; $MM_donotCheckaccess = "false"; // *** Restrict Access To Page: Grant or deny access to this page function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { // For security, start by assuming the visitor is NOT authorized. $isValid = False; // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. // Therefore, we know that a user is NOT logged in if that Session variable is blank. if (!empty($UserName)) { // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. // Parse the strings into arrays. $arrUsers = Explode(",", $strUsers); $arrGroups = Explode(",", $strGroups); if (in_array($UserName, $arrUsers)) { $isValid = true; } // Or, you may restrict access to only certain users based on their username. if (in_array($UserGroup, $arrGroups)) { $isValid = true; } if (($strUsers == "") && false) { $isValid = true; } } return $isValid; } $MM_restrictGoTo = "../erreur.php"; if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) { $MM_qsChar = "?"; $MM_referrer = $_SERVER['PHP_SELF']; if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&"; if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) $MM_referrer .= "?" . $QUERY_STRING; $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer); header("Location: ". $MM_restrictGoTo); exit; } ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
beuhbeuh Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 Si c'est toi qui a écrit ce script, tu dois tout à fait être capable de faire la modif pour laisser l'accès à d'autres groupes Comme je doute donc, que ce soit toi qui l'ai écrit (le code ressemble fort au code de quelqu'un qui aurait voulu faire un tutorial pour expliquer le principe d'un accès membre justement) mais que je suis de bonne humeur, je te donne une piste : la réponse est à chercher par là : // Or, you may restrict access to only certain users based on their username. if (in_array($UserGroup, $arrGroups)) { $isValid = true; } Et en passant un (pas rouge parce que je suis sûr qu'à 99%) pour dire qu'un code est de toi alors qu'il ne l'est pas... L'un des maitres mots en programmation est de citer l'auteur dont tu réutilises le code... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shinuza Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 C'est dreamweaver qui à écrit ce code, et il le dit Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Compte_supprime_75576 Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 Si c'est toi qui a écrit ce script, tu dois tout à fait être capable de faire la modif pour laisser l'accès à d'autres groupes Comme je doute donc, que ce soit toi qui l'ai écrit (le code ressemble fort au code de quelqu'un qui aurait voulu faire un tutorial pour expliquer le principe d'un accès membre justement) mais que je suis de bonne humeur, je te donne une piste : la réponse est à chercher par là : // Or, you may restrict access to only certain users based on their username. if (in_array($UserGroup, $arrGroups)) { $isValid = true; } Et en passant un (pas rouge parce que je suis sûr qu'à 99%) pour dire qu'un code est de toi alors qu'il ne l'est pas... L'un des maitres mots en programmation est de citer l'auteur dont tu réutilises le code... Comment je l'ai si bien dit, je l'ai écris avec l'aide de dreamweaver. Mais ce n'est pas le code d'origine car j'ai modifié un peu ce que je comprenais. Désolé d'être novice. Pour ta réponse en fait j'avais déjà fait un test avec : // Or, you may restrict access to only certain users based on their username. if (in_array($UserGroup, $arrGroups)) { if (in_array($UserGroup, $arrGroups2)) { $isValid = true; }} Or ça ne marche pas. En fait je ne comprend comment définir la variable $arrGroups2. Car la variable du debut est $MM_authorizedUsers = "Membres"; Et pour être franc je n'arrive pas à comprendre la partie du code où $MM_authorizedUsers devient $arrGroups. Je suis vraiment désolé d'être novices. et de m'être mal exprimé à propos du code. En fait il est créer par les modules de dreamweaver (voilà pourquoi les commentaires sont en anglais). et j'ai moi même modifier certaine partie que j'ai réussi à comprendre. Voilà pourquoi ce n'est pas le code exacte de l'assistant dreamweaver. En tout cas merci. Je vais essayer de mieux comprendre. Lien vers le commentaire Partager sur d’autres sites More sharing options...
beuhbeuh Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 Bon OK, désolé de m'être excité comme ça, mea culpa donc le code qui est généré créé une fonction isAuthorized, qui prend en parametre $strUsers -> une liste d'utilisateurs autorisés à afficher la page $strGroups -> une liste de groupes autorisés $userName -> le nom d'utilisateur qu'on veut vérifier $userGroup -> le groupe de l'utilisateur qu'on veut vérifier pour le cas qui t'intéresses, il faut passer dans strGroups un tableau contenant les groupes autorisés soit array("modos", "admins") et dans userGroup, ben le groupe de ton utilisateur (à récupérer dans ta base de données) en gros, vu le reste du code, il suffit que tu changes au début du code $MM_authorizedUsers="Administrateur" en $MM_authorizedUsers=array("Administrateur","moderateur") et il faut que le $_SESSION['MM_UserGroup'] contienne le bon groupe pour ton utilisateur... un echo $_SESSION['MM_UserGroup"] te permettra de vérifier... Voilà, dis-moi si c'est clair ou pas, et désolé encore une fois de m'être emporté... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.