Text Captcha
Pomocí tohoto rozšíření Nette formulářů můžete do formuláře vložit test pro rozlišení počítačových a skutečných uživatelů (tzv. Turingův test). K tomu využívá jednoduché textové otázky.
| Verze | 1.0 |
| Download | TextCaptcha-Nette-v1.0.zip (7 KB) |
| Repozitář | http://git.yavanna.cz/p/textcaptcha/ |
| Domovská stránka | http://www.textcaptcha.cz |
| Autor | Jan Drábek |
| Licence | GNU-GPLv3 |
| Požadavky | PHP 5.3, Nette 2.0 beta |
Demonstrace v praxi

Instalace
- Zkopírujte celou složku TextCapcha někam do složky APP_DIR (příhodný adresář Components)
- Rozšiřte třídu Form
\Nette\Forms\Container::extensionMethod('addTextCaptcha', array('\TextCaptcha\TextCaptcha', 'addTextCaptcha'));
3. Nastavte sezení:
TextCaptcha::setSession(\Nette\Environment::getSession());
4. Vyberte a nastavte způsob získávání otázek:
TextCaptcha::setBackend(new ArrayBackend());
5. Nastavte jazyk (lze i později):
TextCaptcha::setLanguage("cs");
6. Přidejte si otázky dle požadované složitosti apod. 7. Používejte:
$form = new AppForm($this,$name);
$form->addTextCaptcha();
Pokud nevytvoříte formulář s parametry
($this,$name) nebude vám fungovat více otázek na jedné stránce
(v rámci jiných formulářů)!
Úložiště (backendy)
K dispozici jsou dvě úložiště.
ArrayBackend
Toto úložiště je výchozí a doporučené. Otázky jsou přidány při vytvoření backendu v poli (Jednoduché řešení pro neměnnou sadu otázek).
Otázky můžete přidávat a odebírat dle vlastního uvážení
v konstruktoru třídy ArrayBackend:
$data["cs"][] = Question::create("Kolik má člověk nohou?","2","dvě");
Parametr cs označuje jazyk otázky. Otázku samotnou
vytváříte pomocí volání Question::create kde první parametr
je otázka a všechny další parametry jsou odpovědi.
RemoteBackend
Toto úložiště je experimentální. Při jeho vytvoření je potřeba nastavit parametry pro připojení ke vzdáleným serverům.
Server-side API najdete hotové v repozitáři (viz hlavička) ve složce
/web/api/ a schéma databáze v
/resources/api-scheme.sql.
Konfigurace vypadá takto:
$backend = new RemoteBackend();
$backend->addAuth("cs", "http://textcaptcha/api/", "API_KEY", "SALT");
TextCaptcha::setBackend($backend);
Parametr cs udává jazyk. Jeden backend umí
přistupovat k otázkám v různých jazycích. **Jednoduchou úpravou
RemoteBackend.php a SaltedQuestion.php můžete
vytvořit backend pro otázky ze serveru textcaptcha.com
