Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP mySQL vérifie si le nom d'utilisateur et le mot de passe sont dans la base de données

Vous pouvez utiliser mysql_num_rows() et combinez votre requête - Voir les notes de bas de page

if(isset($_POST["name"], $_POST["password"])) 
    {     

        $name = $_POST["name"]; 
        $password = $_POST["password"]; 

        $result1 = mysql_query("SELECT username, password FROM Users WHERE username = '".$name."' AND  password = '".$password."'");

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }
}

Afin de rendre votre code actuel un peu plus sûr, utilisez :

$name = stripslashes($_POST["name"]); 
$name = mysql_real_escape_string($_POST["name"]);

$password = stripslashes$_POST["password"]); 
$password = mysql_real_escape_string($_POST["password"]); 

mais consultez les liens ci-dessous concernant l'utilisation d'instructions préparées et le hachage de mot de passe.

Notes de bas de page :

Votre code actuel est ouvert à injection SQL . Utilisez instructions préparées , ou PDO avec instructions préparées . Visitez ces liens pour plus d'informations.

J'ai remarqué que vous stockiez peut-être des mots de passe en texte brut. Si tel est le cas, cela est fortement déconseillé.

Si vous l'êtes et qu'il s'agit d'un site LIVE, vous finirez par vous faire pirater.

Je vous recommande d'utiliser CRYPT_BLOWFISH ou password_hash() de PHP 5.5 une fonction. Pour PHP < 5.5, utilisez le password_hash() compatibility pack .

mysql_* avis d'obsolescence des fonctions :

http://www.php.net/manual/en/intro.mysql .php

Cette extension est obsolète depuis PHP 5.5.0 et n'est pas recommandée pour l'écriture de nouveau code car elle sera supprimée à l'avenir. Au lieu de cela, soit le mysqli ou PDO_MySQL l'extension doit être utilisée. Voir aussi la Présentation de l'API MySQL pour plus d'aide lors du choix d'une API MySQL.

Ces fonctions vous permettent d'accéder aux serveurs de bases de données MySQL. Plus d'informations sur MySQL peuvent être trouvées sur » http://www.mysql.com/ .

La documentation pour MySQL peut être trouvée sur » http://dev.mysql.com/doc/ .

Modifier : pour aider OP (regardez dans les liens que j'ai fournis concernant le hachage de mot de passe).

Essayez de remplacer

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }

avec :

while($row=mysql_fetch_assoc($result1))
{
$check_username=$row['username'];
$check_password=$row['password'];
}

if($username == $check_username && $password == $check_password){
echo "Matches.";
}

else{
echo "No match found.";
}