Bejelentkezési hiba
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:A login.php-be meg így próbáltam: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.
■ 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' && !emptyempty($_POST[UserName]) && !emptyempty($_POST[EMAIL]) && !emptyempty($_POST[PASS1]) && !emptyempty($_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®=true" />';
- mysql_close($con);
- }
- 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();
- }
- }
Ékezetes betűk nem lehet a gond, mert nem használtam regisztrációba ékezetes betűket.
Várom a válaszokat.
Lekérdezés eredménye
$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.Ott a pont.
Ezt most nem értem
Már rájöttem :)
Azért több is van!
Javaslom, hogy olvasd el ezeket a témájú cikkeket, van egy pár. Mielőtt még élesbe kitennél valamit.
A legfontosabb, hogy először
$_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 amysql_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.