Comment protéger le compte administrateur ?

ViPHP
AB
ViPHP | 5818 Messages

09 janv. 2009, 15:51

est-ce obligatoire de faire la reconnaisannce de caractère comme le font quasiment tous les sites maintenant ? (la petite image où l'on doit recopier les caractère que l'on voit) ?

merci encore pr tout
Ce n'est en aucun cas obligatoire, c'est pour éviter les inscriptions abusives de robots spam. A ta place je commencerais sans ce mécanisme. Tu verras bien à l'usage et si tu as beaucoup d'inscriptions illicites dans un but de spam il sera toujours temps d'implémenter ce mécanisme de contrôle par la suite - qui contrôle que c'est bien un humain qui s'inscrit car les robots ne savent (pas encore) recopier ces caractères.

Tohru222
Invité n'ayant pas de compte PHPfrance

09 janv. 2009, 16:25

merci,

j'ai tout refait, ça marche bien.

par conter, du coup j'essai en tant qu'admin de pvoir gérer le tableau des admins.

d'en supprimer un par exemple. mais vu que le tableau n'est pas sur la même page.php, heu... là ça devient compliquer.
J'm'exprime peut être pas très bien:

je suis la la page GestAdmin.php
Sur cette page, j'arrive à afficher le tableau ($tab_admin) contenu dans LesAdmins.php (c'est la page "sécurisé" dont tu m'as fait le code.)

Toujorus sur GestAdmin.php, j've supprimer un admin. si je fait :
unset($tab_admin[$maligne]);, ça ne marche aps vu ke le tableau n'est pas sur la page GestAdmin.php mais sur LesAdmins.php

pas facile de commander à distance un tableau

ViPHP
AB
ViPHP | 5818 Messages

09 janv. 2009, 17:14

Ben tu n'as pas à faire afficher le tableau $tab_admin dans ta page GestAdmin.php, il te suffit juste de te rendre dans ta page LesAdmins.php et de modifier le tableau.

Maintenant si tu veux pouvoir tout faire depuis le web ça va te demander un peu plus de code :
- Faire un formulaire pour lister les lignes de ton tableau et pouvoir en ajouter ou en supprimer
- Sérialiser serialize() ton tableau et l'enregistrer dans la page tableau_admin.php avec file_put_contents() , et employer les fonctions inverses pour lire le fichier file_get_contents() et extraire le tableau avec unserialize()

Et si tu veux pouvoir être le seul parmi les admin à avoir accès à ta page GestAdmin.php, en considérant que tu t'inscris avec le pseudo Tohru222, ta page pourra être protégée en faisant
session_start(); 
if(!(isset($_SESSION['admin']) && $_SESSION['admin'] == 'Tohru222')) {die('Page réservée à l\'administrateur principal');}
Mais bon peut-être serait-il plus simple dans un premier temps de simplement modifier directement le tableau $tab_admin dans ta page LesAdmins.php ce qui t'éviterait d'avoir à créer la page GestAdmin.php que tu pourras toujours faire par la suite.
Modifié en dernier par AB le 19 janv. 2009, 18:24, modifié 2 fois.

Tohru222
Invité n'ayant pas de compte PHPfrance

09 janv. 2009, 22:23

merci pour tout.

oui en effet, c bien compliqué.

Je vais donc laisser comme ça. Je modifierai mon tableau hors internet, directement sur ma page tabAdmin.php.

Merci encore pour tout, de ta patience et de tes réponses clairs (avec code en prime) ça m'a énormément aider, car j'avais beau chercher je ne trouvais pas.

bonne soirée
Tohru

Tohru222
Invité n'ayant pas de compte PHPfrance

19 janv. 2009, 15:23

heu.... AB j'ai encore besoin de ton aide !!!

je viens enfin de pouvoir mettre mon site sur internet.

je l'ai mis sur free. Et là, alors que tout marche bien en local, et ben ça marche pas.

il me met :
Warning: main(dosAdmin\tableauAdmin.php) [function.main]: failed to open stream: No such file or directory in /mnt/102/sdb/a/d/avimag/FenIdentification.php on line 116

Warning: main() [function.include]: Failed opening 'dosAdmin\tableauAdmin.php' for inclusion (include_path='/mnt/102/sdb/a/d/.../include:.:/usr/php4/lib/php') in /mnt/102/sdb/a/d/avimag/FenIdentification.php on line 116


pourtant, sur "l'hébergeur", j'ai bien mis à la racine, le dossier "dosAdmin" et dedans le fichier ".htaccess" et le fichier "tableauAdmin.php" qui contient les mail des admin autorisé. je ne comprend pas.....

Tohru222
Invité n'ayant pas de compte PHPfrance

19 janv. 2009, 15:27

j'ai oublié de rapeller mon code:

Code : Tout sélectionner

$tab_admin = array(); include('dosAdmin\tableauAdmin.php'); if(in_array($_POST['txtmail'],$tab_admin,true) ) { $_SESSION['admin'] = 1 ; } else { $_SESSION['admin'] = 0 ; }

Tohru222
Invité n'ayant pas de compte PHPfrance

19 janv. 2009, 15:37

j'ai trouvé !!!!

mais j'ai pas compris pkoi.

j'vais mis : include('adminJ\tabAdmin.php');
et falais mettre : include('adminJ/tabAdmin.php');

mais pkoi la première version marchait en local je ne sais pas.
et pareil, les images sont appellées avec le "dossier\nomImage.png" et même sur l'hébergeur, comme ça ça marche.... à n'y rien comprendre.....

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 janv. 2009, 15:40

parce que tu dois développer en local sur une plateforme Windows (qui accepte \ et /, mais préfère \) alors que ton serveur doit être sous Unix, qui n'accepte que /
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Tohru222
Invité n'ayant pas de compte PHPfrance

19 janv. 2009, 15:45

A merci !!
Enfin j'ai compris !!

fo dire, c pas évident.

merci.