Autor | Zpráva | ||
---|---|---|---|
laijk Profil |
#1 · Zasláno: 11. 8. 2012, 13:02:35
-prihlasovací skript:
$login = $_POST['login']; $heslo = sha1($_POST['heslo']); $result = mysql_query("SELECT user_password FROM users WHERE user_login='$login'"); $row = mysql_fetch_row($result); if($heslo == $row[0]) { $_SESSION['prihlaseny'] = 'ano'; } else { echo "Zadali ste neplatné meno alebo heslo!"; } ?> -keď sa prihlásim podľa správneho mena a hesla vypíše toto: Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\www\login.php on line 6 Zadali ste neplatné meno alebo heslo! |
||
abc Profil |
#2 · Zasláno: 11. 8. 2012, 13:09:18
Viz zdejší FAQ - nejspíš chybný dotaz do DB
|
||
panther Profil |
#3 · Zasláno: 11. 8. 2012, 13:11:20
laijk:
„keď sa prihlásim podľa správneho mena a hesla vypíše toto:“ ne, to se píše, protože máš chybu v SQL dotaze, proměná result vrací false. Vypiš si mysql_error() . Pokud to je v jednom souboru společně s formulářem, $_POST může být prázdný, resp. bude, před odesláním formuláře.
On celkově způsob, který jsi zvolil, je nešťastný. Pro neporovnáváš heslo přímo v SQL dotaze společně se jménem? Navíc nemáš proměnné v dotaze ošetřené, konkrétně mysql_real_escape_string v tomto případě.
|
||
laijk Profil |
EDIT!
$meno = $_POST['meno']; $heslo = sha1($_POST['heslo']); //keď som tu vypísal heslo tak bolo v poriadku, heslo mám zahashované a po SQL dotaze ho nevie nájsť, netreba dať niekde do SQL dotazu sha1?? pretože keď som vypísal result tak bol prázdny, zrejme tento dotaz porovnáva zahashované heslo s nezahashovaným $result = mysql_query("SELECT user_password FROM users WHERE user_login = '" , mysql_real_escape_string($meno) , "' AND user_password = '" , mysql_real_escape_string($heslo), "'"); |
||
panther Profil |
#5 · Zasláno: 11. 8. 2012, 17:22:37
laijk:
máš chybu v základní syntaxi PHP, doporučuji doučit se jí. „zrejme tento dotaz porovnáva zahashované heslo s nezahashovaným“ ne, porovnává proměnnou obsahující hash s hashem s DB. |
||
Časová prodleva: 12 let
|
0