Po vložení textu do addProtection() chyba 500
- n.u.r.v.
- Člen | 485
Ahoj, měl jsem dnes od uživatele nahlášeno, že se někdy zobrazí u formuláře AJ text „Please submit this form again (token expire…)“.
Je to tím, že jsem měl u formuláře přidáno addProtection() bez textu…
Vložil jsem tedy text ->addProtection(‚nejaky_text‘);, ale teď u toho formuláře nastala chyba 500:
Argument 1 passed to Nette\Application\UI\Form::__construct() must implement interface Nette\ComponentModel\IContainer, string given, called in /www/projekt/xxx/release/app/presenters/ZiveakcePresenter.php on line 327 and defined search…
a byl označen řádek 26 v …/libs/Nette/Application/UI/Form.php:26
public function __construct(Nette\ComponentModel\IContainer $parent = NULL, $name = NULL)
řádek 327 (který vypisuje laděnka, je právě ten můj addProtection(‚nejaky_text‘);
Nevíte čím to mohlo být?
Díky
Editoval n.u.r.v. (9. 4. 2014 15:00)
- Jiří Nápravník
- Člen | 710
addProtection může být bez textu, v tom problém není… Nechceš sem spíše zkopírovat přímo ten kus kódu
- n.u.r.v.
- Člen | 485
Jiří Nápravník napsal(a):
addProtection může být bez textu, v tom problém není… Nechceš sem spíše zkopírovat přímo ten kus kódu
Mno ono šlo o to, že když vypršel časový limit tak se zobrazila hláška v AJ, tak jsem myslel, že když dám do addprotection český text, tak to bude ok, jenže to pak hodilo tu chybu…
Zde je generování formuláře:
protected function createComponentZalozeniForm() {
$form = new Form();
$form->addProtection('Platnost formuláře vypršela, prosím odešlete formulář znovu.');
$form->addHidden('token_2');
$form->getElementPrototype()->name = 'fmAction';
$form->addText('actionTitle', '')
->addRule(Form::MAX_LENGTH, 'Název muže obsahovat maximálně %d znaků.', $this->context->parameters['countTitleMax'])
->setRequired('Musíte vyplnit název!')
->setAttribute('placeholder', 'Název');
$form->addSubmit('next', 'Následující krok >')
->setAttribute('class', 'btn');
$form->addHidden('action', '');
$form->addHidden('cf', $this->getUser()->getIdentity()->CF);
$form->onSuccess[] = $this->Pridej_krok_1_Submitted;
return $form;
}
Edit: Tak jsem z toho blázen- na localu mi to jde…zkusím to znovu nasadit na hosting…
Editoval n.u.r.v. (9. 4. 2014 15:19)
- Jiří Nápravník
- Člen | 710
Nemenil jsi nastavení sessions? Například cookie_domain či pod.? To takhle blbne casto, resenim je procistit cache prohlizece, nebo anonymni okno…
- n.u.r.v.
- Člen | 485
no zkusil jsem toto:
- dál jsem ten text v addProtection i k přihlašovacímu formuláři
- načetl jsem si přihlašovací stránku
- smazal cache prohlížeče (tedy včetně session id)
- zkusil jsem odeslat formulář – zobrazila se správně ta moje hláška že vypršela platnost formuláře
- další přihlášení šlo…
…
ok, po přihlášení jsem vlezl do sekce kde byl ten problém – je to jeden
presenter se třema formulářema…
- první formulář (první krok) se zobrazil bez problému, ale při odeslání kdy se měl zobrazit druhý form., nastala ta chyba…
ale dnes jsem to nasadil znovu a smazal obsah složky temp a zatím bez chyb…