Comment authentifier en php

Fermé
stephane_mc2004 Messages postés 755 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 8 février 2011 - 3 oct. 2008 à 20:56
stephane_mc2004 Messages postés 755 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 8 février 2011 - 5 oct. 2008 à 03:23
Bonjour,
jai un gros pb :

Jai une page login.html, qui contient le formulaire de demande de compte et mot de passe. l'action du formulaire est login/index.php

Dans l'index.php, on me signale une erreur, voici mon code :


<?php
/*Copyright MasterClub--2008 */
if (isset($_POST['compte']) && isset($_POST['mdpasse']) ) 
{
/*On considere que le user a lancé ses coordonnées___
on verifie si sa appartient a la bbdonnée
*/
$compte=$_POST['compte'];
$mdpasse=$_POST['mdpasse']

//Connexion à la base
mysql_connect("localhost","root","****");
mysql_select_db("users");

$reponse = mysql_query("SELECT * FROM mytable"); // Requête SQL
//////////////////////////////
while ($donnees = mysql_fetch_array($reponse) )

{
	if ($donnees['compte']!= $compte && $donnees['mdpasse']!= $mdpasse) { echo "erreur"; }
        else { echo "bienvenue" ; }
	break;
}

// on ferme la connexion mysql
mysql_close();
?>


Merci
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
3 oct. 2008 à 21:20
Bonsoir,

if ($donnees['compte']!= $compte && $donnees['mdpasse']!= $mdpasse) { echo "erreur"; }


dans un test négatif (!=) il faut mettre OU au lieu de AND (c'est à dire || au lieu de &&)

	if ($donnees['compte']!= $compte || $donnees['mdpasse']!= $mdpasse) { echo "erreur"; }


une autre solution:

$reponse = mysql_query("SELECT * FROM mytable WHERE compte='".$compte."' AND mdpasse='".$mdpasse."'"); // Requête SQL
if(mysql_num_rows($reponse)>0){// si un enregistrement correspond
	echo "bienvenue";
}else{
	echo "erreur" ; 
       exit();
}

0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
3 oct. 2008 à 22:05
Vaudrait mieux pas rajouter des addslashes également pour éviter quelques tentatives simple de hacking ?

$compte=addslashes($_POST['compte']);

?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
3 oct. 2008 à 23:45
le mieux c'est encore d'appliquer une Regex pour verifier que ce qu'on reçoit correspond bien à ce qu'on attend

pour le compte par exemple des lettres et des chiffres [a-zA-Z0-9] et combien mini et maxi

pour le mail il existe des Regex toutes faites

www.siteduzero.com pour plus de détails et mise en œuvre

@lain
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
4 oct. 2008 à 00:13
Regex , j'aime pas mais pratique dans certains cas ...

Sinon siteduzero +1 !
0
stephane_mc2004 Messages postés 755 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 8 février 2011 96
5 oct. 2008 à 03:23
Merci pour vos reponses ! Sinon, lorsque je teste en local le code, rien ne s'affiche sur la page, au lieu que sa affiche "bienvenue" ou "erreur".

je travaille avec Wamp Server
Merci encore
0