Bonjour,
Voila j'ai créé une page d'authentification pour un site qui vérifié le login et le mot de passe dans une base de donnée mysql. L'authentification se passe bien mais si l'utilisateur se trompe de mot de passe ou de login il revient toujours sur la boite de dialogue lui demandant le mot de passe et le login même si les 2 sont valides.
Je vous donne le code que j'ai réalisé :
<?php
session_start();
session_register("USER" );
session_register("PASSWD" );
function valideuser( $login, $passwd )
{
// Connexion et sélection de la base
$link = mysql_connect("serveur", "user", "passe" )or die("Impossible de se connecter" );
mysql_select_db("base" ) or die("Could not select database" );
// Exécuter des requêtes SQL
$sql = "Select * from identification where user='".$login."' and password='".$passwd."'";
$result = mysql_query($sql) or die("Query failed" );
$valide = false;
while ($line = mysql_fetch_assoc($result))
{
$valide = true;
}
// Libération des résultats
mysql_free_result($result);
if($valide == true)
{
$_SESSION["USER"] = $login;
$_SESSION["PASSWD"] = $passwd;
return true;
}
else
{
return false;
}
// Fermeture de la connexion
mysql_close($link);
}
if ( !(isset($_SERVER['PHP_AUTH_USER'])) || ($_POST['ReLog'] == 1 ))
{
header('WWW-Authenticate: Basic realm="Administration"');
header('HTTP/1.0 401 Unauthorized');
echo 'Vous devez vous identifier';
exit;
}
else
{
if ( valideuser ( $_SERVER['PHP_AUTH_USER'] , $_SERVER['PHP_AUTH_PW'] ))
{
include("page.inc.php" );
}
else
{
echo "<h3>Authentification échouée</h3>";
echo "<form action='index.php' method='POST'>\n";
echo "<input type='hidden' name='ReLog' value='1'>\n";
echo "<input type='submit' value='Login'>\n";
echo "</form>\n";
}
}
?>
Merci de votre aide