sql >> Database teknologi >  >> RDS >> Mysql

PHP mySQL tjek om brugernavn og adgangskode er i databasen

Du kan bruge mysql_num_rows() og kombiner din forespørgsel - Se fodnoter

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

For at gøre din nuværende kode en smule mere sikker, brug:

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

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

men se på nedenstående links om brug af forberedte erklæringer og hashing med adgangskode.

Fodnoter:

Din nuværende kode er åben for SQL-injektion . Brug forberedte erklæringer , eller BOB med forberedte erklæringer . Besøg disse links for at få flere oplysninger.

Jeg har bemærket, at du muligvis gemmer adgangskoder i almindelig tekst. Hvis dette er tilfældet, frarådes det stærkt.

Hvis du er, og dette er en LIVE-side, vil du til sidst blive hacket.

Jeg anbefaler, at du bruger CRYPT_BLOWFISH eller PHP 5.5's password_hash() fungere. Til PHP <5.5 skal du bruge password_hash() compatibility pack .

mysql_* meddelelse om udfasning af funktioner:

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

Denne udvidelse er forældet fra og med PHP 5.5.0 og anbefales ikke til at skrive ny kode, da den vil blive fjernet i fremtiden. I stedet kan enten mysqli eller PDO_MySQL forlængelse skal bruges. Se også MySQL API-oversigt for yderligere hjælp, mens du vælger en MySQL API.

Disse funktioner giver dig adgang til MySQL-databaseservere. Mere information om MySQL kan findes på » http://www.mysql.com/ .

Dokumentation til MySQL kan findes på » http://dev.mysql.com/doc/ .

Rediger: for at hjælpe OP (kig på de links, jeg har givet vedrørende hashing med adgangskode).

Prøv at erstatte

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

med:

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. Sådan skriver du en MySQL Join-forespørgsel

  2. Sletter element fra ListView og database med OnItemClickListener

  3. Formater måneden i romertal i PostgreSQL

  4. SQL Server-kodesider og samlinger