U kunt mysql_num_rows()
. gebruiken en combineer uw zoekopdracht - Zie voetnoten
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!';
}
}
Om uw huidige code een beetje veiliger te maken, gebruikt u:
$name = stripslashes($_POST["name"]);
$name = mysql_real_escape_string($_POST["name"]);
$password = stripslashes$_POST["password"]);
$password = mysql_real_escape_string($_POST["password"]);
maar bekijk de onderstaande links over het gebruik van voorbereide verklaringen en het hashen van wachtwoorden.
Voetnoten:
Uw huidige code staat open voor SQL-injectie . Gebruik voorbereide verklaringen , of BOB met voorbereide verklaringen . Bezoek deze links voor meer informatie.
Ik heb gemerkt dat u wachtwoorden in platte tekst opslaat. Als dit het geval is, wordt dit ten zeerste afgeraden.
Als u dat bent en dit is een LIVE-site, wordt u uiteindelijk gehackt.
Ik raad je aan om CRYPT_BLOWFISH te gebruiken
of PHP 5.5's password_hash()
functie. Gebruik voor PHP <5.5 het password_hash() compatibility pack
.
mysql_*
kennisgeving van beëindiging van functies:
http://www.php.net/manual/en/intro.mysql .php
Deze extensie is verouderd vanaf PHP 5.5.0 en wordt niet aanbevolen voor het schrijven van nieuwe code, aangezien deze in de toekomst zal worden verwijderd. In plaats daarvan, ofwel de mysqli of PDO_MySQL extensie moet worden gebruikt. Zie ook de MySQL API-overzicht voor meer hulp bij het kiezen van een MySQL API.
Met deze functies hebt u toegang tot MySQL-databaseservers. Meer informatie over MySQL is te vinden op » http://www.mysql.com/ .
Documentatie voor MySQL is te vinden op » http://dev.mysql.com/doc/ .
Bewerken: om OP te helpen (kijk in de links die ik heb gegeven met betrekking tot het hashen van wachtwoorden).
Probeer te vervangen
if(mysql_num_rows($result1) > 0 )
{
$_SESSION["logged_in"] = true;
$_SESSION["naam"] = $name;
}
else
{
echo 'The username or password are incorrect!';
}
met:
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.";
}