Vérif avec fichier .ini

Petit nouveau ! | 8 Messages

12 mars 2009, 22:28

Bonjour.
Me voila confronté a un problème je persiste depuis une bonne heure mais je ne comprend toujours pas pourquoi je l'ai ^^.

Enfait j'ai mon fichier .ini qui stock des champs d'un formulaire :
[[email protected]]
nom=dupont
prenom=jean
mail=[email protected]
mdp=******

et je voudrais faire une page pour se loger.
je l'ai crée et je voudrais enfait trouver cette personne dans mon fichier .ini.
Voici mon code :
<?php

$login=parse_ini_file("fichconfig.ini",$_POST['logmail']);

if(($login['mail'])==($_POST['logmail']))
{
	if (($login['password'])==($_POST['logpassword']))
	{
		header("location:login.php");
	}		
}


else header("location:index.php");	
Mon problème ici est que je suis toujours redirigé vers l'index
pourtant mes noms de champs sont bon ou j'en sais rien...
Je ne rentre jamais dans les conditions if.
j'ai l'impression que $login['mail'] n'est pas reconnu nan?

mon formulaire login est le suivant :

Code : Tout sélectionner

<FORM method="POST" action=\'recuplogin.php\'> <table class="centre"> <tr> <td> <b>MAIL:</b> </td> <td> <input type="texte" name="logmail"/> </td> </tr> <tr> <td> <b>Mot de passe:</b> </td> <td> <input type="password" name="logpassword"/> </td> </tr> <tr> <td align="center"> <INPUT TYPE="submit"> </td> </tr> </table>
Merci si vous avez une réponse...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 254 Messages

12 mars 2009, 22:42

Salut
Mon problème ici est que je suis toujours redirigé vers l'index
Que vallent $login['mail'] et $_POST['logmail'] ? Vérifie tes variables

ViPHP
AB
ViPHP | 5818 Messages

12 mars 2009, 22:46

Et c'est pas un peu bizarre cette écriture

Code : Tout sélectionner

<FORM method="POST" action=\'recuplogin.php\'>

Eléphant du PHP | 254 Messages

12 mars 2009, 22:48

En jetant un œil dans la doc sur parse_ini_file je vois que le deuxième paramètre doit être TRUE ou FALSE, avec FALSE par défaut, dans ton cas il te faut true

Petit nouveau ! | 8 Messages

12 mars 2009, 22:49

alors $_POST['logmail'] prend comme valeur : [email protected]
et $login['mail'] j'arrive pas a l'afficher.... je ne sais pas pourquoi,
lorsque j'écri print_r ($login['mail']) rien ne s'affiche.

C'est de là ou vient mon erreur mais je ne sais pas comment la résoudre, enfait faudrais que j'arrive a récupérer mes champs (sections) dans mon fichier .ini.

VOila

Eléphant du PHP | 254 Messages

12 mars 2009, 22:50

Et c'est pas un peu bizarre cette écriture

Code : Tout sélectionner

<FORM method="POST" action=\'recuplogin.php\'>
oui c'est curieux ^^

Eléphant du PHP | 254 Messages

12 mars 2009, 22:51

C'est de là ou vient mon erreur mais je ne sais pas comment la résoudre, enfait faudrais que j'arrive a récupérer mes champs (sections) dans mon fichier .ini.
Ce a quoi j'ai répondu
En jetant un œil dans la doc sur parse_ini_file je vois que le deuxième paramètre doit être TRUE ou FALSE, avec FALSE par défaut, dans ton cas il te faut true
:)

Petit nouveau ! | 8 Messages

12 mars 2009, 22:52

Et c'est pas un peu bizarre cette écriture

Code : Tout sélectionner

<FORM method="POST" action=\'recuplogin.php\'>
SI c'est pour les anti-slash que c'est bizarre c'est parce que ma page est en PHP j'ai donc un echo'................'; et donc pour supprimer la fin de l'echo j'utilise l'antislash.


ps :
même avec true comme second paramètre celui-ci ne resoud pas le parcour de ma condition :

Code : Tout sélectionner

if(($login['mail'])==($_POST['logmail'])) { if (($login['password'])==($_POST['logpassword'])) {
Je reflechi toujours...
Pas facile grrrrr

ViPHP
ViPHP | 1136 Messages

13 mars 2009, 09:06

Salut , je pense que tu as un souci avec ta fonction parse_ini_file.

En effet dans ton code , le deuxième argument est $_POST.

Or , si ta variable $_POST est dfferent de NULL elle sera interprété comme TRUE dans ta fonction parse_ini_file.

Donc si tu veux lire la propriété "mail" tu vas devoir aussi spécifier la catégorie supérieur ['[email protected]']

Car le tableau retourné est alors associatif .

Par contre , si ta variable $_POST est vide , elle sera interprété comme false .. et là ca fonctionne .

Plus facile à faire qu'à expliquer , voici le code pour illustrer ce que je viens de dire :-)


$T_ini	=	parse_ini_file("toto.ini",false);

var_dump($T_ini['mail']);

//retourne : string(17) "[email protected]" 

echo '<br>';


$T_ini	=	parse_ini_file("toto.ini",true);

var_dump($T_ini['[email protected]']['mail']);

//retourne : string(17) "[email protected]" 


echo '<br>';


$post="ma variable post";

$T_ini	=	parse_ini_file("toto.ini",$post);

var_dump($T_ini['mail']);

//retourne : NULL" 


echo '<br>';


$post="ma variable post";

$T_ini	=	parse_ini_file("toto.ini",$post);

var_dump($T_ini['[email protected]']['mail']);

//retourne : string(17) "[email protected]"

Bon continuation ,

Ch.

Petit nouveau ! | 8 Messages

13 mars 2009, 11:57

Cela ne fonction toujours pas....
Je ne rentre pas dans ma condition d'égalité...

Code : Tout sélectionner

[[email protected]] NOM=Dupont PRENOM=Jean [email protected] MPD=azerty
==> ceci est la disposition de mon fichier .ini <==

Code : Tout sélectionner

<td> <b>MAIL:</b> </td> <td> <input type="texte" name="logmail"/> </td> <td> <b>Mot de passe:</b> </td> <td> <input type="password" name="logpassword"/> </td>
==> Ceci est le nom de mes champs dans mon formulaire <==


<?php
$login=parse_ini_file("fichconfig.ini",false);

if(($login[?????])==($_POST['logmail']))
{
	if (($login[?????])==($_POST['logpassword']))
	{
		header("location:login.php");
	}		
}
else 
{
header("location:index.php");	
}	
?>
Les points d'interrogation sont là parce que je ne sais pas quoi mettre...

==> VOici ma page php pour rediriger l'internaute vers l'index si c'est OK (il se trouve dans le fichier .ini) ou vers la page de login (si il c'est trompé ou n'est pas inscrit) <==

Voila j'ai mis tout ce que j'avais d'important...
Sa m'embete un peu de ne pas trouver mon erreur ou mes erreurs....

Thanks ^^

ViPHP
ViPHP | 1136 Messages

13 mars 2009, 14:17

Re ,

Je note , qu'au début tu utilisais :

Code : Tout sélectionner

if(($login['mail'])= ...
Alors que dans ton fichier .ini :
MAIL est en majuscule ...

Les tableau associatifs sont par defaut , en tout cas , sur mon poste sensible à la casse ..

Petit nouveau ! | 8 Messages

13 mars 2009, 18:57

Avec if ($login['MAIL'] == $_POST['logmail'])
Sa ne marche pas....
En fait sa ne rentre pas dans les conditions sa passe direct au else et quand j'essai d'afficher le contenu de ma variable $login['MAIL'] elle renvoie NULL donc rien dedans...
Je n'arrive pas a recupérer la partie de mon fichier ini.

Voila , quelqu'un a déja eut ce problème ?
Merci pour ceux qui m'aide et qui m'aideront!!!! :wink:

Petit nouveau ! | 8 Messages

15 mars 2009, 14:02

Toujours personne n'a trouvé de réponse?
J'ai testé directement en mettant la valeur a tester et cela fonctionne mais ce que je n'arrive pas a faire c'est recupérer "[email protected]" dans mon fichier .ini

[[email protected]]
NOM=DUPONT
PRENOM=Jean
MAIL=[email protected]
MDP=azerty
[[email protected]]
NOM=....
PRENOM= ....
MAIL=....
MDP=....

Je voudrais recupérer ce qu'il y a apres 'MAIL=' afin de pouvoir tester la valeur de mon champ de formulaire avec cette section si elle sont egales...
:oops: :oops:

Eléphant du PHP | 254 Messages

15 mars 2009, 22:39

Salut

Essaye de mettre le deuxième paramètre de parse_ini_file a TRUE et fait un
print_r($login);
derrière et donne nous le résultat

Petit nouveau ! | 8 Messages

16 mars 2009, 10:32

voici le résultat :
Array ( [[email protected]] => Array ( [NOM] => Dupont [PRENOM] => Jean [MAIL] => [email protected] [MPD] => azerty [LANGAGE] => PHP-JAVA-HTML-C [PRESENT] => oui ) )

VOila...
C'est un tableau de tableau en fait.
Donc ce que je voudrais recup' c'est la case [MAIL] et [MDP]
Mercii