sql >> Databáze >  >> RDS >> Mysql

PHP mySQL kontroluje, zda je uživatelské jméno a heslo v databázi

Můžete použít mysql_num_rows() a zkombinujte svůj dotaz – Viz poznámky pod čarou

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

Aby byl váš současný kód o něco bezpečnější, použijte:

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

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

ale podívejte se na níže uvedené odkazy o použití připravených příkazů a hašování hesel.

Poznámky pod čarou:

Váš současný kód je otevřen pro vložení SQL . Použijte připravená prohlášení , nebo CHOP s připravenými výpisy . Navštivte tyto odkazy pro více informací.

Všiml jsem si, že možná ukládáte hesla v prostém textu. Pokud je tomu tak, důrazně se nedoporučuje.

Pokud ano a toto je LIVE stránka, budete nakonec napadeni.

Doporučuji vám používat CRYPT_BLOWFISH nebo PHP 5.5 password_hash() funkce. Pro PHP <5.5 použijte password_hash() compatibility pack .

mysql_* upozornění na ukončení podpory funkcí:

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

Toto rozšíření je od PHP 5.5.0 zastaralé a nedoporučuje se pro psaní nového kódu, protože bude v budoucnu odstraněno. Místo toho buď mysqli nebo PDO_MySQL je třeba použít rozšíření. Viz také Přehled rozhraní MySQL API pro další pomoc při výběru MySQL API.

Tyto funkce umožňují přístup k databázovým serverům MySQL. Více informací o MySQL naleznete na » http://www.mysql.com/ .

Dokumentaci pro MySQL lze nalézt na » http://dev.mysql.com/doc/ .

Upravit: pomoci OP (podívejte se na odkazy, které jsem uvedl ohledně hašování hesel).

Zkuste vyměnit

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

s:

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


  1. Je možné snížit proměnnou v MySQL?

  2. CakePHP 1.3 - Neznámý sloupec v klauzuli where

  3. Připojte SQL Server k HubSpot CRM

  4. MySQL:data před rokem 1970