ugrás a tartalomhoz

Login hiba

superman · 2010. Júl. 9. (P), 15.37
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!
 
1

Kódszínező

janoszen · 2010. Júl. 9. (P), 15.41
Szia,

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.
2

Bocsi

superman · 2010. Júl. 9. (P), 15.46
Neharagudj, de nem láttam hogy van kódszínező... igérem legközelebb használom. Egyébként köszönöm:)
3

Ötödrészt

bh · 2010. Júl. 9. (P), 15.58
proclub fejezetein kívül még hozzátenném, hogy az if ágban akartad gondolom a sikertelen belépést kezelni, az else-ben pedig a sikereset.
4

Sajnálom?

Kevlar · 2010. Júl. 9. (P), 16.41
Erre szükség van?
print ("Sajnálom, de jelenleg be vagy jelentkezve!");
Ha be van lépve a user, akkor a login linkeket egyszerűen ne tedd ki.
És amúgy sincs mit sajnálni. :)