Diskuze: Zjištění existence nicku v db
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ale fuj, proč vybíráš všechny sloupce, když tě zajímá jen počet řádků v tabulce? Navíc tam máš SQL injekci.
Tohle by mělo fungovat, ale ten zastaralý MySQL ovladač již nepoužívám, on se vlastně už ani používat nemá.
function prezdivkavdb($prezdivka, $link)
{
$vysledek=mysql_query("select COUNT(*) from uzivatele where prezdivka='".mysql_real_escape_string($prezdivka)."'", $link);
return mysql_fetch_row($vysledek);
}
Doporučuji si projet tento seriál: http://www.itnetwork.cz/…ze-tutorialy
Pro práci s databází si stáhni českou knihovnu dibi: http://dibiphp.com/
Ještě bych mohl dodat že můj kód na zjištění je tento:
function nickInDB ($nick) {
private $veri=$news->query("SELECT * FROM users WHERE nick='".$nick."'");
private $ov=(boolean)$veri->fetchColumn();
if ($ov==null) return false;
else return true;
}
Stejná chyba, takhle si zadám do nicku SQL příkaz a vymažu ti celou databázi.
Ono to funguje (je to fuknce z linuxsoft.cz ), ale já to potřebuji v
pdo.
sql injection vyřeším potom. Teď mě zajímá jen to zjištění
Nevěřím tomu, že se tohle někde učí, hlavně na linuxsoftu, to sis špatně interpretoval. A nefunguje to, protože ti mohu smazat celou DB, tak to asi fungovat nemá. Pokud používáš PDO, nauč se pracovat s parametrizovanými dotazy.
S databázemi a php taky teď bojuju a když to chceš v pdo (což se taky učím) tak se mrkni sem http://www.itnetwork.cz/…-a-modularne a použití v praxi
SELECT * FROM uzivatele WHERE prezdivka = ?
za dotazník se vloží tvůj parametr
Zobrazeno 8 zpráv z 8.