Page 1 sur 2

mot de passe

Posté : 17 janv. 2006, 17:36
par zadlin
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

Posté : 17 janv. 2006, 17:44
par zeus
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

Re: mot de passe

Posté : 17 janv. 2006, 18:16
par Invité
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à

Posté : 17 janv. 2006, 18:37
par Cyrano
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 ?

Posté : 17 janv. 2006, 19:10
par Invité
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

Posté : 17 janv. 2006, 19:17
par Cyrano
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

Posté : 17 janv. 2006, 19:25
par Invité
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!

Posté : 17 janv. 2006, 19:30
par Cyrano
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.

Posté : 17 janv. 2006, 19:31
par Tictac
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 ?

Posté : 17 janv. 2006, 19:33
par Cyrano
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.

Posté : 17 janv. 2006, 19:41
par Invité
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

Posté : 17 janv. 2006, 19:46
par Cyrano
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

Posté : 17 janv. 2006, 19:52
par Invité
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

Posté : 17 janv. 2006, 20:13
par Invité
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

Posté : 17 janv. 2006, 20:50
par Tictac
ok mais de quel manière ?
ex:

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