Version complète: sur le forum Webmaster Hub : htpasswd et mysql
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
hervine
Bonjour a tous !!
Je suis nouveau sur le forum et je suis agréablement supris des réponse aux diff. question !! Je vais conseiller votre site, C promis...

En attendant j'ai un pt'i wacko.gif soucis...

J'ai mon aut. par htaccess et htpasswrd qui marche bien mais j'aimerais savoir comment faire pour que je ne sois pas obligé de modifier mon htpasswrd, mais que les log/pass viennent de ma base mysql ???

Je ne sais pas si la réponse est déja en ligne, j'ai cherché mais pas trouvé !

Merci de votre aide... wink.gif
Dan
Bonjour Hervine, et bienvenue à bord du Hub !

Pour utiliser les authentifications à l'aide de mysql, il faut que tu installes un module supplémentaire pour Apache (mod_auth_mysql) ... en espérant bien sûr que tu tournes Apache wink.gif

Une fois le module ajouté, il faudra créer une base dédiée sous mysql
CODE
mysqladmin create http_auth

Créer une table 'auth':
CODE
mysql http_auth
mysql> create table mysql_auth (
   ->   username char(25),
   ->   passwd char(25),
   ->   groups char(25),
   ->   primary key (username)
   -> );

A partir de là, tu ajoutes tes utilisateurs dans cette table.
Les champs 'passwd' doivent contenir les mots de passe encryptés au format DES

Ensuite, il faut signaler à Apache de rechercher les infos d'authentification dans cette table mysql, avec une ligne dans httpd.conf:
CODE
Auth_MySQL_Info [host] [user] [password]

Cette ligne n'est pas nécessaire si tu utilises le serveur localhost et que l'utilisateur défini est le même que celui sous lequel tourne apache.

Si tu utilises une seule base pour toutes tes identifications, tu rajoutes cette ligne aussi:
CODE
Auth_MySQL_General_DB [database_name]


Ensuite, dans le fichier .htaccess, tu mettras:
CODE
AuthName Le titre que tu veux voir apparaître dans le dialogue de login
AuthType Basic
require valid-user


Dan

PS: il y a bien d'autres possibilités que tu trouveras dans la documentation de mod_auth_mysql.
hervine
OK c'est cool ..

Je suis sur Apache mais sur un serv. mutualisé mais comment savoir si le module est installé ?

Mon hebergeur www.amen.fr

en tout cas merci de la rapidité de la reponse !! smile.gif
Dan
Sur hébergement mutualisé, il y a peu de chance que le module soit installé.
Tu peux le savoir en lançant phpinfo(); tu verras tous les modules installés pour Apache.

Dan
hervine
merci !! wink.gif :up:

Donc je n'ai pas d'autre solution ?? A moin de faire un script qui ecrit le fichier .htpasswrd apres l'insertion d'un membre dans la table MYSQL ?

Existe t'il une fonction qui permet de cripter les mot de passe pour htaccess directement dans un script PHP ??

A++
rolleyes.gif
Arlette
CITATION(hervine @ lundi 01 mars 2004, 11:59)
Existe t'il une fonction qui permet de cripter les mot de passe pour htaccess directement dans un script PHP ??

La fonction crypt () dont tu trouveras la page de manuel à cette adresse crypt
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.