site web et bouton cache ... comment faire ?

Petit nouveau ! | 3 Messages

24 juil. 2010, 11:23

Bonjour,
le site de ma boite comporte une section "pro" accessible par login et mdp (htaccess). Plusieurs membres enregistres ont donc acces a cet espace. Sur une de ses pages, je voudrais mettre un bouton "caché". J'entends par la qu'il doit être visible uniquement par les personnes que je choisis. Pour les autres membres de l'espace, ce bouton serait invisible.

J'ai pensé a utiliser un script avec une capture de login/pass du style $_SERVER["REMOTE_USER"], mais je suis vraiment débutant en php et je n'arrive pas a le générer correctement.
Pourrais je avoir une aide, je galère depuis 1 semaine sans aboutir a quoi que ce soit de valable :( :( .

Merci bien

Petit nouveau ! | 5 Messages

24 juil. 2010, 12:55

Bonjour,

j'utilise généralement une variable de session qui est renseignée selon des critères que je définis

exemple : au login de l'utilisateur
$_SESSION[type_user] = 1;
// type_user est un champs dans ma base de données
// avec par exemple 1 = autorisé, 2 = non autorisé, etc...
dans la page concernée vous testez la variable et affichez ce que vous voulez
if($_SESSION[type_user] == 1)
{
echo "<input type=\"button\" ......>";
}
C'est une façon de faire, d'autres solutions existent

J'espère avoir bien compris la question et y avoir répondu ...

Petit nouveau ! | 3 Messages

24 juil. 2010, 19:27

je comprends effectivement le sens de la manoeuvre. Mais moi, je n'ai pas de BDD, j'ai juste mon htaccess et mon htpassword je pense donc que c'est dans mon fichier htpassword que je dois aller chercher mes users. C'est entre autre la que je seche :| :|

Petit nouveau ! | 5 Messages

24 juil. 2010, 21:47

je l'ai jamais fait de cette manière mais je pense qu'en créant un fichier qui contient la liste des privilégiés (un par ligne) du type :

user1
user2
...

on lit le fichier à la connexion
$users = file('liste.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if(in_array($user))
{
$_SESSION[user] == "OK"; // ou ce qu'on veut
}
et la suite comme expliqué à mon 1er post...

on fait comme on veut mais l'idée c'est de conserver cette liste pour identifier ceux qu'on veut

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 juil. 2010, 11:23

Ce serait naturellement plus propre avec une base de données pour identifier qui a quel droit, mais à défaut, tu peux faire une fonction qui va comparer la valeur que tu as dans $_SERVER["REMOTE_USER"] à la liste de tes utilisateurs privilégiés.

En gros, dans ton htacces tu aurais user1, user2, user3, et côté php tu pourrais faire un tableau avec le nom des privilégiés :
$superUsers = array ("user1", "user3");
Puis une fonction te permettant de vérifier si l'utilisateur connecté est privilégié ou non :
function isSuperUser() {
  global $superUsers; // fait référence au tableau externe, mais tu peux aussi le déclarer directement ici
  return in_array($_SERVER["REMOTE_USER"], $superUsers); // retourne vrai si le remote user est trouvé dans le tableau
}
Il ne te reste plus qu'à faire appel à ta fonction isSuperUser() et tester si elle retourne vrai ou faux pour savoir si tu affiches ou non le bouton ou autre :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

25 juil. 2010, 19:03

merci pour ces precieux conseils, je vais tester cela lundi et mardi et je reviens faire le point. Encore merci :)