#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ářů.

Download (revision #1)

Implementace
  1. Soubory reCAPTCHA.php a reCaptchaLib.php umístíme do adresáře LIBS_DIR/Nette.Extras/reCAPTCHA
  2. 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.

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

 

#3 17. 9. 2009 19:09

vrtak-cz
NDP guru
Místo: Praha/Ústí nad Orlicí
Registrovaný: 8. 3. 2008
Příspěvky: 833
Web

Re: reCAPTCHA pro Nette

do extras s tím…


„Nastala chyba která neměla nastat“ aneb „Když se chce všechno jde.“

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

gmvasek
Nette guru
Místo: Brno
Registrovaný: 19. 3. 2009
Příspěvky: 249
Web

Re: reCAPTCHA pro Nette

Na použití reCaptchy potřebuješ api key, pokud se nemýlím…

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

gmvasek
Nette guru
Místo: Brno
Registrovaný: 19. 3. 2009
Příspěvky: 249
Web

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

gmvasek
Nette guru
Místo: Brno
Registrovaný: 19. 3. 2009
Příspěvky: 249
Web

Re: reCAPTCHA pro Nette

Ne, reCaptcha je další plugin umožňující vyřešení captchy.

Offline

 

#11 24. 1. 2010 23:33

Honza Kuchař
Moderator
Místo: Brno
Registrovaný: 12. 8. 2007
Příspěvky: 1285
Web

Re: reCAPTCHA pro Nette

Nechcete to přidat do extras?

Offline

 

Zápatí