Form::addProtection() s časovým rozmezím

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ic
Člen | 430
+
0
-

Chtěl jsem realizovat antispam (pro formuláře odesílající mail) takovým jednoduchým způsobem, který nebude moc obtěžovat uživatele. Tedy, že formulář nebude možné odeslat určitý časový úsek po jeho vytvoření (3 sekundy například). Na straně klienta se o nemožnost odeslání staral javascript, který by odpočítal podobně, jako když v FF chcete instalovat nějaký addon. No a na straně serveru se už o něco podobného stará addProtection() ( https://api.nette.org/…orm.php.html#… ), a stačila by menší úprava, aby měl minimální i maximální čas, po který je možné formulář odeslat.

Nebylo by tohle vhodné jako normální součást frameworku? addProtection je docela obecný název, klidně byl to mohla být protection proti spamu i proti CSRF.

mohlo by to vypadat nějak takto:

$form->addProtection('Please submit the form again', array($from, $to));
//nebo se zpětnou kompatibilitou
$form->addProtection('Please submit the form again', $to, $from); // což vypadá trochu divně
//nebo raději něco vlastního, aby bylo možné použít rozdílné chybové hlášky?

Editoval ic (1. 9. 2013 17:56)

enumag
Člen | 2118
+
+1
-

V Nette 2.1 z nějakého důvodu už není ani ten timeout, nevím proč.