Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP mySQL prüft, ob Benutzername und Passwort in der Datenbank sind

Sie können mysql_num_rows() verwenden und kombinieren Sie Ihre Suchanfrage - Siehe Fußnoten

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!';
        }
}

Um Ihren aktuellen Code etwas sicherer zu machen, verwenden Sie:

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

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

aber sehen Sie sich die unten stehenden Links zur Verwendung von vorbereiteten Anweisungen und Passwort-Hashing an.

Fußnoten:

Ihr aktueller Code ist offen für SQL-Injection . Verwenden Sie vorbereitete Anweisungen , oder PDO mit vorbereiteten Anweisungen . Besuchen Sie diese Links für weitere Informationen.

Mir ist aufgefallen, dass Sie Passwörter möglicherweise im Klartext speichern. Wenn dies der Fall ist, wird dringend davon abgeraten.

Wenn Sie es sind und dies eine LIVE-Site ist, werden Sie schließlich gehackt.

Ich empfehle Ihnen, CRYPT_BLOWFISH zu verwenden oder password_hash() von PHP 5.5 Funktion. Verwenden Sie für PHP <5.5 das password_hash() compatibility pack .

mysql_* Hinweise zur Einstellung von Funktionen:

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

Diese Erweiterung ist seit PHP 5.5.0 veraltet und wird nicht zum Schreiben von neuem Code empfohlen, da sie in Zukunft entfernt wird. Stattdessen entweder mysqli oder PDO_MySQL Erweiterung verwendet werden soll. Siehe auch die MySQL-API-Übersicht für weitere Hilfe bei der Auswahl einer MySQL-API.

Diese Funktionen ermöglichen Ihnen den Zugriff auf MySQL-Datenbankserver. Weitere Informationen zu MySQL finden Sie unter » http://www.mysql.com/ .

Dokumentation für MySQL finden Sie unter » http://dev.mysql.com/doc/ .

Bearbeiten: um OP zu helfen (sehen Sie sich die Links an, die ich zum Thema Passwort-Hashing bereitgestellt habe).

Versuchen Sie es mit Ersetzen

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

mit:

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.";
}