Donner accès à un dossier [Résolu]

Signaler
Messages postés
399
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
22 décembre 2019
-
LaChaux78
Messages postés
399
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
22 décembre 2019
-
Bonjour,
Je souhaite donner accès à certains membre à un dossier avec htaccess et htpasswd. Quelque chose qui me dépasse je vous donne mon script qui ne fonctionne pas et en dessous celui qui fonctionne. J'aimerai comprendre pourquoi si vous pouvez m'aider je vous remercie.
	if($submit) {
		$login  	= trim($_POST["login"]);
		$passwd 	= trim($_POST["passwd"]);
		
		$user_input = 'f?,j89-k0.;-!?lqjçs_di3%5a6_4jhfgh';
		$pass_crypt = md5($passwd, $user_input);
		
		// Ecrire dans le fichier des mots de passe
		$hf = fopen("/home/azerty/photos/.htpasswd","a+");
		fwrite($hf,"$login:".crypt("$pass_crypt")."\n");
		$success = "<span class='success'>Un nouveau Identifiant et Mot de passe a été créé pour l'accès aux Photos.</span>";
		fclose($hf);
	}

et celui-ci fonctionne bien
	if($submit) {
		$login  	= trim($_POST["login"]);
		$passwd 	= trim($_POST["passwd"]);
		
		// Ecrire dans le fichier des mots de passe
		$hf = fopen("/home/azerty/photos/.htpasswd","a+");
		fwrite($hf,"$login:".crypt("$passwd")."\n");
		$success = "<span class='success'>Un nouveau Identifiant et Mot de passe a été créé pour l'accès aux Photos.</span>";
		fclose($hf);
	}

5 réponses

Messages postés
27319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
2028
Bonjour,
Et le souci se trouve où ?
Dans ton code php ? Tu as un message d'erreur ?
Peux tu expliquer en détail le souci constaté ??
Messages postés
399
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
22 décembre 2019
6
Bonjour
Lorsque je cré le mot de passe avec le premier script impossible de se connecter comme si je renseignais un mot de passe invalide la fenêtre d’authentification reviens, par contre avec le script suivant tout se passe bien. Aucun message d'erreur.
jordane45
Messages postés
27319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
2028
As tu essayé de créer le fichier htpassword à la main avec les mêmes password ?
Car si ça ne fonctionne pas non plus comme ça.... c'est que ton souci se situe dans le htpassword et non dans ton code php....

A moins que....... as tu regardé la documentation de la fonction md5 ???
Le second paramètre doit être TRUE ou FALSE ... et non une string...
Ton user_input.. c'est pour faire un SALT ??
Dans ce cas.. c'est un POINT qu'il faut utiliser.. et non une virgule.
$pass_crypt = md5($passwd . $user_input);
Messages postés
399
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
22 décembre 2019
6
Bonjour
Alors voilà mon analyse. J'ai créé mon fichier htpasswd avec un mot de passe créé manuellement et cela fonctionne. Si ce même MDP je le génére avec mon script ça ne fonctionne pas. J'ai essayé également avec le point mais sans résultat. Merci
jordane45
Messages postés
27319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
2028
Est-ce que le fichier obtenu à la main est strictement identique à celui créé par le script ?colle nous une capture écran des deux fichiers...
Messages postés
399
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
22 décembre 2019
6
Non en fait les deux mot de passe crypté ne sont pas identique. Mais je crois que je ne comprends pas ce que tu me demande.
Je vais essayé de plus détailler. J'ai mon formulaire comme ceux ci.
	if($submit) {
		$login  	= trim($_POST["login"]);
		$passwd 	= trim($_POST["passwd"]);
		
		$user_input = 'f?,j89-k0.;-!?lqjçs_di3%5a6_4jhfgh';
		$pass_crypt = md5($passwd.$user_input);
		
		// Ecrire dans le fichier des mots de passe
		$hf = fopen("/home/azerty/photos/.htpasswd","a+");
		fwrite($hf,"$login:".crypt("$pass_crypt")."\n");
		$success = "<span class='success'>Un nouveau Identifiant et Mot de passe a été créé pour l'accès aux Photos.</span>";
		fclose($hf);
	}

pour l'exemple le login c'est "photos" et le mot de passe c'est "photos" ce qui donne...
photos:$1$oDS7TMSe$x1lYm0wGmwu/GTWHunwKX1

Par contre si je génére le même mot de passe c'est à dire "photos" avec un générateur et que je le colle le mot de passe crypté dans mon fichier je peux me connecter.
jordane45
Messages postés
27319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
2028
Tu as ajouté un SALT à ton password....
Donc si ton mot de passe es t: "photos" ... tu te retrouves avec
photosf?,j89-k0.;-!?lqjçs_di3%5a6_4jhfgh

Donc c'est un peu normal que ça ne fonctionne plus... non ???
Messages postés
399
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
22 décembre 2019
6
Ok je te remercie, je ne savais pas que cela allais me créé autant d’ennuis. Mais après réflexion c'est logique.
Merci donc je reste comme cela.
	if($submit) {
		$login  	= trim($_POST["login"]);
		$passwd 	= trim($_POST["passwd"]);
		
		// Ecrire dans le fichier des mots de passe
		$hf = fopen("/home/azerty/photos/.htpasswd","a+");
		fwrite($hf,"$login:".crypt("$passwd")."\n");
		$success = "<span class='success'>Un nouveau Identifiant et Mot de passe a été créé pour l'accès aux Photos.</span>";
		fclose($hf);
	}