J'ai testé mais il ne se passe rien, j'ai créé un membre qui est dans le groupe 1, j'ai essayé aussi en t'en qu'invité, mais rien, rien non plus quand je mets
$groupe_id=2;. Pas de messages d'erreurs, pas de filtrage, comme si je n’avais rein fais.
Si j'ai bien compris il faut que je détermine la variable
$groupe_id en fonction du groupe attendu sur la page ?
Dans mon exemple je veux autoriser les membres du groupe id=1, mais dans la réalité je vais autoriser plusieurs groupes (1 et 2), mais pas tous (3, 4, 5, ...). Comment faudra-il faire ?
Merci de ton aide
Citation
<?php
/*
** Détermine si un membre fait partie d'un groupe
** $groupe_id => Identifiant du groupe
** $membre_id => Identifiant de l'utilisateur
** Retourne True si Membre fait partie du groupe,
** False s'il fait partie et
** Null si le MOD n'est pas actif ou si Membre est un invité
*/
$groupe_id=1;
function is_groupe($groupe_id, $membre_id)
{
if($MOD['groupes'] && $membre_id != INVITE)
{
static $groupe;
//Pour alléger on récupére une seul fois les informations par utilisateurs
if($groupe === null || ! isset($groupe[$membre_id]))
{
$sql = 'SELECT g_id FROM ' . GROUPES_MEMBRES_TABLE . '
WHERE gm_status <> ' . GROUPE_ATTENTE . ' AND u_id = \'' . $membre_id . '\'';
if (!$result = $bdd->requete($sql))
{
info($langue['er_titre'], sprintf($langue['er_select'], 'groupes_membres'), __LINE__, __FILE__, $sql);
}
// On place le résulta dans un tableau
while( $row = $bdd->tableau($result) )
{
$groupe[$membre_id][] = $row['g_id'];
}
$bdd->free($result);
}
$j = count($groupe[$membre_id]);
for($i = 0; $i < $j; $i++)
{
// On Parse le tableau à la recherche de groupe_id
if($groupe[$membre_id][$i] == $groupe_id)
{
return true;
}
}
redir($racine . 'connexion.php'); // C'est juste pour le test
}
// Le Mod n'est pas actif
return null;
}
?>