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' && !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®=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.