Autor | Zpráva | ||
---|---|---|---|
gooner47 Profil * |
#1 · Zasláno: 4. 11. 2013, 16:53:53
Ahoj potřebuji zkontrolovat zda se např pod id 1 nachází heslo zadaná ve formuláři. Ale asi mám ale chybnou syntaxi:
$sql_kontrola_hesla = "SELECT * FROM uzivatele WHERE id = '$id' AND heslo = '$aktualni_heslo_md5'"; nevíte prosím vás někdo jak na to? |
||
Monkeys Profil * |
#2 · Zasláno: 4. 11. 2013, 17:31:51
gooner47:
na dotaz pouzi num_rows ak vrati 0 tak sa nenachadza ak 1 tak sa nachadza. M. |
||
gooner47 Profil * |
#3 · Zasláno: 4. 11. 2013, 17:58:24
Používám PDO
$kontrola_hesla = $db -> query($sql_kontrola_hesla) -> fetchColumn(); ten to příklad mám i u registrace ne kontrolu emailu a funguje bez problému, tak nevím.. |
||
Kubo2 Profil |
gooner47, Monkeys:
> „potřebuji zkontrolovat zda se např pod id 1 nachází heslo zadaná ve formuláři“ > „na dotaz pouzi num_rows“ > Nemusíš vyberať z tabuľky zbytočne všetky stĺpce, spomaluješ si tým aplikáciu/systém. Použi v dotaze SQL funkciu COUNT() , ktoré je ekvivalentná num_rows, ale spočítava nájdené riadky už v DB, a ako výsledok posiela len hodnotu (číslo).
$sql_kontrola_hesla = "SELECT COUNT(`id`) AS `existuje` FROM `uzivatele` WHERE `id` = '$id' AND `heslo` = '$aktualni_heslo_md5';"; gooner47: „Používám PDO“ Tak to si vyriešený, iba testuj, či PDOStatement::fetchColumn() vracia FALSE alebo niečo iné.
|
||
gooner47 Profil * |
#5 · Zasláno: 4. 11. 2013, 18:12:23
$sql_kontrola_hesla = "SELECT COUNT(`id`) AS `existuje` FROM `uzivatele` WHERE `id` = '$id' AND `heslo` = '$aktualni_heslo_md5';"; $kontrola_hesla = $db -> query($sql_kontrola_hesla) -> fetchColumn(); if ($kontrola_hesla != 0) { output_hlaska_heslo(2); } |
||
Kubo2 Profil |
#6 · Zasláno: 4. 11. 2013, 18:19:51
gooner47:
Nepoužívam PDO, takže si niesom istý, prečo to nefunguje. Ale minimálne ten SQL dotaz by mal vracať to čo sa od neho chce, prípadne to otestuj - nechaj si vypisovať priamo $db->query($sql_kontrola_hesla)->fetchColumn(); a skús zadať správne heslo (malo by vypísať 1) a zlé heslo (vypíše 0). Mimochodom, ako vyzerá kostra funkcie output_hlaska_heslo() ?
|
||
gooner47 Profil * |
#7 · Zasláno: 4. 11. 2013, 18:27:32
function output_hlaska_heslo($num) { $hlaska[2] = ' div class="alert alert-error hlaska-zmena"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>Chyba!</strong> Zadané heslo není v databázi. </div>'; echo '<p>'.$hlaska[$num].'</p>'; form_heslo(); exit(); } Když zadám správná heslo tak to stejně napíš že neni v db |
||
Časová prodleva: 12 let
|
0