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 | 2666
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)