#1 7. 9. 2009 14:46
- Jake Cooney
- Člen

- Místo: Prague, Czech Republic
- Registrovaný: 7. 9. 2009
- Příspěvky: 11
- Web
reCAPTCHA pro Nette
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_DIRdo 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.
Offline
#2 7. 9. 2009 15:05
- kravčo
- Moderator

- Místo: Bratislava
- Registrovaný: 15. 6. 2008
- Příspěvky: 564
Re: reCAPTCHA pro Nette
presunuté do fóra Komponenty
Offline
#4 30. 10. 2009 15:45
- doomed
- Člen
- Registrovaný: 29. 10. 2009
- Příspěvky: 18
Re: reCAPTCHA pro Nette
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)
Offline
#5 14. 1. 2010 20:10
- pjoter
- Člen
- Registrovaný: 22. 8. 2009
- Příspěvky: 89
Re: reCAPTCHA pro Nette
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)
Offline
#6 15. 1. 2010 16:00
Offline
#7 15. 1. 2010 16:23
- pjoter
- Člen
- Registrovaný: 22. 8. 2009
- Příspěvky: 89
Re: reCAPTCHA pro Nette
co to znamena ? co kde mam pridat ?
Offline
#8 15. 1. 2010 22:04
Re: reCAPTCHA pro Nette
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).
Offline
#9 16. 1. 2010 23:03
- pjoter
- Člen
- Registrovaný: 22. 8. 2009
- Příspěvky: 89
Re: reCAPTCHA pro Nette
aha tak to nic ja chci pouzit captchu z komponent nette a potrebuju akorat pridelat funkci vygenerovat novy kod a myslel jsem ze to dela tahle recaptcha
Offline
#10 17. 1. 2010 10:13
Offline


