| 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: 13 let
|
|||
0