Kontrola dvou inputů – validace

- Rellik
- Člen | 104
Zdravím,
jako novopečený uživatel Nette Frameworku bych chtěl položit první dotaz
ohledně formuláře.
Potřebuju zvalidovat dva inputy, kde jeden je vyplněn automaticky z hodnoty
session a do druhého se má správně vyplnit tato hodnota ručně.
úryvek kódu je následující:
$form->addHidden('captcha')
->setValue($_SESSION['captcha']);
$form->addText('cislo', '{captcha} Opište kód:') // {captcha} se mění při výpisu na obrázek
->addRule(Form::FILLED, 'Není vyplněn kód.')
->addRule(Form::EQUAL, 'Zadaný kód se neshoduje', $form['captcha']);
Bohužel tato validace v PHP5.3 nefunguje (Nette Framework 2.0-beta (revision 325620c released on 2011–12–19)), Respektive funguje pokud píšu kód pro verzi PHP5.2 :
$form->addHidden('captcha')
->setValue($_SESSION['captcha']);
$form->addText('cislo', '{captcha} Opište kód:')
->addRule(NForm::FILLED, 'Není vyplněn kód.')
->addRule(NForm::EQUAL, 'Zadaný kód se neshoduje', $form['captcha']);
Poradí mi někdo co je špatně a proč to nejde?

- Šaman
- Člen | 2668
Vím že si teď budeš myslet, že z tebe dělám lamu, ale jsi si skutečně jistý, že nepoužíváš verzi s prefixy? Jinak by ti to ty třídy NXxx vůbec nenašlo a zahlásilo chybu. Jestli jsi upgradoval Nette, tak se ujisti, že jsi staré smazal a ne jen přepsal novým.
Pokud chyba přetvává, tak popiš jak ti první kód nefunguje – něco hlásí?

- Rellik
- Člen | 104
Šaman napsal(a):
Vím že si teď budeš myslet, že z tebe dělám lamu, ale jsi si skutečně jistý, že nepoužíváš verzi s prefixy? Jinak by ti to ty třídy NXxx vůbec nenašlo a zahlásilo chybu. Jestli jsi upgradoval Nette, tak se ujisti, že jsi staré smazal a ne jen přepsal novým.
Pokud chyba přetvává, tak popiš jak ti první kód nefunguje – něco hlásí?
Jo omlouvám se na to sem zapomněl – jsou to dvě verze nette. Ta jedna je bez prefixů a ta druhá s prefixy. Nicméně to je myslím celkem fuk. Jde o to že v té jedné verzi kde je NForm to funguje – vypíše že kód nesouhlasí. U té prefixové to projede ať tam napíšu cokoliv. Jediné co zvaliduje u toho inputu, tak to že musí být vyplněn…

- Rellik
- Člen | 104
Tak sem pomazal všechny verze Nette, stáhl znovu verzi pro PHP 5.3, znovu vytvořil formulář a zatím se zdá že to funguje jak má… Jinak včera mi pak přestala fungovat i ta verze, ve které to fungovalo a to sem s formulářem vůbec nic nedělal – jen přidával funkci na zápis do DB… no uvidíme.. Nejspíš to s tím Nette nebude tak jednoduché jak se si do teď myslel…

- Tomáš Votruba
- Moderator | 1114
Rellik napsal(a):
Tak sem pomazal všechny verze Nette, stáhl znovu verzi pro PHP 5.3, znovu vytvořil formulář a zatím se zdá že to funguje jak má… Jinak včera mi pak přestala fungovat i ta verze, ve které to fungovalo a to sem s formulářem vůbec nic nedělal – jen přidával funkci na zápis do DB… no uvidíme.. Nejspíš to s tím Nette nebude tak jednoduché jak se si do teď myslel…
Ještě bych ti doporučoval promazávat složku temp, která
možná mohla za načítání staré verze Nette.
Editoval Schmutzka (25. 12. 2011 15:40)