Accès membre sans bdd

Fermé
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023 - 14 mars 2023 à 17:03
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 - 20 mars 2023 à 18:01

Bonjour,

Je vous envoie ce message car je suis à la recherche d'un script complet sur un accès membre sans bdd. Malgré de longues recherches sur le net, je n'ai rien trouvé de très complet à ce propos. les infos déjà consultées sont incomplètes ou incompréhensibles pour moi.

Je souhaiterais intégrer un accès membre sans bdd car je préfèrerais gérer manuellement les membres. il n'y aurait que 20 membres. 

Auriez-vous de m'aider à finaliser cet accès car j'y ai déjà passé énormément de temps? je dois remettre mon travail dans les plus brefs délais.

Auriez-vous un script complet? surtout bien expliqué.

d'avance, je vous remercie pour votre aide.


Windows / Edge 110.0.1587.63

6 réponses

[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
Modifié le 15 mars 2023 à 11:22

Salut renardo78,

Si tu veux gérer une authentification sans base de donnée en gérant manuellement un fichier de mots de passe alors que tu n'as pas de connaissances en programmation, je recommanderais plutôt que tu utilises un fichier .htaccess afin que l'authentification soit gérée toute seule entre le serveur Web et le navigateur. Ainsi, tu n'as rien à programmer en Php.

Tu fais comme ceci:

  • tu mets ta partie membre dans un répertoire, par exemple dans /membres/ à partir de la racine du site
  • dans ce répertoire membre tu vas mettre deux fichiers

1. Un fichier ".htaccess" (son nom commence par un point), dans lequel tu vas mettre

AuthType Basic
AuthName "Espace membre"
AuthUserFile /home/users/re/renardo78/membres/.htpasswd
require valid-user

La ligne AuthUserFile doit contenir le chemin complet sur le système du serveur vers le 2ème fichier où seront stockés les identifiants et mots de passe, c'est à dire le chemin complet à partir de la racine du disque dur du serveur.

Si tu ne connais pas l'information équivalente à l'exemple ci-dessus "/home/users/re/renardo78/membres/" correspondant au chemin complet du répertoire /membres/ sur le système du serveur, avant de créer ton fichier .htaccess, tu peux sauvegarder le script Php simple suivant dans ton répertoire /membres/ et le lancer avec ton navigateur pour afficher cette information :

<?php
// affiche le chemin complet du répertoire courant
echo getcwd() . "\n";
?>

Une fois que tu as cette information, tu n'as plus besoin de ce script Php.

2. Un fichier ".htpasswd"

Ce fichier est donc celui indiqué à la ligne AuthUserFile du fichier ".htaccess". Il va être automatiquement utilisé par le serveur pour rechercher les données d'authentification et contient les identifiants et mots de passes (hachés) aux formats attendus par le serveur Web.

Tu peux le créer et le gérer en ligne de commande si tu disposes d'un accès en ligne de commande et que tu sais l'utiliser.

https://httpd.apache.org/docs/2.4/fr/howto/auth.html#gettingitworking

Ou tu peux utiliser des outils en ligne qui permettent de générer le contenu de ce fichier, comme, par exemple :

https://www.web2generators.com/apache-tools/htpasswd-generator

Par exemple, pour un nom d'utilisateur "toto" et un mot de passe "password Hard 2 gue$$", une ligne de ce type peut être créée :

toto:$apr1$g72nvuqs$710hAhAXt3eEUp7pUq4nj.

Tu peux créer autant d'utilisateurs que tu veux en rajoutant des lignes additionnelles.

Avec des deux fichiers en place, lorsque tu tentes d'accéder au contenu du répertoire /membres/ avec ton navigateur, ton navigateur devrait ouvrir une fenêtre intitulée "Espace membre" demandant un identifiant et un mot de passe. L'utilisateur devra saisir son identifiant "toto" et son mot de passe "password Hard 2 gue$$" pour s'authentifier. Cela va protéger l'accès à tout le contenu de /membres/ (y compris les sous-répertoires sous celui-ci).

Comme tu gères manuellement tes utilisateurs, tu devras leur communiquer le mot de passe par un moyen sécurisé de ton choix, ou tu peux directement leur demander d'aller sur un générateur comme celui ci-dessus et de t'envoyer la ligne de résultat avec le mot de passe haché (tu n'as pas à connaître leur mot de passe normalement).

S'ils oublient le mot de passe, il faudra supprimer la ligne contenant l'ancien mot de passe haché et insérer la nouvelle générée de façon similaire.

Pour fonctionner, cette authentification de base doit être activée dans le paramétrage du serveur Web (c'est souvent le cas chez les fournisseurs d'hébergement). Cela marche bien sur les serveurs Apache (qui ont créé à l'origine ce procédé), mais d'autres serveurs le supportent aussi (Nginx par exemple).

Sur ces serveurs, les fichiers dont le nom commence par un point ne sont normalement lisibles que par le serveur Web directement et ne sont pas affichables par le navigateur.

2
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
15 mars 2023 à 11:20

Bonjour Dal,

Big merci pour ton aide, tes consignes claires et pédagogiques. C'est déjà plus accessible pour moi. C'est ce qu'il me faut pour comprendre ce que je fais.

Je me suis hâté d'imprimer toutes les informations partagées dans ton message à propos de la création d'un accès membre sans BDD. Je vais bien approfondir le sujet en allant sur les liens mentionnés dans ton message. Je vais faire le max pour t'annoncer de bonnes nouvelles. J'espère vraiment relever ce défi de créer enfin un accès membre sans BDD fonctionnel.

Je te souhaite une agréable journée et à +.

Encore merci.

0
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083 > renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
15 mars 2023 à 11:47

De rien.

Si quelque chose n'est pas clair, dis le moi.

Je pourrais créer une fiche dans la rubrique "Astuces et Solution" de CCM sur la base de cette réponse pour qu'elle profite au plus grand nombre, alors tous retours de ta part permettant d'améliorer les explications seront utiles

(et si c'est clair et que tu as pu mettre en oeuvre l'authentification avec ces informations, c'est utile aussi de le savoir)

Bonne journée à toi aussi

0
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
15 mars 2023 à 23:41

Bonsoir Dal,

En cette fin de soirée, j'en profite pour t'envoyer mon compte-rendu à propos l'accès membre sans bdd. J'ai bien suivi ton plan. Hélas, je n' ai pas encore mené le bon fonctionnement du script à bon port. Cependant, j'ai déjà réussi à faire un répertoire (membres) où j'ai bien mis deux fichiers dont :

  • .htaccess
  • .htpasswd

Jusqu'à ce point, tout s'est bien passé. Ces fichiers était dans le même dossier où se trouve ma page index.html.

Une boîte de dialogue me demandait mon login et mon password. C'est ici que ça coince car il me redemande en continuation le login et le password. On dirait qu'il ne le reconnait pas.

Je ne comprends pas pourquoi ça ne va pas plus loin. De ce fait, la page de mon site ne s'affiche pas.

Que penses-tu qu'il se passe ? À ton avis où se trouve l'erreur ? Sans qu'il y a une erreur de ma part. J'ai vu qu'il existe différents cryptages pour le password.

Mon site est hébergé sur Hostinger. Peut-être que cette info supplémentaire te sera utile. Du moi, je l'espère.

Sans doute que c'est une erreur de ma part. Aurais-tu l'amabilité de m'éclairer sur cette problématique afin de finaliser ce script ? Une partie fonctionne déjà. 

Big Merci pour tes conseils avisés. J'espère que tu voudras bien m'aider pour le reste. Peut-être que le script que tu m'as proposé me sera très utile pour terminer mon site.

Dans l'attente de tes nouvelles, je te souhaite une bonne fin de soirée.

Au plaisir de te lire.

Encore merci pour tout.

0
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
Modifié le 16 mars 2023 à 10:12

Salut renardo78,

Juste sur le plan des mots, je n'ai pas proposé de "script" (à part le modeste script en Php qui retourne le chemin complet du répertoire courant). Un script est un programme informatique dans un langage interprété, comme le langage Php.

.htaccess et .htpasswd sont des fichiers de configuration du serveur Web et je suppose que c'est bien sûr ce dont tu parles.

 j'ai bien mis deux fichiers

Peux-tu poster leur contenu (éventuellement en remplaçant la partie qui identifie ton nom d'utilisateur dans le chemin complet de AuthUserFile par des xxx et en laissant le reste) ? As-tu créé ces fichiers en ligne de commande avec un accès ssh ou autrement ?

As-tu accès à ton hébergement en ligne de commande (accès ssh) ?

Sinon, Hostinger (que je n'ai jamais utilisé) dispose d'une interface qui semble permettre la création de ces fichiers avec un formulaire sur leur panneau de contrôle hPanel :

https://support.hostinger.com/fr/articles/1583470-comment-proteger-votre-site-web-par-un-mot-de-passe

On dirait que c'est prévu pour un seul utilisateur / mot de passe, mais cela pourrait être un début et tu pourrais voir comment sont générés les fichiers .htaccess et .htpasswd  par cet outil pour fonctionner avec la configuration par défaut du serveur de ce fournisseur en étudiant le contenu des fichiers générés par cet outil.

Pour l'accès ssh et la gestion du site en ligne de commande, cette page indique comment l'activer :

https://support.hostinger.com/en/articles/1583645-how-to-enable-ssh-access

(accessible aux hébergements "Premium" et supérieurs)

1
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
Modifié le 16 mars 2023 à 14:19

Dans l'exemple que j'ai donné

toto:$apr1$g72nvuqs$710hAhAXt3eEUp7pUq4nj.

le "apr1" entre les deux premiers $ signifie que le type de hachage utilisé est un hachage basé sur md5 propre à Apache, qui est couramment utilisé sur les serveurs de ce type.

https://fr.wikipedia.org/wiki/APR1

Il est possible que celui-là ne soit pas utilisé sur ton serveur. Le fait de générer un fichier .htpasswd de test à partir de la plateforme de ton hébergeur sur un identifiant et mot de passe permettra de vérifier quel est le type de hachage utilisé.

Le fait de consulter les logs générés par le serveur lors de tes tentatives d'authentification pourrait aussi te renseigner sur la cause du non fonctionnement.

1
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663
14 mars 2023 à 17:04

Bonjour,

Désolé mais nous ne fournissons pas de script prêt à l'emploi sur demande....

Par contre, si tu viens nous montrer ce que tu as essayé de faire, nous pourrons éventuellement t'aider à le corriger ou l'améliorer.


0
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
14 mars 2023 à 17:10

Bonjour Jordane,

Merci pour ta réponse rapide.

Je n'ai rein à te présenter car j'ai déjà  essayer la plupart des scripts trouvés mais ça ne marche pas. 

La plupart des infos sur les accès membres sans bdd sont incomplètes donc je n'ai rien de probant à te montrer. je peux t'envoyer des liens d'autres sites que j'ai consulté à  maintes reprises.

cordialement;

0
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663 > renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
14 mars 2023 à 17:35

Il faut que tu "découpes" le fonctionnement de ton programme.

Déjà, où, puisque tu ne veux pas de bdd, vas tu stocker les infos de connexion de tes users ?

Un fichier ? de quel type ? php ? json ? autre ?

Ensuite....

Ton code devra aller chercher, dans ce fichier, si ton utilisateur existe et si le mot de passe correspond.

Si oui .. Il initialise une variable de session permettant de savoir qu'il est autorisé à se connecter

puis il redirige vers la page voulue (ou affiche la page à laquelle tu essais d'accéder)

Dans la page concernée ...

Tu vérifie si la variable de session existe ..   sinon tu le renvoies vers la page de login.

Sur le principe .. que ça soit avec une BDD ou un fichier .. tu constateras que c'est le même fonctionnement... c'est juste l'endroit où est stocké l'info (et donc le moyen de la récupérer) qui change un peu.

1
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023 > jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024
14 mars 2023 à 18:16

Merci Jordane pour ta réponse.

Je mettrais les infos des users dans un fichier.txt. me conseilles-tu un fichier CSV ou MVC sous forme d'un tableau excel? Je patauge un peu.

De quelle façon mettre le mot de passe et mail des users dans un code? Je coince à ce niveau. J'ai consulté plusieurs codes en ligne mais ça va dans tous les sens.

Mon projet serait d'avoir un accès membre sur ma page principale avec le mot de passe et le mail pour se connecter à une page réservée de mon site.

J'ai essayé plusieurs scripts mais ça coince car j'essaie de lire les scripts déjà publiés en ligne qui ne sont pas toujours très clairs.

.Pourrais-tu m'aider à trouver un script fonctionnel?

 Merci

0
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023 > jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024
14 mars 2023 à 18:31

J'ai consulté ces deux codes. Ça va dans tous les sens.

De plus, il n'y a pas beaucoup d'infos sur ce sujet sur la toile.

https://forum.alsacreations.com/topic-20-70986-1-Espace-membre-php-sans-base-de-donnees.html

https://forums.commentcamarche.net/forum/affich-14987122-php-espace-membre-sans-bdd

Je recherche un tuto, un script ou une âme charitable pour m'aider à ce propos. Réussir enfin à coder un script qui fonctionne car Je n'ai toujours pas réussi. Je patauge...

Merci Jordane 

0
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663 > renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
14 mars 2023 à 19:26

Tu trouves que ça part dans tous les sens avec 15 lignes de code ???

Je trouve que ces deux exemples sont pas trop mal.

Quoi qu'il en soit, ici, personne ne te filera un script tout fait......

Comme je te l'ai déjà dit, commence par coder quelque chose, puis viens nous voir si tu rencontres des soucis en nous montrant ce que tu as déjà réalisé

0
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
14 mars 2023 à 19:59

Merci Jordane.

Je ne sais pas coder ce script. Il y a deux semaines que j'essaie de comprendre. Je n'y arrive vraiment pas. C'est trop compliqué pour moi. Ça coince car je ne sais pas par où commencer.

C'est une bouteille à la mer que je lance...

Y-a-t-il un tuto pour les nuls ?

Ou une alternative moins ardue pour moi.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663
14 mars 2023 à 20:43

Bon...

Moi je partirai sur un fichier csv

Via ton code php, tu récupères son contenu dans un array

https://stackoverflow.com/questions/1269562/how-to-create-an-array-from-a-csv-file-using-php-and-the-fgetcsv-function

Ensuite, tu peux repartir sur l'exemple que tu avais trouvé

https://forums.commentcamarche.net/forum/affich-14987122-php-espace-membre-sans-bdd#1

Bien entendu, là on ne parle que de la partie "traitement".

Il te faut, avant, un formulaire pour saisir un utilisateur et un mot de passe .. qui fera ensuite appel à ce code.

Je ne vois pas ce que je peux te dire de plus sans te coder le truc moi même ( et non ! je ne le coderai pas à ta place ! )


0
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
14 mars 2023 à 23:37

Bonsoir Jordane,

Aurais tu la gentillesse de me faire un plan sur ce que je dois coder pour faire fonctionner mon futur script? 

Je ne comprends pas de quel fichier PHP je dois partir. Peux-tu me donner des consignes claires? Je ne reçois que de vagues explications comme si j'étais censé déjà le savoir. Je demande seulement  "Comment ça marche"! Je souhaite beaucoup plus de clarté dans vos réponses. Ça part toujours dans tous les sens. Je suis partant pour le codage. 

Mais comment ça marche ?

D'avance, je te remercie pour ta compréhension.

Cordialement 

0
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663 > renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
15 mars 2023 à 07:44

1 - formulaire de connexion 

2 - script de traitement de ce formulaire 

0
renardo78 Messages postés 9 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 18 mars 2023
18 mars 2023 à 12:47

Bonjour Dal,

Tout d'abord, sorry de répondre avec un peu de retard. la fin de semaine est toujours très surchargée. Je tenais à prendre le temps de bien faire les choses avant de te répondre.

Merci pour tes conseils avisés. J'ai bien appliqué ce que tu me proposais dans tes deux derniers commentaires à propos :

  1. Création de fichiers htaccess et htpasswd enregistrés dans un dossier "membres".
  2. Test des divers types de hachage que j'ai appliqué
  3. Accès SSH 

Hélas, je n'ai pas vu de changements. J'ai toujours une boîte de dialogue qui me demande toujours mon login et mot de passe. Je suis bloqué à ce niveau.  

Par acquis de conscience, j'ai appliqué minutieusement et à maintes reprises afin de m'assurer qu'il n'y ait pas des erreurs de frappes, de distraction.

Comme demandé, tu trouveras ci-joint les captures des trois points énoncés ci-dessus.

Espérant que tu pourras y déceler des erreurs. 

Voici une info intéressante qui pourra peut-être t'être utile :

Bien que je préfère ajouter manuellement les membres autorisés à consulter certaines pages réservés, ne penses-tu pas que je devrais plutôt faire une bdd sous phpadmin?

Dans ce cas, si tu es de cet avis, pourrais-tu m'aider car je n'y arrive pas malgré plusieurs tentatives infructueuses ?

Enfin, je ne te cache pas que j'ai une préférence pour l'accès membre sans bdd car c'est beaucoup plus simple pour moi et durant mes déplacements.

Dans l'attente de tes nouvelles, je te remercie d'avance pour ton retour et te souhaite un bon weekend.

0
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
20 mars 2023 à 18:01

Salut renardo78,

Tu fournis beaucoup d'informations, mais elles sont confuses ou hors contexte et difficilement interprétables.

Peut-tu faire ceci :

  • effacer tout fichier .htaccess et .htpasswd qui se trouverait dans /membres/
  • vérifier que tu peux accéder à /membres/ avec ton navigateur sans demande d'authentification
  • utiliser l'outil de ton hébergeur pour créer ces fichiers avec un identifiant et un mot de passe de ton choix
  • vérifier que tu peux accéder à /membres/ avec ton navigateur après authentification avec cet identifiant et mot de passe sans altérer les fichiers générés

Si tu n'arrives pas à faire cela, contacte ton hébergeur, car il doit y avoir un problème avec leur outil de création de ces fichiers (ce qui est problématique vu qu'on veut s'en servir comme référence de ce qui est censé fonctionner).

Quand tu arrives à faire cela, on pourra utiliser le contenu de .htpasswd comme référence pour créer de nouveaux utilisateurs, s'il le faut en se connectant en ssh au serveur.

0