Košík je prázdný

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.