reCAPTCHA pro Nette
- Jake Cooney
- Člen | 11
reCAPTCHA pro Nette
Napsal jsem implementaci reCAPTCHA do Nette formulářů.
Implementace
- Soubory reCAPTCHA.php a reCaptchaLib.php
umístíme do adresáře
LIBS_DIR/Nette.Extras/reCAPTCHA
- Přidáme
LIBS_DIR
do RobotLoaderu:
<?php
$loader = new RobotLoader();
$loader->addDirectory(LIBS_DIR);
$loader->register();
?>
3. V presenteru přidáme reCAPTCHA pole.
<?php
if(class_exists('reCAPTCHA'))
{
$form->addRecaptcha('recaptcha_input','reCAPTCHA:')
->addRule('reCAPTCHA::validate','Transcribe the text from the image correctly.');
}
?>
Myslim, že se to někomu bude hodit.
- doomed
- Člen | 17
Zdravím, v případě že budete tuhle komponentu používat a nemáte k dispozici PHP >= 5.3, je třeba upravit poslední řádek:
reCAPTCHA.php – původní
<?php
FormContainer::extensionMethod('addRecaptcha', array('reCAPTCHA', 'addRecaptcha'));
?>
reCAPTCHA.php – po úpravě
<?php
FormContainer::extensionMethod('FormContainer::addRecaptcha', array('reCAPTCHA', 'addRecaptcha'));
?>
Doufám, že to někomu pomůže.
Editoval doomed (30. 10. 2009 15:46)
- pjoter
- Člen | 118
tahle komponenta vygeneruje tlacitko ktere vygeneruje novou captchu ? mam php 5.3.0
mám kód
<?php
$form->addCaptcha('captcha', 'Opište bezpečnostní kód:', 32)
->setTextColor(Image::rgb(0, 0, 0))
->addRule(Form::FILLED, 'Opište bezpečnostní kód.')
->addRule('Captcha::validateValid', 'Opište správně bezpečnostní kód z obrázku.');
if(class_exists('reCAPTCHA'))
{
$form->addRecaptcha('recaptcha_input','reCAPTCHA:')
->addRule('reCAPTCHA::validate','Transcribe the text from the image correctly.');
}
?>
v sablone mam
<?php
<label>Bezpečnostní kód:</strong><br />
{!=$form['captcha']->getImage()}
<p>
{$form['recaptcha_input']->control}
{$form['recaptcha_input']->label}
</p>
<p>{$form['captcha']->label} <br />
{!=$form['captcha']->getInput()}
</p>
?>
po nacteni stranky se mi zobrazi pouze text: Invalid public key. Make sure you copy and pasted it correctly. reCAPTCHA:
Editoval pjoter (14. 1. 2010 20:19)
- Aurielle
- Člen | 1281
http://recaptcha.net/…captcha.html a zaregistruj se, ve zdrojáku té komponenty na API key někde bude konstanta nebo něco podobného (případně se to přidá do configu).