Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP mySQL verifica se o nome de usuário e a senha estão no banco de dados


Você pode usar mysql_num_rows() e combine sua consulta - Veja as notas de rodapé
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 tornar seu código atual um pouco mais seguro, use:
$name = stripslashes($_POST["name"]); 
$name = mysql_real_escape_string($_POST["name"]);

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

mas veja os links abaixo sobre o uso de instruções preparadas e hash de senha.

Notas de rodapé:

Seu código atual está aberto para injeção de SQL . Use declarações preparadas , ou PDO com declarações preparadas . Visite esses links para obter mais informações.

Percebi que você pode estar armazenando senhas em texto simples. Se este for o caso, é altamente desencorajado.

Se você for e este for um site AO VIVO, você acabará sendo hackeado.

Eu recomendo que você use CRYPT_BLOWFISH ou password_hash() do PHP 5.5 função. Para PHP <5.5, use o password_hash() compatibility pack .

mysql_* aviso de descontinuação de funções:

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

Esta extensão está obsoleta a partir do PHP 5.5.0 e não é recomendada para escrever novo código, pois será removida no futuro. Em vez disso, o mysqli ou PDO_MySQL extensão deve ser usada. Veja também a Visão geral da API MySQL para obter mais ajuda ao escolher uma API MySQL.

Essas funções permitem que você acesse servidores de banco de dados MySQL. Mais informações sobre o MySQL podem ser encontradas em » http://www.mysql.com/ .

A documentação do MySQL pode ser encontrada em » http://dev.mysql.com/doc/ .

Editar: para ajudar o OP (veja os links que forneci sobre o hash de senha).

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

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