PHP belepesi hiba, jelszo nelkul is belehet lepni?
<?php
$username =$_POST['username'];
$password =$_POST["password"];
$kapcsolat = mysql_connect ('localhost', 'root', '');
mysql_select_db('marci');
$parancs = "SELECT * FROM marci WHERE username = '$username'";
$valasz = mysql_query ($parancs);
$sor = mysql_fetch_array ($valasz);
if ($password == $sor[password])
{
print "You logged in, successfully!";
}
else
{
print "Your username or password is wrong!";
}
mysql_close($kapcsolat);
?>
Alapvető hiba: nem nézed meg, hogy kaptál-e bármilyen adatot. Ha nincs post adat, a $username üres lesz. Aztán lekérdez az adatbázisból, az is ad egy üres sort. Utána a kettőt ellenörzöd, üres egyenlő üressel, tehát "bejelentkezett".
Ellenőrizni kellene, kaptál-e post értéket (if isset) és szűrni, mielőtt bedobod az SQL-be, mert így bárki bármilyen parancsot futtathat az adatbázisodon...
if (isset($_POST['username'])) {
// kaptunk felhasználónevet, tehát ellenőrízzük a logint
}
{
// nem kaptunk, tehát nem lépett be, kimehet pl. egy login ablak, ami bekéri az adatokat
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!