Login

Signaler
Messages postés
2
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
27 mai 2007
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
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']) &amp;&amp; $_SESSION['logged'] === false)
{
     //Vérification des autres variables.
     if (!empty($_POST['username']) &amp;&amp; !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 "







iron men

1 réponse

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
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.