Nette Framework představuje pro vývojáře PHP výkonný nástroj, který umožňuje efektivní vývoj webových aplikací. Jednou z klíčových funkcí Nette je snadná a bezpečná tvorba formulářů. Tento článek vás provede základními kroky k vytvoření formuláře v Nette, od základního nastavení až po implementaci bezpečnostních prvků.
Základy tvorby formulářů
Prvním krokem při vytvoření formuláře v Nette je definice formulářové komponenty. Nette Framework poskytuje třídu Nette\Application\UI\Form
, která slouží jako základ pro všechny formulářové prvky. Zde je jednoduchý příklad, jak začít:
use Nette\Application\UI\Form;
class KontaktFormularFactory
{
public function vytvorit(): Form
{
$form = new Form;
$form->addText('jmeno', 'Vaše jméno:')
->setRequired('Prosím vyplňte své jméno.');
$form->addEmail('email', 'Váš email:')
->setRequired('Prosím vyplňte svůj email.');
$form->addTextArea('zprava', 'Vaše zpráva:')
->setRequired('Prosím napište zprávu.');
$form->addSubmit('odeslat', 'Odeslat');
return $form;
}
}
Práce s formulářem v presenteru
Po definici formuláře je potřeba jej integrovat do presenteru. V Nette se toho dosahuje registrací formulářové komponenty jako továrniční metody a následnou implementací reakce na odeslání formuláře:
protected function createComponentKontaktFormular(): Form
{
$form = $this->kontaktFormularFactory->vytvorit();
$form->onSuccess[] = [$this, 'kontaktFormularUspesneOdeslan'];
return $form;
}
public function kontaktFormularUspesneOdeslan(Form $form, \stdClass $values): void
{
// Zpracování odeslaných dat
}
Validace a bezpečnost
Nette poskytuje rozsáhlé možnosti pro validaci vstupů a zabezpečení formulářů. Kromě základních validací, jako je povinnost pole nebo kontrola emailové adresy, můžete využít CSRF ochranu nebo CAPTCHA. CSRF ochrana je ve výchozím nastavení zapnuta a zajistí, že každý formulář obsahuje unikátní token, který chrání před útoky typu cross-site request forgery.
$form->addProtection('Vypršel časový limit, odešlete formulář znovu');
Vytvoření formulářů v Nette je díky jeho komponentovému přístupu a bezpečnostním funkcím snadné a bezpečné. S pomocí třídy Form
a integrací do presenteru můžete rychle vytvořit robustní a bezpečné formuláře pro vaše webové aplikace. Nezapomeňte na validaci vstupů a zabezpečení formulářů, abyste ochránili své uživatele a data.