Interface d'authentification

Fermé
sokran Messages postés 2 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 23 août 2011 - 23 août 2011 à 14:06
 Utilisateur anonyme - 23 août 2011 à 14:22
Bonjour, bon voila je vien de débuté en développement php et j'ai un petit problème !donc voila j'ai crée une petite interface d'authentification (login.php) qui demande un nom d'utilisateur et un mot de passe et la une page qui vérifie la correspondance avec la base de donnée (verifier.php) !mon problème et donc simple apré la vérification meme si le le nom d'utilisateur et le mot de passe ne corresponde pas la vérification est accepté et pourtant j'ai bien mis la condition! merciiii


login.php
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<?php

//$msg=$_GET['msg'] ;
// echo " $msg "; ?>
</head>

<body>
<form name="f1" action="verifier.php" method="post" enctype="multipart/form-data">
<table>
<tr><td>nom d'utilisateur</td><td><input type="text" name="logine" /></td></tr>
<tr><td>mot de passe</td><td><input type="password" name="pw"/></td></tr>
<tr><td><input type="submit" name="ok" value="ok" /></td><td><input type="reset" name="annuler" value="annuler"/></td></tr>
</table>
</form>


</body>

</html>




verifier.php
<?php

$logine=$_POST['logine'];
$pw=$_POST['pw'];


$msg="les champs ne doivent pas etre vides" ;

if ( (empty($logine))|| (empty($pw)) )
header('location:login.php?msg='.$msg);
else
$conn=oci_connect("system","11011991");
$sql="select id,motdepasse FROM login ";
$res=oci_parse($conn,$sql);

$resultat=oci_execute($res);


while ($row = oci_fetch_array($res))


{ if (($row[0]=$logine) and ($row[1]=$pw))
header("location:main.php");
else
header("location:login.php");

}
oci_close($conn);
?>

1 réponse

Utilisateur anonyme
23 août 2011 à 14:22
Bonjour,

Quelques pistes :

Après un header('location:....'), il faut mettre un exit

Un test de comparaison se fait avec == ou === et non = (=== étant une comparaison stricte).

Ensuite quand on fait des tests il faut créer des blocs

if (condition)
{
bloc vrai
} else {
bloc faux
}


if ( (empty($logine))|| (empty($pw)) ) {
header('location:login.php?msg='.$msg);
exit;
}
else {
$conn=oci_connect("system","11011991");
$sql="select id,motdepasse FROM login ";
$res=oci_parse($conn,$sql);

$resultat=oci_execute($res);


while ($row = oci_fetch_array($res))


{ if (($row[0]==$logine) and ($row[1]==$pw)) {
header("location:main.php");
exit;
} else {
header("location:login.php");
exit;
}
}
oci_close($conn);
}
?>


Cordialement
0