mot de passe

zadlin
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 17:36

quel est le code php pour tester avant de faire un ajout, si le mot de passe choisi n'existe pas déjà dans le fichier .txt

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 janv. 2006, 17:44

Il va falloir être plus précis si tu veux une réponse ...

Quel mot de passe, où sont les autres, ...

Une description plus détaillée ne serait pas superflue
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 18:16

quel est le code php pour tester avant de faire un ajout, si le login choisi n'existe pas déjà dans le fichier .txt
j'ai une page inscript.html : page d'enregistrement avec un formulaire
avec un login et mot de passe

j'ai un script inscript.php : il traite le formulaire, sauvegarde dans un fichier (pro.txt) les infos collectées

Avant de faire un ajout dans le fichier il faudra tester si le login choisi n'existe pas déjà

Mammouth du PHP | 19672 Messages

17 janv. 2006, 18:37

Est-ce que tu as commencé à faire un bout de code pour essayer d'obtenir le résultat voulu, code qu'on pourrait corriger éventuellement, ou bien tu espère qu'on va te sortir un code tout fait ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 19:10

Est-ce que tu as commencé à faire un bout de code pour essayer d'obtenir le résultat voulu, code qu'on pourrait corriger éventuellement, ou bien tu espère qu'on va te sortir un code tout fait ?
voici un bout de code commencé :
<?
$log=$_POST["log"];
$pass=$_POST["pass"];
$categorie=$_POST["categorie"];

if (($log_b==$log)){
echo "Login existant";
}else{

if($categorie= "professionnel"){

if(isset($_POST["log"]) && isset($_POST["pass"])){

$fichier=fopen("pro.txt","a");
$info= $_POST["log"] .":" . $_POST["pass"] . ";";
$contenu= fread($fichier, filesize("pro.txt"));
$info=$info . $contenu;
fwrite($fichier, $info);
fclose($fichier);

header("Location: index.html");
}
}
}
?>
Voilà un morceau de code que j'ai fait il faut savoir qu'il y a une liste déroulante dans le formulaire (deux choix possibles) et qu'une fois le code vérifié le login sera enregistré soit dans le fichier du premier choix ici professionnel ou dans le fichier du deuxième choix mais ce n'est pas là que je bloque

Mammouth du PHP | 19672 Messages

17 janv. 2006, 19:17

Il y a une erreur dans le second if() : l'opérateur de comparaison, c'est "==" et non "=":
<?php
$log       = $_POST["log"];
$pass      = $_POST["pass"];
$categorie = $_POST["categorie"];

if (($log_b == $log))
{
	echo "Login existant";
}
else
{
	if($categorie == "professionnel")
	{
		if(isset($_POST["log"]) && isset($_POST["pass"]))
		{
			$fichier = fopen("pro.txt","a");
			$info    = $_POST["log"] .":" . $_POST["pass"] . ";";
			$contenu = fread($fichier, filesize("pro.txt"));
			$info    = $info . $contenu;
			fwrite($fichier, $info);
			fclose($fichier);

			header("Location: index.html");
		}
	}
}
?>
Essaye déjà avec ça :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 19:25

Il y a une erreur dans le second if() : l'opérateur de comparaison, c'est "==" et non "=":
<?php
$log       = $_POST["log"];
$pass      = $_POST["pass"];
$categorie = $_POST["categorie"];

if (($log_b == $log))
{
	echo "Login existant";
}
else
{
	if($categorie == "professionnel")
	{
		if(isset($_POST["log"]) && isset($_POST["pass"]))
		{
			$fichier = fopen("pro.txt","a");
			$info    = $_POST["log"] .":" . $_POST["pass"] . ";";
			$contenu = fread($fichier, filesize("pro.txt"));
			$info    = $info . $contenu;
			fwrite($fichier, $info);
			fclose($fichier);

			header("Location: index.html");
		}
	}
}
?>
Essaye déjà avec ça :-k
J'ai modifié mais j'ai besoin d'aide pour le début au niveau du test du login c'est là que je bloque!

Mammouth du PHP | 19672 Messages

17 janv. 2006, 19:30

La première chose qu'il faut voir, c'est que tu as une variable qui est utilisée avant d'être définie:
if (($log_b == $log)) 
À quoi correspond donc $log_b : en répondant à cette question, tu vas à mon avis faire une grande avancée vers la résolution.

C'est une question de logique: chaque opération doit avoir lieu à un moment précis, avant certaines autres, après certaines autres encore.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 353 Messages

17 janv. 2006, 19:31

comment se presente les mots de passe dans ton fichier txt ?

et pourquoi ne passe tu pas par la base de donnée pour tes mots de passe ?

Mammouth du PHP | 19672 Messages

17 janv. 2006, 19:33

comment se presente les mots de passe dans ton fichier txt ?

et pourquoi ne passe tu pas par la base de donnée pour tes mots de passe ?
D'abord la question n'est pas là, il utilise un fichier texte, ce n'est pas vraiment un problème : là où ça coince, c'est dans la logique de programmation.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 19:41

La première chose qu'il faut voir, c'est que tu as une variable qui est utilisée avant d'être définie:
if (($log_b == $log)) 
À quoi correspond donc $log_b : en répondant à cette question, tu vas à mon avis faire une grande avancée vers la résolution.

C'est une question de logique: chaque opération doit avoir lieu à un moment précis, avant certaines autres, après certaines autres encore.
pour $log_b c'était pour faire un test je sais je ne l'ai pas déclaré en haut mais je ne sais pas quoi mettre

Mammouth du PHP | 19672 Messages

17 janv. 2006, 19:46

Pose-toi la question de l'odre logique des opérations:
-1- tu récupères la saisie de l'internaute;
-2- tu récupères les données du fichier;
-3- tu cherches dans les données du fichier une correspondance avec les données de l'internaute;

Jusque là, ça devrait te sembler cohérent.

Là où ça coince, c'est que ton code ne reflète pas cette logique puisque tu testes la correspondance avant d'avoir récupéré les données du fichier, enclair, tu fais l'opération 3 avant la 2.

CQFD... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 19:52

Pose-toi la question de l'odre logique des opérations:
-1- tu récupères la saisie de l'internaute;
-2- tu récupères les données du fichier;
-3- tu cherches dans les données du fichier une correspondance avec les données de l'internaute;

Jusque là, ça devrait te sembler cohérent.

Là où ça coince, c'est que ton code ne reflète pas cette logique puisque tu testes la correspondance avant d'avoir récupéré les données du fichier, enclair, tu fais l'opération 3 avant la 2.

CQFD... :-k
le test du login je dois le faire à la fin du code sauf que ce que je n'arrive pas à comprendre c'est que mon fichier text est vide pour commencer et que lorsque je test ce code il me met le message login existant

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 20:13

comment se presente les mots de passe dans ton fichier txt ?

et pourquoi ne passe tu pas par la base de donnée pour tes mots de passe ?
je ne fais pas de base de données et pour le fichier text les infos récupérées sont écrit en lignes

Eléphant du PHP | 353 Messages

17 janv. 2006, 20:50

ok mais de quel manière ?
ex:

login1:password1,login2:password2,....