Nenex Posté 28 Juin 2007 Posté 28 Juin 2007 slt Une copine vend de la vaisselle et voudrais proposer un jeune marié la creation d'une zone prive pour leur liste de mariage, de maniere que leur famille et amis puisse faire leur choix dans cette liste. La copine recevrais les choix des gens par mail. Je ne sai pas si c'est clair mon explication. Je n'ai aucune idee de comment faire se genre de chose. Je pensai en PHP mais j'ai que les bases et je ne saurai pas creer le spages. J'ai deja installer un forum en PHP (Forum PHPBB) et aussi un panier (OsCommerce). Merci d'avance pour votre aide et vos lumiere.
theprogrammeur Posté 28 Juin 2007 Posté 28 Juin 2007 Tu peux utiliser les fichiers .htaccess pour protéger toutes les pages d'un répertoire. Ainsi, si les visiteurs ont le login et le mot de passe, ils n'ont qu'à se logger une seule fois pour toutes les pages contenues dans ce dosser. Le grand intérêt pour toi, c'est que tu ne dois RIEN changer aux pages que tu as déjà créées.
Nenex Posté 28 Juin 2007 Auteur Posté 28 Juin 2007 Merci pour ta reponse. Oui mais l'ideal ca serais que chaque cple se cree leur propre login et mot de passe et qu'il puisse faire dans leur zone prive leur liste de mariage.
theprogrammeur Posté 28 Juin 2007 Posté 28 Juin 2007 Dans ce cas, tu n'as pas beaucoup le choix, tu dois utiliser les variables sessions ainsi qu'une base de données pour stocker tous les logins et les mots de passe des différents couples. En clair: -1 table où on stocke les logins et les mots de passe (cryptés) -une page d'authentification où on regarde si le login existe et si le mot de passe est correct. -peut-être une autre table où tu stocke les listes. Ca, c'est à toi de voir Ca t'as aidé?
Leonick Posté 28 Juin 2007 Posté 28 Juin 2007 Oui mais l'ideal ca serais que chaque cple se cree leur propre login et mot de passepas de problème, il suffit juste de les enregistrer dans htaccess avec php, en n'oubliant pas de crypter le password
Nenex Posté 28 Juin 2007 Auteur Posté 28 Juin 2007 donc avec PHP et MySQL. J'y avait pense, c'est un peu pour ca que j'ai poste ici, mais j'en ete pas certain. Donc tu ma aide en me confirmant Par contre pour faire ca va etre tres chaud pour moi car je n'y conanis que dalle en PHP et je sai que gerer des table MySQL
Leonick Posté 28 Juin 2007 Posté 28 Juin 2007 il suffit juste de faire define("PASSWDFILE", "chemin du .htpasswd"); $filehandle = fopen(PASSWDFILE, "w"); fputs ($filehandle, $new_login.":".crypt($new_passwd)."\n");fclose($filehandle); et dans le htaccess du répertoire <limit GET POST>require valid-user</Limit> ensuite, il faut juste récupérer le $_SERVER['REMOTE_USER'], car s'il est arrivé là et que apache a validé l'accès, le password sera bon. Donc dans la bdd, il suffit juste d'avoir le login, pas besoin de conserver le password, même en md5
Nenex Posté 28 Juin 2007 Auteur Posté 28 Juin 2007 il suffit juste de faire define("PASSWDFILE", "chemin du .htpasswd"); $filehandle = fopen(PASSWDFILE, "w"); fputs ($filehandle, $new_login.":".crypt($new_passwd)."\n");fclose($filehandle); et dans le htaccess du répertoire <limit GET POST>require valid-user</Limit> ensuite, il faut juste récupérer le $_SERVER['REMOTE_USER'], car s'il est arrivé là et que apache a validé l'accès, le password sera bon. Donc dans la bdd, il suffit juste d'avoir le login, pas besoin de conserver le password, même en md5 "il suffit juste de faire"....... pour moi il me faudra je sai pas combien de temps pour le faire et encore si j'y arrive Plus serieusement, avec ca chaque cple peu se creer son propre login et mot de passe ?
Leonick Posté 28 Juin 2007 Posté 28 Juin 2007 Avec ça, tu peux mettre à jour, automatiquement, en temps réel les user/password. Après, à toi de faire l'interface de saisie/confirmation pour les utilisateurs en vérifiant que le login n'est pas déjà utilisé
theprogrammeur Posté 29 Juin 2007 Posté 29 Juin 2007 Mais avec les .htaccess, chaque membre ne peut avoir sa zone privée, tous les membres verront les mêmes pages??? :nonono:
Leonick Posté 29 Juin 2007 Posté 29 Juin 2007 Mais avec les .htaccess, chaque membre ne peut avoir sa zone privée, tous les membres verront les mêmes pages???Non, ça serait trop basique il suffit de récupérer $_SERVER['REMOTE_USER'] et ensuite, récupérer les éléments correspondant à ce code dans la BDD L'avantage de cette méthode : pas possible de faire une injection de code SQL
theprogrammeur Posté 29 Juin 2007 Posté 29 Juin 2007 $_SERVER['REMOTE_USER'], c'est pour l'adresse IP, non? Si c'est le cas, elle change à chaque connection. Comment veut-tu la sauvegarder alors?
Damien_ Posté 30 Juin 2007 Posté 30 Juin 2007 (modifié) Bonsoir, je viens de me reveiller apres une bonne nuit et je tombe ici Je pense que le plus simple pour toi est de protéger les pages que tu désire grâce aux sessions en php. Un fonction permet l'authentification des données posté par ta page d'identification et celles enregistrées dans ta base de données. Je ne pense pas que ce soit vraiment compliqué de t'expliquer. Pour faire simple tu créer un ficher nommé secure.php, tu appelera se fichier sur toutes les pages que tu désire protéger avec ce code : <?php include ("secure.php"); ?> se fichier contient: <?php session_start();if (!isset ($_SESSION['login'])){ header ('location:connexion.php'); exit();}?> Maintenant passons à un peu plus compliqué, la création du formulaire d'authentification + la fonction de verif, je te laisse faire les parametre de connection à ta bdd. Tu créer un nouveau fichier php que tu nomme connexion.php et dedans tu met : <?php session_start(); if (isset ($_POST['login']) && isset ( $_POST['password'])) { $login = $_POST['login']; $password = $_POST['password']; if (verification($login,$password)) { session_regenerate_id(); $_SESSION['login'] = $login; $message = " Authentification validée "; header ('location:index.php?page=fax'); } else {$message = " Authentification refusée, mauvais mot de passe <br>"; $message .= " <a href =connexion.php class=style3>retour</a>";} } ?><?php // Ton formulaire, j avai une feuille de style CSS .. je te laisse remettre en forme ta page en enlevant les div et differentes balise de classe que tu trouve ?><html><head><title>Page d authentification</title></head></head><body><center><div id="admin"><form method="POST" action="connexion.php"><table width="370" border="0" align="center" cellpadding="1" cellspacing="0"><tr><td colspan="3"><center><?PHP echo $message ?></center></td></tr><tr><td width="130"> </td><td width="99">Login :</td><td width="308"><input type="text" name="login" style="background:#FF8C8C"></td></tr><tr><td> </td><td>Password :</td><td><input type="password" name="password"style="background:#FF8C8C"></td></tr><tr><td height="30" colspan="2" class="style3"> </td><td class="style3"><input name="B_auth" type="SUBMIT" id="B_auth" value=" Valider " style="background-color:#FFCC99; border:#FFFFFF; border:double; border-width:thin"> </td></tr></table></form></div></center></br></body></html><?php// la fonction qui te permettra de contrôler les utilisateurs.function verification($nom,$password) { // je te laisse faire ta chaine de connection .. moi j'ai une table users possédant les champs: id, nom, prenom, login,password, mail .. bref tu met ce que tu veux $query = "SELECT * FROM users WHERE login='$nom' AND password='$password'"; if (mysql_num_rows($query)>0) {return TRUE;} else {return FALSE;} }?> Tu auras plus qu'a enregistrer les utilisateurs dans la bdd manuelement ou en créant un formulaire comme tu veux En esperant t'avoir éclaircit sur le fonctionnement des sessions et surtout sur ton problème de sécurité. Maintenant les différentes personnes auront acces à la partie administration. Modifié 30 Juin 2007 par Damien_
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant