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