Rechercher : dans
Par :

Pbm authentification en php:mysql

Dernière réponse le 9 fév 2005 à 09:28:28 parisien4ever, le 13 jan 2005 à 10:39:20 
 Signaler ce message aux modérateurs

Voila
J'ai un index.html contenant un formulaire dans leqeul les utilisateurs rentrent leur login et mot de passe pour s'authentifier.
Ce formulaire fait appel a une methode post, et appel un fichier authentif.php qui lui vérifie les champs voici le code de ce php
<?php
// on se connecte MySQL
$db = mysql_connect('localhost', '***', '***');

// on slectionne la base
mysql_select_db('authentification',$db);



// on envoie la requte
$Resultat=mysql_query("SELECT * FROM `utilisateurs` WHERE `nom` LIKE '$utilisateur' AND `mdp` LIKE '$pwd'");



if (mysql_numrows($Resultat) == 1)
{
echo "OK vous pouvez voir";
}
else
{
echo "Non, vous n'tes pas inscrit";
}



// on ferme la connexion mysql
mysql_close();
?>
Le souci est que cela n'aboutit pas , on me retourne l'erreur que les variables utilisateur et pwd ne sont pas reconnus dans authentif.php alors que ce sont les noms des champs de texte dans le formulaire
Quelqu'un a t'il une idée ???

2

Erdnax, le 13 jan 2005 à 11:33:27

Salut,

Essaye d'enlever les guillmets autour de ta variable $utilisateur quand tu séléctionne ta base, et pareil pour le mot de passe.

Si ça marche pas, dis-le.

@+

______________________________________________________
...:::=============== ERDNAX ================:::...

Répondre à Erdnax

3

dedale82, le 13 jan 2005 à 11:42:12

Salut,

tu peux essayer avec ca :
$Resultat=mysql_query("SELECT * FROM `utilisateurs` WHERE `nom` LIKE '$_POST[utilisateur]' AND `mdp` LIKE '$_POST[pwd]'");

dans ton php.ini si register_globals est a off, il faut utiliser le tableau $_POST tandis que s'il est a on, il suffit d'utiliser $nom_du_champs.

tiens moi au courant

Répondre à dedale82

4

parisien4ever, le 13 jan 2005 à 12:56:39

Merci de vos réponses, j'ai changer la valeur register_globals qui était sur off pour la mettre sur on mais cela ne change rien sniff :'(

Répondre à parisien4ever

5

parisien4ever, le 13 jan 2005 à 13:04:17

Lorsque je mets LIKE '$_POST[pwd] , il me dit index indéfini

Répondre à parisien4ever

parisien4ever, le 8 fév 2005 à 21:35:08

J'ai toujours mon soucis quelqu'un a t'il une solution svpppppppp

Répondre à parisien4ever

6

parisien4ever, le 8 fév 2005 à 21:56:43

Voici le message qu cela me retourne :
Notice: Undefined index: utilisateur in l:\authentif.php on line 13

Notice: Undefined index: pwd in l:\authentif.php on line 13
Non, vous n'tes pas inscrit

Répondre à parisien4ever

7

kilian, le 8 fév 2005 à 22:57:53

Bonsoir,

Il faut mettre des guillemets dans $_POST['utilisateur']:

$Resultat=mysql_query("SELECT * FROM `utilisateurs` WHERE `nom` LIKE '".  $_POST['utilisateur'] ."' AND `mdp` LIKE '" . $_POST['pwd']."'"); 


Pour des soucis de sécurité et de compatibilité avec d'autres serveurs qui interpréteront ton code, je te conseille de laisser register_global à off et d'utiliser les variables $_POST et $_GET lors de la récupération d'un formulaire par exemple...

Répondre à kilian

8

parisien4ever, le 9 fév 2005 à 09:01:32

Merci de ta réponse mais même avec ta requête j'ai toujours le même message d'erreur, je commence a désespérer :(

Répondre à parisien4ever

9

kilian, le 9 fév 2005 à 09:16:27

Vérifie le nom de tes champs dans tes formulaires, teste tes variables après envoi d'un formulaire:

echo $_POST['utilisateur'];

Répondre à kilian

10

 parisien4ever, le 9 fév 2005 à 09:28:28

Miracle ca fonctionne !!!
Merci pour tout je m'était trompé dans le nom de la variable il manquait un s :s
Merci ;)

Répondre à parisien4ever