Aller au contenu

[RÉSOLU] PHP et MySQL, Accès membres ?


Invité Compte_supprime_75576

Messages recommandés

Invité Compte_supprime_75576

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

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 :roll:

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

Invité Compte_supprime_75576
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 :cartonrouge:

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 :chinois: (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

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é... :francais:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...