Login hiba
Csináltam egy loginrendszert. Vagyis egyelőre a belépésen dolgozom.
Ez a script:
<?php
mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
if($_SESSION['log'] == true)
{
print ("Sajnálom, de jelenleg be vagy jelentkezve!");
}
else
{
if (isset($_POST['loginbutton']))
{
$lastname = $_POST['lastname'];
$firstname = $_POST['firstname'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE (lastname='".$lastname."' AND firstname='".$firstname."' AND password='".$password."')";
$query = mysql_query($sql);
if(mysql_num_rows($query) === 0)
{
print ("Sikeres belépés");
$_SESSION['log'] = true;
$_SESSION['id'] = mysql_num_rows($query);
print ("A jelenlegi azonosítód: ".$_SESSION['id']);
}
else
{
print ("Sikertelen belépés<br>");
}
}
}
?>
Persze előtte ott vannak a formok.(keresztnév...)
Mindig ezt írja ki: "Sikeres belépésA jelenlegi azonosítód: 0"
Még rossz jelszó/név esetén is.
Mi lehet a hiba? Légyszives segítsetek!
■ Ez a script:
<?php
mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
if($_SESSION['log'] == true)
{
print ("Sajnálom, de jelenleg be vagy jelentkezve!");
}
else
{
if (isset($_POST['loginbutton']))
{
$lastname = $_POST['lastname'];
$firstname = $_POST['firstname'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE (lastname='".$lastname."' AND firstname='".$firstname."' AND password='".$password."')";
$query = mysql_query($sql);
if(mysql_num_rows($query) === 0)
{
print ("Sikeres belépés");
$_SESSION['log'] = true;
$_SESSION['id'] = mysql_num_rows($query);
print ("A jelenlegi azonosítód: ".$_SESSION['id']);
}
else
{
print ("Sikertelen belépés<br>");
}
}
}
?>
Persze előtte ott vannak a formok.(keresztnév...)
Mindig ezt írja ki: "Sikeres belépésA jelenlegi azonosítód: 0"
Még rossz jelszó/név esetén is.
Mi lehet a hiba? Légyszives segítsetek!
Kódszínező
először is, légyszi szokj rá a kódszínező használatára mert az jóval olvashatóbbá teszi a kódodat.
Másrészt nézd meg a mysql_real_escape_string() függvényt különben könnyű betörési lehetőséget nyújtasz bárilyen arra járó robotnak.
Harmadrészt ha szeretnél $_SESSION-t használni, kellene egy session_start() is.
Negyedrészt, ami a hiba oka, hogy a kiolvasott sorok számát teszed be a $_SESSION['id']-ba, nem pedig a kiolvasott azonosítót. Az eredményt mysql_fetch_assoc()-al tudod például kiolvasni.
Bocsi
Ötödrészt
Sajnálom?
És amúgy sincs mit sajnálni. :)