Accès utilisateur

Répondre
KiwiSlice
le 18/08/2004 à 20:06
KiwiSlice
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 smiley Bon bien je vous laisse chercher et vous me dite si c'est pas clair!
KiwiSlice - The fruity taste of kiwi
XTremTourist
le 19/08/2004 à 00:18
XTremTourist
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]
KiwiSlice
le 19/08/2004 à 14:31
KiwiSlice
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
KiwiSlice
le 19/08/2004 à 14:54
KiwiSlice
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
zebden
le 19/08/2004 à 15:01
zebden
efface tout et remet que les cochés (ancien et nouveau) ..
zebdinou pour les intimes / Blog : http://www.zebden.fr
KiwiSlice
le 19/08/2004 à 15:07
KiwiSlice
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">,&nbsp;</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
zebden
le 19/08/2004 à 15:25
zebden
<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
KiwiSlice
le 19/08/2004 à 15:42
KiwiSlice
Ouch tu viens de me perdre complètement dans la brume la smiley
KiwiSlice - The fruity taste of kiwi
KiwiSlice
le 19/08/2004 à 17:29
KiwiSlice
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 smiley
KiwiSlice - The fruity taste of kiwi
moogli
le 19/08/2004 à 18:18
moogli
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 smiley
@+
Il en faut peu pour être heureux !!!!!
Répondre
LoadingChargement en cours