sql >> Base de Datos >  >> RDS >> Mysql

PHP mySQL verifica si el nombre de usuario y la contraseña están en la base de datos

Puede usar mysql_num_rows() y combine su consulta - Ver notas al pie

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

Para que su código actual sea un poco más seguro, use:

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

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

pero mire los enlaces a continuación sobre el uso de declaraciones preparadas y hash de contraseña.

Notas al pie:

Su código actual está abierto a inyección SQL . Use declaraciones preparadas , o PDO con declaraciones preparadas . Visite esos enlaces para obtener más información.

Me di cuenta de que puede estar almacenando contraseñas en texto sin formato. Si este es el caso, se desaconseja encarecidamente.

Si lo eres y este es un sitio EN VIVO, eventualmente serás hackeado.

Te recomiendo que uses CRYPT_BLOWFISH o password_hash() de PHP 5.5 función. Para PHP <5.5 use el password_hash() compatibility pack .

mysql_* aviso de desactivación de funciones:

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

Esta extensión está obsoleta a partir de PHP 5.5.0 y no se recomienda para escribir código nuevo, ya que se eliminará en el futuro. En su lugar, el mysqli o PDO_MySQL se debe usar la extensión. Consulte también la Descripción general de la API de MySQL para obtener más ayuda al elegir una API de MySQL.

Estas funciones le permiten acceder a servidores de bases de datos MySQL. Puede encontrar más información sobre MySQL en » http://www.mysql.com/ .

La documentación para MySQL se puede encontrar en » http://dev.mysql.com/doc/ .

Editar: para ayudar a OP (mire los enlaces que he proporcionado sobre el hash de contraseña).

Intenta reemplazar

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

con:

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