ugrás a tartalomhoz

Bejelentkezési hiba

sobgames · 2013. Ápr. 12. (P), 19.35
Készítettem egy regisztrációs és egy login rendszert.
Nem tudom hol van benne a hiba, de regisztrációkor az adatokat beviszi az adatbázisba, de login-nál még ha jól is írom be a jelszót és a felhasználónevet, akkor is azt adja ki, hogy nem jó a felhasználónév vagy a jelszó.
Itt a programkód, hátha ti rá jöttök, hogy mi a hiba:
register.php -ba így vittem be az adatokat az adatbázisba:
  1. if($_POST[Submit] =='Submit' && !emptyempty($_POST[UserName]) && !emptyempty($_POST[EMAIL]) && !emptyempty($_POST[PASS1]) && !emptyempty($_POST[PASS2]) && $adat1=="true" && $adat2=="true" && $_POST[PASS1] == $_POST[PASS2] && strlen($_POST[PASS1])>="5"){  
  2.       include("config.php");  
  3.       $passwd=md5($_POST[PASS1]);  
  4.       $uname=$_POST[UserName];  
  5.       $con = mysql_connect($host,$user,$pass);  
  6.       if (!$con) {  
  7.       die('Could not connect: ' . mysql_error());  
  8.          }  
  9.         mysql_select_db($db2$con);  
  10.         mysql_query("INSERT INTO users (personID,FirstName, LastName, UserName, Email, Password)  
  11.        VALUES ('''$_POST[FirstName]''$_POST[LastName]''$uname''$_POST[EMAIL]''$passwd')");  
  12.        echo '<meta http-equiv="refresh" content="0; ?siteidd=4&reg=true" />';  
  13.        mysql_close($con);  
  14.  }  
A login.php-be meg így próbáltam:
  1. include("config.php");  
  2.  $con = mysql_connect($host,$user,$pass);  
  3.         if (!$con) {  
  4.         die('Could not connect: ' . mysql_error());  
  5.          }  
  6.         mysql_select_db($db2$con);  
  7.         $Zuser=$_POST[UserName];  
  8.         $Zpass=md5($_POST[PASS]);   
  9.          $check = mysql_query("SELECT * FROM users WHERE UserName = '".mysql_real_escape_string($Zuser)."' AND Password = '$Zpass'");   
  10.    $vanelekerdezes = mysql_num_rows($lekerdezes);  
  11.    if ($vanelekerdezes>0)  
  12.    {  
  13.       $adatok=mysql_fetch_assoc($lekerdezes);  
  14.       $_SESSION["login"]="true";  
  15.       echo "Beleptel";  
  16.   }  
  17.    else  
  18.   {  
  19.    print 'Hibas felhasznalonev vagy jelszo!';   
  20.    print mysql_error();   
  21.   }  
  22. }  
Nekem nem írja ki soha, hogy beléptél, csak azt, hogy hibás a felhasználónév vagy a jelszó.
Ékezetes betűk nem lehet a gond, mert nem használtam regisztrációba ékezetes betűket.
Várom a válaszokat.
 
1

Lekérdezés eredménye

Pepita · 2013. Ápr. 12. (P), 20.37
Először $check-be teszed a query eredményét, aztán az adatokat a $lekerdezes-ből szeretnéd kivenni.
Ez mindig 0 lesz: $vanelekerdezes = mysql_num_rows($lekerdezes);, mert itt adsz neki először értéket.
3

Ott a pont.

Poetro · 2013. Ápr. 12. (P), 20.43
Ott a pont.
4

Ezt most nem értem

sobgames · 2013. Ápr. 12. (P), 21.02
Áhhhhhhhhhh... XD
Már rájöttem :)
5

Azért több is van!

Pepita · 2013. Ápr. 12. (P), 21.09
Figyelj arra is, amiket Poetro írt, nagyon alapvető biztonság sincs a kódodban!

Javaslom, hogy olvasd el ezeket a témájú cikkeket, van egy pár. Mielőtt még élesbe kitennél valamit.
2

A legfontosabb, hogy először

Poetro · 2013. Ápr. 12. (P), 20.40
A legfontosabb, hogy először is, törekedj a tömbök helyes használatára. Ha a tömb kulcsai stringek, akkor azokhoz stringekkel próbálj hozzáférni. Például $_POST[PASS] helyett $_POST['PASS']. Fontos lehet, hogy a mezőket kicsi, illetve nagybetűvel írod-e, nálad mindenfélét látok, nem tudom, mi a helyes. Minden felhasználótól érkező adatot escapelj, például a mysql_real_escape_string segítségével, ne csak egy pár "véletlenül" kiválasztottat. Ezeken felül, ajánlom az Egyszerű hibakeresés című cikket.