14 08 2002 à 11:44 |
hello je voudrai mettre en place un système de pages accessibles par login/password. donc quelques questions : 1 - javascript ou php ? 2 - il est possible que chaque couple login/password (il y en aurai 6) donne accès à une page différente (6 pages destinations, donc) 3 - qu'est ce qui est le mieux niveau non piratabilité du bizness ? merci de vos réponses et si c'est du php, bah merci de m'aider pour le code passke je débute toujours et que voilà. tak. |
|
14 08 2002 à 11:46 |
C'est du PHP qu'il te faut Pour les pages différentes c'est largement possible, tu fais un include() pour le contenu selon la personne. hésité pas à demander, je suis oisif. Pour reconnaitre tes "visiteurs" utilise un cookie (crypté de préférence) |
|
14 08 2002 à 11:52 |
bah php est la meilleur solution, je te file quelques bout de codes : form.htm : le formulaire d'identification, tu dois mettre les champs <input type="text" name="identifiant"> et <input type="password" name="password"> et tu envoi le formulaire en POST vers identification.php identification.php: <? if($identifiant=="dupont"&&$password=="pwd_dupont" ) { header("Location: page1.php?identifiant=dupont"); } if($identifiant=="dupont2"&&$password=="pwd_dupont 2") { header("Location: page2.php?identifiant=dupont"); } //tu recolle cette ligne pour chaque page et si tu comprend un peu l'anglais (if?) tu devrais arriver facilement a adapter. //page1.php est la page ou tu souhaite rediriger le couple dupont/pwd_dupont ... ?> là tu remets le formulaire pour ceux qui n'ont pas été identifié et qui ne sont don c pas redirigé vers une autre page. |
|
14 08 2002 à 11:55 |
Et là tranquillou du haut de mes 3 minutes de reflexion intense j'arrive et je tape dans mon browser : http://www.cequetuveut/page2.php?identifiant=du... Enchanté moi c'est dupont des questions ? |
|
14 08 2002 à 11:59 |
ne jamais passer un password dans l'url en clair. si possible éviter de passer aussi le pseudo. si possible ne passer aucun parametre dans l'url. travailler avec le cookie de la machine cliente. |
|
14 08 2002 à 12:03 |
dans le cookie tu stockes deux choses : le password et le pseudo du membre (ou son id) et tu vérifies a chaque fois la validité de ce couple |
|
14 08 2002 à 12:05 |
ok, alors je comprends rien à vos contre interventions, messieurs. les indications de rodolphe ne sont pas bonnes ? comment je fais ma page avec le formulaire entrez login/password ? merci. |
|
14 08 2002 à 12:05 |
Ne pas oublier de les encrypter |
|
14 08 2002 à 12:47 |
ah oui mais attendez donc z'y voir un instant ? ca requiert des Bdd ce binz la, non ? |
|
14 08 2002 à 12:59 |
ah ben voui ... comment tu veux stocker tes infos pour l'identification 'sécurisé' sinon ??? |
|
14 08 2002 à 13:05 |
Bon avec une base de données, c'est très simple a faire un script d'authentification avec cookies. Tout d'abord t'as ton formulaire qui envoie vers la page d'administration. Tu récup les valeures de login & password : $login = $_GET["login"]; $password = $_GET["password"]; Puis il faut vérifier leur contenu pour éviter des failles à la con du type SQL injection. Pour ce faire pour le login je te conseille dauthoriser que les caracteres alphanumériques : if(!eregi("[a-z0-9]", $login)) { echo "Auth failure grmbl !"; functionDeLogPuisRedirection(); } Ensuite il faut parser le password, à la fois pour éviter le SQL injection mais aussi pour que celui ci ne soit pas disponible en clair nul part. Pour ce faire je te conseil un hash en md5 (one way hash) : $password = md5($password); Ensuite il faut vérifier dans ta base de donnée si un couple correspond. Ta requete sera du type : $table = "admins"; $query = "SELECT page FROM $table WHERE login='$login' AND password = '$password'"; $result = mysql_query($query); Si l'auth est correct, en utilisant mysql_numrows() on devrait trouver 1 seul résultat, si elle ne l'est pas, il n'y aura aucun résultat. Donc : if(mysql_numrows($result) == 1) { /* L'auth est correct */ sendCookie(); $page = mysql_fetch_array($result); $page = $page["page"]; $page = $page.".php"; include($page); } else { echo "Auth failure !"; functionDeLogPuisRedirection(); } Donc la si l'auth est réussi, on envoie un cookie, et on inclue la page correspondante à l'utilisateur : function sendCookie($login, $password) { $my_name = "nomDuCookie"; $my_value = "$login:$password"; $my_time = time() + 3600; $my_path = "www.artysm.org"; setcookie($my_name, $my_value, my_time, "/",$my_path); } Voila voila, tu peux modifier les valeures du cookie, mais il faut savoir que celui ci doit être envoyé avant tout header (sinon erreure a la con). Maintenant il te reste plus qu'a inclure en haut de chaque page d'admin une petite verification du style : if(!checkCookie()) { echo "méchant casse toi"; } else { echo "ma page ici :)"; } Voili voilou. Pour la fonction checkCookie, elle vérifie si le cookie existe, et si son contenu est correct. Ca devrait ressembler a ca : function check_cookie() { $auth = explode(":",$_COOKIE["nomDuCookie"]); if( empty($auth[0]) || empty($auth[1]) ) { return false; } if( verif_auth($auth[0], $auth[1]) ) { return true; } else { return false; } } La fonction verif_auth vérifie les données du cookie si celui ci n'est pas vide. Il s'agit en fait de la même requete SQL que précédemment, vu que tu l'utilise plusieures fois, autant la mettre ds une fonction Voila comment jme suis laché sur ce post, j'éspere t'avoir avancé, sinon sache que ya des scripts PHP tout pret sur phpscripts-fr.net cya - medgi |
|
14 08 2002 à 13:07 |
pour authoriser tout les caractères sur le pseudo un base64_encode() c'est pas mal... |
|
14 08 2002 à 13:20 |
Bah le probleme n'est pas d'authoriser tout les caracteres, c'est juste qu'en général, le pseudo est réutilisé dans l'interface admin du genre : echo "Bienvenu $login sur votre page de membre ..."; |
|
14 08 2002 à 13:25 |
Eh ben ?? Si je veux voir affiché "bienvenue angel² sur ..." je pourrai pas avec ta méthode... je comprends pas trop ton problème d'affichage... |
|
14 08 2002 à 13:37 |
Bah si tu peux, puisque ton champs login est a la fois ds le cookie et ds la bdd en clair. Mais bon effectivement ta méthode marche aussi, mais il faut utiliser base64_decode() apres si j'ai bien compris le manual (je connaissais pas |
|
Pour répondre à ce sujet (et notifier automatiquement son auteur), cliquez sur le bouton REPONDRE A CE SUJET. Si vous voulez en plus avertir de votre réponse une personne qui a participé à ce sujet, cliquez sur le bouton en face de son intervention. Enfin si vous voulez inviter quelqu'un à réagir, utilisez les appeaux ci-dessous. Seuls les membres logués peuvent utiliser les appeaux et seuls les membres actifs peuvent être appeautés ^^. Bonne notification ! Vous n'êtes pas membre ou vous n'êtes pas logué(e) ou les appeaux sont désactivés dans votre profil. Vous ne pouvez pas utiliser les appeaux. |