Hogyan lehet bejelentkezést a weblapra?
hi
próbáltam írni egy bejelentkező scriptet több kevesebb sikerrel
ezt irtam:
<?php
if(isset($_POST["log_submit"])){
$username = $_POST['nev'];
$password = $_POST['pass'];
$kapcsolat = mysql_connect('localhost', 'root', '' ,'user');
$query = "SELECT * FROM `user` WHERE `user_username` = '$username'";
$result = mysql_query($query);
$line = mysql_fetch_array($result);
if($password == $line[user_password])
{
print "Sikeres belépés";
}
else
{
print "sikertelen belépés";
}
mysql_close($kapcsolat);
}
?>
és ennek az lett az eredménye hogy kiirja hogy sikertelen bejelentkezés akkor is ha jó jelszót és felhasználónevet irok be
ezeket irja ki:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\Program Files\xampp\htdocs\index.php on line 38
Notice: Use of undefined constant user_password - assumed 'user_password' in D:\Program Files\xampp\htdocs\index.php on line 40
sikertelen belépés
és ezzel nem tudok mit kezdeni már mindent kipróbáltam és sehogy sem tudok rájönni hogy mért rossz
ha valaki tud segíteni azt megköszönném.
:D ...
szóval igen, ez az eredménye annak, hogy (szemmel láthatóan) gőzöd sincs a php-ról, csak random kigugliztál valami infókat, és abból próbálsz összegányolni valamit.
De, mondjuk az sem ártana, hogyha elolvasva a hibaüzenetet rájönnél, hogy a 38 és 40 sorok a hibásak, aztán idemásolnád őket, hogy megnézhessük.. távgyógyítani nehéz.. de amúgy szinte biztos vagyok benne, hogy a gond az, hogy: mysql_fetch_array felvesz valahol 0-értéket, mely ugye a gyengén típusosság miatt boolean logikai false-ként kinyírja a ciklust..
köszi mindenkinek az elsö
kommentelönek:
hát valahonnan keresni kellet utána olvastam azt ez jött ki belőle és azért nem irtam ki hogy melyik az a sor mert látni lehet hogy hol van a baj elolvastam a hibákat csak nem tudom megoldani amúgy ezekben a sorokban van a hiba
$line = mysql_fetch_array($result);
if($password == $line[user_password])
és az utolsó kommentelőnek honnan tanuljak php-t?
tudsz küldeni valami oldalt?
és megadtam az elérési utat legalább is azt irták hogy igy kell rácsatlakozni és phpmyadminbol kimásoltam ezeket:
$kapcsolat = mysql_connect('localhost', 'root', '' ,'user');
$query = "SELECT * FROM `user` WHERE `user_username` = '$username'";
Ja nem láttam, hogy az "user" előtt ott az üres jelszó.
Írok akkor egy másik beléptetőt neked...
<?php
if(isset($_POST["log_submit"])){
$username = $_POST['nev'];
$password = $_POST['pass'];
$kapcsolat = mysqli_connect('localhost', 'root', '' ,'user');
$query = "SELECT * FROM `user` WHERE `user_username` = '$username' AND `user_password` = '$password'";
$result = mysqli_query($kapcsolat, $query);
if(mysqli_num_rows($result) == 1)
{
$line = mysql_fetch_array($result);
print $line['user_username'] . " sikeres belépett.";
}
else
{
print "sikertelen belépés";
}
mysqli_close($kapcsolat);
}
?>
Én nem javasolnám első körben az előző kommentelő verióját: 1. nem fogja tudni továbbvinni a kérdező a többi fájlban szerintem, 2. a mysqli sok szerveren rosszul működik.
Kérdező: beírom neked javítva, de kéne egy jelszókódolás, pl .md5, mert ez így kilopható lesz az adatbázisból.
<?php
if(isset($_POST["log_submit"])){
$username = $_POST['nev'];
$password = $_POST['pass'];
$kapcsolat = mysql_connect('localhost', 'root', '' ,'user');
$result = mysql_query("SELECT * FROM `user` WHERE `user`.`username` = '$username'");
$line = mysql_fetch_array($result);
if($password == $line["password"])
{
print "Sikeres belépés";
}
else
{
print "sikertelen belépés";
}
mysql_close($kapcsolat);
}
?>
A stringekkel volt szerintem sok baj, és a user tábla lekérésénél nem user_username, hanem user.username
Amelyiken nem jól működik, az annyit is ér. MySQL 4.1 vagy újabb támogatja.
A mysql változat már kezd elavulni, PHP6-ban már nem is lesz elérhető.
SESSION-al vagy COOKIE-val átviheti akárhova.
"...a user tábla lekérésénél nem user_username, hanem user.username"
Szerintem user_username az oszlop neve.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!