Accès utilisateur
Bon je vous explique mon problème. J'ai une table verif_access dans ma BD. Quand un utilisateur veut accèder à une page, je prend le nom de cette page et je vérifier si il y a une entrée dans la table verif_access qui contient le nom de cette page et le login de l'usager connecter. Jusqu'à la tout fonctionne très bien. J'ai un lien sur chaque page "Gestion des accès" qui ouvre une fenêtre à l'administrateur pour gèrer les accès à la page ou il se trouve. Voilà ma question est à savoir si c'est possible que dans cette page où seul l'admin a accès, il s'affiche un tableau en 2 colonne avec "TOUT" les usagers et dans la 2ieme colone un checkbox qui serait coché si l'usagé a accès ou décocher si non et que l'admin pourrait coché et décocher ceux qu'il veut et appuyer sur soumettre quand il a terminé et la, une fonction efface l'entrée dans verif_access pour ceux qui vienne d'etre décocher, l'ajouter pour ceux qui vienne d'etre cocher et en fait rien pour ceux qui sont rester pareil. Je me casse la tete depuis tantot mais je trouve pas
Bon bien je vous laisse chercher et vous me dite si c'est pas clair!
KiwiSlice - The fruity taste of kiwi
g pas lu jusko bou mais sa a l air compliker ce ke tu fait.
perso moi ma gestion d access c plus simple
dans la table d membre chake membre a un chiffre
Ex: entre 0 et 10
apret sur les different modules y a un variable ki s appelle Access et ki corespon aussi a un numero entre 0 et 10 et sa dit ke si le numero du membre est Egale ou Superieu au numero du module alors la personne a le droit di accedez sinon elle na pas le droit
c t pour ajouter dans la gestion d membre apret il et simple d afficher le niveau d access et de le modifier
[Message modifié le 19/08/2004 à 00:19 par XTremTourist]
C'est ce que j'ai penser faire au début avec des chiffres comme ca mais ca ne fonctionnera pas dans ma situation. J'ai besoin de données accès à des sections très précise à certaine personne qui n'ont pas accès à d'autre section. C'est pour un intranet et ici c'est diviser en groupe (Administration, Secrétariat, Ventes) etc... mais ceux qui font partie de secrétariat non pas nécéssairement accès à tout ce que la section secrétariat contient donc mes accès sont trop précis pour utiliser un système de chiffre. Je dit pas que ma méthode est excellente mais c'est la meilleure que j'ai trouvé. Si vous avez d'autres idée ca m'aiderais bcp ou si vous pouviez règler mon problème avec celle-ci.
KiwiSlice - The fruity taste of kiwi
Pour l'instant quand je click sur "Gestion des accès" en haut d'une page, un popup s'ouvre avec la liste de tout les usagers ( avec un while sur la table users ) et une 2ième petite requête dans le while me permet de vérifier si un enregistrement avec ce nom et cette page existe dans la table verif_access et me permet de cocher le checkbox si oui. Tout fonctionne à merveille. Mon problème est que lorsque je coche ou décoche des noms dans la liste et que je click sur appliquer, j'ai aucune idée comment prendre en même temps tout ceux qui on été coché pour les ajouters à la table verif_access, effacer tout ceux qui on été décocher et ne rien faire avec ceux qui sont rester pareil.
KiwiSlice - The fruity taste of kiwi
efface tout et remet que les cochés (ancien et nouveau) ..
zebdinou pour les intimes / Blog : http://www.zebden.fr
Ok j'efface tout ce qui contient le nom de la page dans ma table verif_access et je remet ceux qui sont coché c'est une excellente idée. Mais je te montre mon bout de code :
while ($data = mysql_fetch_array($req)) {
$fontcolor = font_couleur($fontcouleur1, $fontcouleur2);
$couleur = choix_couleur($couleur1, $couleur2);
if ($data['login'] != 'admin') {
echo '<table width="90%" border="0" bordercolor="#040261" cellspacing="0" cellpadding="0">';
echo '<tr bgcolor="'.$couleur.'">';
echo '<td width="50%" align="center">';
echo '<font size="2" color="'.$fontcolor.'" face="tahoma">'.$data['2name'].'</font>';
if (!empty($data['1name'])) {
echo '<font size="2" color="'.$fontcolor.'" face="tahoma">, </font>';
}
echo '<font size="2" color="'.$fontcolor.'" face="tahoma">'.$data['1name'].'</font>';
echo '</td>';
echo '<td width="50%" align="center">';
echo '<input type=checkbox name="access" value="access"';
$sql2 = 'SELECT name, page FROM verif_access WHERE name="'.$data['login'].'" AND page="'.$page.'"';
$req2 = mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
$nb = mysql_num_rows($req2);
mysql_free_result($req2);
if ($nb == 1) {
echo 'checked';
}
echo '>';
echo '</td>';
echo '</tr>';
echo '</table>';
}
Maintenant comment je fait pour passer tout ceux qui sont coché à ma page de traitement ?
KiwiSlice - The fruity taste of kiwi
<input type="checkbox" name="access[]" value="'.$data['id'].'" >
tu aura donc un tableau avec toutes les ids cochées
acces = Array([0]=>4 , [1]=>45 ...
zebdinou pour les intimes / Blog : http://www.zebden.fr
Ouch tu viens de me perdre complètement dans la brume la
KiwiSlice - The fruity taste of kiwi
Quelqu'un peut m'expliquer le :
<input type="checkbox" name="access[]" value="'.$data['id'].'" >
acces = Array([0]=>4 , [1]=>45 ...
parce que la j'ai beau faire des recherches je trouve rien
KiwiSlice - The fruity taste of kiwi
Lu,
quand tu affiche le resultat de ta requete tu met le champ <input type="checkbox" name="access[]" value="'.$data['id'].'" >
cela va te donner sur ta page de traitement un tableau qui s'appelle $_POST['access'] et qui contient id. cet id est l'id du membre concerné.
ex : access[0] =>12
access[1]=>13 ....
En suivant le principe donné avant tu efface tout le acces concernés et tu affecte le nouveau en fonction de ceux donnés par le tableau access
ex
<?php
$tablo=$_POST['access'];
for ($i=0;$i<count($tablo);$i++)
{
$sql='UPDATE table SET access="tavaleur" WHERE id="'.$tablo[$i].'"';
mysql_query($sql) or die ('erreur sql '.mysql_error());
}
?>
Voila tu a juste a modifie le nom du champ (j'ai po chercher dsl :)
si t veut utiliser directement la variable post
$_POST['access'][$i]
Voila j'espère que je suis compréhensible
@+
Il en faut peu pour être heureux !!!!!