Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan lehet bejelentkezést a...

ROOCK kérdése:

Hogyan lehet bejelentkezést a weblapra?

Figyelt kérdés

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.



2012. szept. 29. 08:45
1 2 3
 1/21 anonim ***** válasza:
56%

: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..

2012. szept. 29. 10:27
Hasznos számodra ez a válasz?
 2/21 anonim ***** válasza:
Nem ártana kiválasztani egy adatbázist is, hogy melyik szerencsétlenhez kapcsolódsz..
2012. szept. 29. 10:43
Hasznos számodra ez a válasz?
 3/21 anonim ***** válasza:
Tanulgasd még a PHP alapokat, csak aztán kezdj bele ilyenbe!
2012. szept. 29. 12:49
Hasznos számodra ez a válasz?
 4/21 A kérdező kommentje:

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'";

2012. szept. 29. 16:35
 5/21 anonim ***** válasza:
De azt nem adtad meg, hogy melyik adatbázishoz csatlakozzon, akkor honnan tudja szegény, hogy mit csináljon? :D
2012. szept. 29. 16:51
Hasznos számodra ez a válasz?
 6/21 A kérdező kommentje:
$kapcsolat = mysql_connect('localhost', 'root', '' ,'user'); ebbe asorba kapcsolodik az adatbázishoz ezt le is teszteltem ki is echostam és rá kapcsolodik meg talál mindent a localhost az host a root név a '' a jelszó mert nincsen jelszó az 'user'meg a tábla asszem vegy nem jól tudom?
2012. szept. 29. 17:20
 7/21 anonim ***** válasza:

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);

}

?>

2012. szept. 29. 18:24
Hasznos számodra ez a válasz?
 8/21 anonim ***** válasza:

É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

2012. szept. 29. 23:37
Hasznos számodra ez a válasz?
 9/21 anonim ***** válasza:

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.

2012. szept. 30. 00:48
Hasznos számodra ez a válasz?
 10/21 anonim ***** válasza:
De lehet félre értettem, hogy mit nem fog tudni tovább vinni a többi fájlba... :D
2012. szept. 30. 00:50
Hasznos számodra ez a válasz?
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!