Escapování návratových hodnot z formuláře a jejich následné zpracování
- PetrHH
- Člen | 49
Dobrý den,
vytvořil jsem si v nette formulář pro data, která půjdou do DB. Pokud do formuláře dám něco jako 0'; delete from users přepokládám, že by návratová hodnota po odeslání formuláře měla být upravena pomocí addslashes, ne? Nebo se toto dělá až při ukládání do DB? Zkusil jsem si data vypsat pomocí dump a v Laděnce vidím SQL dotaz včetně parametru, ale ten je taky v původním tvaru.
Jak zpracováváte data z rozsáhlejšího formuláře? Vypisujete ručně všechny pole jako parametry updatu/insertu nebo to děláte jinak? Jak?
Díky za váš čas!
Petr
- Filip Procházka
- Moderator | 4668
Prostě použíj dibi nebo Nette\Database a drž se zvyklosí pro danou knihovnu. Ona sama pak bude předaná data escapovat.
- PetrHH
- Člen | 49
Děkuji za vysvětlení. Měl jsem strach, že dělám něco špatně když proměnné nebyly escapovány po výpisu dump. Používám Nette\Database takže to bude bez problémů.
Mohl bych poprosit o tip jak sestavujete sql dotaz z dat odeslaných ve formuláři? Můj formulář má asi 50 položek, takže to ručně všechno vypisovat je na nic. Zatím jsem to vyřešil vytvořením pole, kde mám názvy všech polí z formuláře a SQL dotaz chci generovat dynamicky. Problém však asi bude s převodem FALSE na 0 resp. TRUE na 1, které je v db jako tinyint. Možná to půjde přes zjištění datového typu proměnné v poli. Ještě se s tím budu nějak prát.
Petr
- Filip Procházka
- Moderator | 4668
Prvně vyzkoušej, jestli to Nette\Database
náhodou neumí
automaticky :)