Authentification LOGIN + MOT DE PASSE - PHP [Résolu/Fermé]

Signaler
Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
-
Messages postés
31
Date d'inscription
mardi 19 avril 2011
Statut
Membre
Dernière intervention
26 mai 2014
-
Bonjour à tous,

j'ai un formulaire qui abouti sur une page PHP mais qui pose des soucis de connexion avec lesquelles je n'arrives pas à identifier le problème.

Le script est celui ci :

<?php

mysql_connect("mon site","mon login","mon mot de passe")
or die("Connexion au serveur impossible");
mysql_select_db("Membre")
or die("Sélection de la base impossible");

if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
}
if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
}

$login = $_POST[login];
$password = $_POST[password];

$sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

$req =mysql_query($sql, Membre);

if ($req == null )
{echo "<BR>connexion impossible<BR><br> Nom d'utilisateur et / ou mot de passe incorrect <br><br>";

} else
{echo "<br>Bonjour<br> ".$login;

}

?>


Mais il fonctionne pas et je ne sais pas pourquoi...

Pouvez - vous m'aider??

Je vous remercie infiniment, par avance, de votre aide.

16 réponses

Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
20
Bonjour à tous,

et merci lewis34 de ton aide, mais mon problème vient de ma requete.

Je fais un autre script pour pouvoir voir si ma requete était bonne, elle est toujours fausse et je comprends pas pourquoi

Voici le script

<?php

mysql_connect("mon site","mon login","mon mot de passe")
or die("Connexion au serveur impossible");
mysql_select_db("Membre")
or die("Sélection de la base impossible");

if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
}
if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
}

$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = .$_POST[login]. ;";
$sqlb = "SELECT PasswordMembre FROM Membre WHERE PasswordMembre = .$_POST[password]. ;";

$conna = mysql_query($sqla);
$connb = mysql_query($sqlb);


if (!$conna && !$connb)

{echo "$_POST[login]"."$_POST[password]";
}

?>

A chaque fois que je l'éxécute, ca me donne faux, et donc affiche le nom d'utilisateur et le mot de passe.

Merci par avance de votre aide.
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 92837 internautes nous ont dit merci ce mois-ci

Messages postés
59
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
17 mars 2010
23
Remplace tes requêtes par ça

$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = ".$_POST[login]." ;";
$sqlb = "SELECT PasswordMembre FROM Membre WHERE PasswordMembre = ".$_POST[password]." ;";
tu a mis un echo
Messages postés
31
Date d'inscription
mardi 19 avril 2011
Statut
Membre
Dernière intervention
26 mai 2014

@redlifebig c'est faux, ça rend un site vulnérable aux injections SQL.

Il faut passer par la fonction htmlspecialchars().
Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
20
Bonjour à tous, je vous remercie de votre contribution a tous.

Tout d'abord, je souhaite remercié, Lewis34, mais les messages d'erreurs n'étaient aucun des deux, car mes identifiants étaient 100% exacts.

D'autre part, je souhaite remercié meynoucha, ton script marche a merveille.
Mais j'aurai autre chose a te demandé, est ce que tu pourrais m'expliquer les differentes ligne de ton script car je ne comprend pas tout.

Si ca ne te déranges pas, car l'important n'est seulement que ca fonctionne, mais c'est aussi de comprendre.

Si tu ve on peut en parlé sur msn ce qui sera plus simple.


Bonne journée a tous et encore merci
bonjour cedrad33, peut etre il faut que tu regarde ce tutoriel:
http://www.infres.enst.fr/~danzart/mysql/php.phtml
Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
20
Bonjour redlifebig,

Je te remercie du temps que tu m'as accordé, mais j'ai remplacé tel que tu me la dis, mais j'obtiens toujours le même résultat.

....

Script (modifié) :

<?php

mysql_connect("mon site","mon login","mon mot de passe")
or die("Connexion au serveur impossible");
mysql_select_db("Membre")
or die("Sélection de la base impossible");

if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
}
if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
}

$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = ".$_POST[login]." ;";
$sqlb = "SELECT PasswordMembre FROM Membre WHERE PasswordMembre = ".$_POST[password]." ;";

$conna = mysql_query($sqla);
$connb = mysql_query($sqlb);


if (!$conna && !$connb)

{echo "$_POST[login]"."$_POST[password]";
}

?>

...
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
347
bonsoir ,rapidement ,

j'immagine que toutes les variables post fonctionnent (pense à mettre des echos pour voir si elles sont bien recupérée)

essaye comme ça

$req =mysql_query($sql, Membre);

if (!$req)
{
echo "connexion impossible<br /><br /> Nom d'utilisateur et / ou mot de passe incorrect <br /><br />";
} 
else
{
echo "Bonjour".$login;

} 


le ! signifie si la req $req est fausse==>alors sinon on continue
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
347
ben non... sauf que j'ai oublié un truc ^^^^

$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = ".$_POST[login]." ";

tu avais un ; entrop
essaye de faire comme ça


$login = $_POST[login];
$password = $_POST[password];

$sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

$req =mysql_query($sql, Membre);

while ($test0 = mysql_fetch_row($req) )

{

if ($test0 == null )
{echo "<BR>connexion impossible<BR><br> Nom d'utilisateur et / ou mot de passe incorrect <br><br>";

} else
{echo "<br>Bonjour<br> ".$login;

}
}
elle est bien cette form...
j'ai BAC+4 en informatique système et multimédia, si ya qlq qui a un probleme il peut m envoyé un mail sur l'email: ayedmaouia@yahoo.fr
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
347
re au lieu de ca

$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = ".$_POST[login]." ;";
$sqlb = "SELECT PasswordMembre FROM Membre WHERE PasswordMembre = ".$_POST[password]." ;";

essaye ça


$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = ".$_POST[login]." ;
$sqlb = "SELECT PasswordMembre FROM Membre WHERE PasswordMembre = ".$_POST[password]." ;
Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
20
Bonjour lewis34, si j'essaie ca, il y'aura un problème de guillemets, il en manquera un forcément et ca va faire une erreur de variable...

Non??
Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
20
Merci, j'ai essayé, toujours le même résultat, la connexion ne se fait pas. je ne comprends rien, la requête est pourtant exacte mais il n'accepte pas la connexion.

Script :

<?php

mysql_connect("mon site","mon login","mot de passe")
or die("Connexion au serveur impossible");
mysql_select_db("Membre")
or die("Sélection de la base impossible");

if( empty($_POST["login"])) {echo "Le nom d'utilisateur n'est pas renseigné<br><br>";
}
if( empty($_POST["password"])) {echo "<br>Vous avez oubliez d'insérer votre mot de passe<br>";
}

$sqla = "SELECT PseudoMembre FROM Membre WHERE PseudoMembre = ".$_POST[login]."" ;
$sqlb = "SELECT PasswordMembre FROM Membre WHERE PasswordMembre = ".$_POST[password]."" ;

$conna = mysql_query($sqla);
$connb = mysql_query($sqlb);


if (!$conna && !$connb)

{echo "$_POST[login]"."$_POST[password]";
}

?>
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
347
re qu'est que ca te met comme msg d'erreur ?


Connexion au serveur impossible
ou
Sélection de la base impossible

tu est sur ,je suppose de tes identifiants de connnexions ?
Messages postés
209
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
20 mai 2013
20
merci beaucoup meynoucha :-) bonne fin de journée.

Bonjour, j'ai un probleme avec le code ci-dessus que j'ai essayé de transformer en plateforme ODBC au lieu de MySQL

[code]
$login = $_POST[login];
$password = $_POST[password];

$sql = "select * FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

$req =mysql_query($sql, Membre);

while ($test0 = mysql_fetch_row($req) )

{

if ($test0 == null )
{echo "<BR>connexion impossible<BR><br> Nom d'utilisateur et / ou mot de passe incorrect <br><br>";

} else
{echo "<br>Bonjour<br> ".$login;

}
}
[/code]

Ce code ne marche pas pour moi, c'est sûrement dû a fait que je n'utilise pas du MySQL mais moi c'est une plateforme ODBC

Warning: odbc_exec(): supplied argument is not a valid ODBC-Link resource in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 12

Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 14

Pouvez vous m'aidez svp ?
Merci
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
347
Bonsoir je pense pas que le probleme vienne du fait que tu utilise odbc (en general ça fonctionne)

modifie plutot ta requete

$sql = "select tonchamp1, tonchamp2,tonchamp3, etc... FROM Membre WHERE PseudoMembre = '".$login."' AND PasswordMembre = '".$password."' ;";

$req =mysql_query($sql);
list($tonchamp1, $tonchamp2,$tonchamp3, etc...) = mysql_fetch_array($req);
//ensuite ton traitement

Bonjour,

<?php

$_SESSION['langage'] = 'PHP 5'; 
include_once("../../fonctions-panier.php");

$connect=ODBC_connect("TESTPHP5","sa","sasa");


$login = $_POST[login]; 
$password = $_POST[password]; 

$sql = "select login,password FROM utilisateur WHERE login = '".$login."' AND password = '".$password."' ;"; 

$req =ODBC_exec($sql); 
list($login, $password) = ODBC_fetch_array($req); 

while ($test0 = odbc_fetch_row($req) ) 

{ 

if ($test0 == null ) 
{echo "<BR>connexion impossible<BR><br> Nom d'utilisateur et / ou mot de passe incorrect <br><br>"; 

} else 
{echo "<br>Bonjour<br> ".$login; 

} 
} 


?>code>

ça me marque toujours un probleme

Warning: Wrong parameter count for odbc_exec() in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 14

Warning: odbc_fetch_array(): supplied argument is not a valid ODBC result resource in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 15

Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 17

Voilà ce qui se passe quand je renter les données en ODBC.

Et en mysql :

<code><?php

$_SESSION['langage'] = 'PHP 5'; 
include_once("../../fonctions-panier.php");

$connect=ODBC_connect("TESTPHP5","sa","sasa");


$login = $_POST[login]; 
$password = $_POST[password]; 

$sql = "select login,password FROM utilisateur WHERE login = '".$login."' AND password = '".$password."' ;"; 

$req =mysql_query($sql); 
list($login, $password) = mysql_fetch_array($req); 

while ($test0 = mysql_fetch_row($req) ) 

{ 

if ($test0 == null ) 
{echo "<BR>connexion impossible<BR><br> Nom d'utilisateur et / ou mot de passe incorrect <br><br>"; 

} else 
{echo "<br>Bonjour<br> ".$login; 

} 
} 


?>


ça me met :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 15

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Programmes\wampserver2.0c\www\html\paiement\login.php on line 17


:(

Merci
Messages postés
8
Date d'inscription
samedi 14 novembre 2009
Statut
Membre
Dernière intervention
8 mars 2012
1
ok j'ai le meme probleme ke vous et j'ai essayer tout ce ki est ici mais ça passe pas. kelkun a t'il une otre alternative . ?