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:
if($_POST[Submit] =='Submit' && !empty($_POST[UserName]) && !empty($_POST[EMAIL]) && !empty($_POST[PASS1]) && !empty($_POST[PASS2]) && $adat1=="true" && $adat2=="true" && $_POST[PASS1] == $_POST[PASS2] && strlen($_POST[PASS1])>="5"){
      include("config.php");
      $passwd=md5($_POST[PASS1]);
      $uname=$_POST[UserName];
      $con = mysql_connect($host,$user,$pass);
      if (!$con) {
      die('Could not connect: ' . mysql_error());
         }
        mysql_select_db($db2, $con);
        mysql_query("INSERT INTO users (personID,FirstName, LastName, UserName, Email, Password)
       VALUES ('', '$_POST[FirstName]', '$_POST[LastName]', '$uname', '$_POST[EMAIL]', '$passwd')");
	   echo '<meta http-equiv="refresh" content="0; ?siteidd=4&reg=true" />';
	   mysql_close($con);
 }
A login.php-be meg így próbáltam:
include("config.php");
 $con = mysql_connect($host,$user,$pass);
        if (!$con) {
        die('Could not connect: ' . mysql_error());
         }
        mysql_select_db($db2, $con);
		$Zuser=$_POST[UserName];
		$Zpass=md5($_POST[PASS]); 
		 $check = mysql_query("SELECT * FROM users WHERE UserName = '".mysql_real_escape_string($Zuser)."' AND Password = '$Zpass'"); 
   $vanelekerdezes = mysql_num_rows($lekerdezes);
   if ($vanelekerdezes>0)
   {
      $adatok=mysql_fetch_assoc($lekerdezes);
      $_SESSION["login"]="true";
      echo "Beleptel";
  }
   else
  {
   print 'Hibas felhasznalonev vagy jelszo!'; 
   print mysql_error(); 
  }
}
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.