azizmatta
Messages postés2Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention27 mai 2007
-
27 mai 2007 à 16:48
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
27 mai 2007 à 17:41
hi i have a problem with this code that let users login to the site.
<?php
session_start();
include('database.php');
if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
//Si la variable $_POST['login'] (bouton submit du formulaire) et la variable $_SESSION['logged'] vaut false (déconnecté) existent.
if (isset($_POST['login']) && $_SESSION['logged'] === false)
{
//Vérification des autres variables.
if (!empty($_POST['username']) && !empty($_POST['password']))
{
//Vérification du pseudo.
$username = htmlspecialchars($_POST['username']);
$mdp = htmlspecialchars($_POST['password']);
//Requête comptant le nombre de pseudos $_POST['pseudo']
$sql = mysql_query("SELECT COUNT(*) AS nb_username FROM music_users WHERE username='". $username ."'");
//Si le pseudo existe.
if (mysql_result($sql,0,'nb_username') == 1)
{
//Vérification du mot de passe
//Information sur le compte du membre.
$sql_infos = mysql_query("SELECT password FROM music_users WHERE username='". $username ."'");
$donnees = mysql_fetch_array($sql_infos);
//Hashage du mot de passe.
$mot5 = md5($mdp);
//Comparaison du mot de passe.
if ($mot5 == $donnees['password'])
{
//Tout est bon, on connecte le membre.
$_SESSION['logged'] = true;
//Création de 2 variables de session, contenant des informations sur le membre.
$_SESSION['username'] = $username; //Pseudo du membre.
//Redirection vers la page membre.
//header('location: /login.php');
}
else
echo 'Error : wrong username';
}
else
echo 'Error : username do not exist';
}
else
echo 'Error : do not leave anything empty';
}
?>
<?php echo "<?xml version="1.0" encoding="iso-8859-1"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Connection</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="revisit-after" content="5 days" />
<meta name="ROBOTS" content="follow,index,all" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-15" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="en" />
<link rel="stylesheet" media="screen" type="text/css" href="style.css"/>
</head>
welcome <?php echo $_SESSION['username']; ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<fieldset>
<legend>connect</legend>
<label for="username">username :</label>
<label for="password">password :</label>
</fieldset>
</form>
</html>
when i login with a valid username and password it give this " Error : wrong username "
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 mai 2007 à 17:41
Salut,
Est-ce bien utile de faire un htmlspecialchars sur le mot de passe ?
Si le mot de passe contient un caractère spécial comme : " ' < > ou & ça plante forcément.
Par contre, sur $username, j'appliquerais plutôt mysql_real_escape_string à la place de htmlspecialchars qui ne protège rien du tout.