Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] reCaptcha
Foxx
post
Post #1





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Witajcie, chciałbym zainstalować plugin reCaptcha dla Symfony ale jest chyba jakiś problem z dokumentacją.
Tam gdzie powinno być README, czyli http://www.symfony-project.org/plugins/sfReCaptchaPlugin jest adres do traca a trac przekierowuje spowrotem na http://www.symfony-project.org/plugins/sfReCaptchaPlugin
Czy ktoś widział gdzieś tą dokumentację?
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jeszcze nie tak dawno temu korzystałem z tego pluginu - sprawdź może w cacheu Googlea, albo na archive.org będzie. Ewentualnie mogę podrzucić "HowTo" o ile jeszcze pamiętam (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Foxx
post
Post #3





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Niestety nie mogę znaleźć nigdzie starszych wersji tej strony. Trudno, po prostu zastosuję inne captcha a do reCaptcha wrócę jak będę miał więcej czasu albo jak się pojawi dokumentacja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki za pomoc.
Go to the top of the page
+Quote Post
athabus
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Też napotkałem ten problem, już miałem spróbować innego captcha, ale postanowiłem sprawdzić jak się to instaluje bez pluginu.

ReCaptcha jest bardzo prosta w instalacji - w zasadzie to jeden plik, reszta opiera się na webservices. Wystarczy założyć u nich konto, pobrać paczkę dla php i wstawić kilka linijek kodu tak jak w instrukcji - na prawdę nie wiem co ten plugin ma robić, bo instalacja zajęła mi 5 minut (z czego 3 to zakładanie konta). Wszystko zrobiłem z 1 stronicowego tutoriala na ich stronie i zadziałało bezbłędnie za pierwszym razem - polecam to rozwiązanie. Żeby jeszcze tylko można było dać zestaw swoich słów po Polsku...
Go to the top of the page
+Quote Post
pauluZ
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Symfony: 1.4.13
sfFormExtraPlugin
sfDoctrineGuardPlugin-5.0.0.tgz (VERSION: 1.0.4)


"portal" to mój frontend.

Ustawiam w apps\portal\config\app.yml :
Kod
all:
  recaptcha:
    active:     true
    publickey:  "key"
    privatekey: "key"

(kody kluczy oczywiście z : https://www.google.com/recaptcha/admin/create)

Rozszerzam formularz od rejestracji dla: sfDoctrineGuardPlugin
lib\form\doctrine\sfDoctrineGuardPlugin\sfGuardRegisterForm.class.php
  1. /**
  2.  * sfGuardRegisterForm for registering new users
  3.  *
  4.  * @package Symfony
  5.  * @subpackage form
  6.  * @author Paweł Szczepanek <pauluz@pauluz.pl>
  7.  * @version SVN: $Id: BasesfGuardChangeUserPasswordForm.class.php 23536 2009-11-02 21:41:21Z Kris.Wallsmith $
  8.  */
  9. class sfGuardRegisterForm extends BasesfGuardRegisterForm
  10. {
  11. /**
  12.   * @see sfForm
  13.   */
  14. public function configure()
  15. {
  16. if (sfConfig::get('app_recaptcha_active', false))
  17. {
  18. $this->setWidget('captcha', new sfWidgetFormReCaptcha(array(
  19. 'public_key' => sfConfig::get('app_recaptcha_publickey'),
  20. 'theme' => 'red\',
  21. custom_translations : {
  22. instructions_visual : "Wpisz oba słowa (ze spacją):",
  23. instructions_audio : "Wpisz to co usłyszysz:",
  24. play_again : "Odegraj dźwięk jeszcze raz",
  25. cant_hear_this : "Pobierz dźwięk jako MP3",
  26. visual_challenge : "Tryb wizualny",
  27. audio_challenge : "Tryb audio",
  28. refresh_btn : "Odśwież Captche",
  29. help_btn : "Okienko pomocy",
  30. incorrect_try_again : "Błąd. Spróbuj jeszcze raz"
  31. },
  32. nothing : \'null',
  33. 'culture' => 'pl',
  34. ), array('required'=> false)));
  35.  
  36. $this->setValidator('captcha', new sfValidatorReCaptcha(array(
  37. 'private_key' => sfConfig::get('app_recaptcha_privatekey')
  38. ), array(
  39. 'captcha' => 'Źle podana Captcha (%error%).',
  40. 'server_problem' => 'Problemy z połączeniem do serwera (%error%).',
  41. ))
  42. );
  43. }
  44. }
  45. }

Nieco w hardkorowy sposób dostawiam do javascript zmienną 'custom_translations' aby przetłumaczyć reCaptche.
Zwróć uwagę na odpowiednie powstawianie tam znaków maskujących cudzysłowia.

Tworze moduł z tylko jednym plikiem: actions.class.php
apps\portal\modules\sfGuardRegister\actions\actions.class.php
Który zawiera:
  1. class sfGuardRegisterActions extends sfActions
  2. {
  3. public function executeIndex(sfWebRequest $request)
  4. {
  5. if ($this->getUser()->isAuthenticated())
  6. {
  7. $this->getUser()->setFlash('notice', 'You are already registered and signed in!');
  8. $this->redirect('@homepage');
  9. }
  10.  
  11. $this->form = new sfGuardRegisterForm();
  12.  
  13. if ($request->isMethod('post'))
  14. {
  15. $captcha = array(
  16. 'recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'),
  17. 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field'),
  18. );
  19. $this->form->bind(array_merge($request->getParameter($this->form->getName()), array('captcha' => $captcha)));
  20.  
  21. if ($this->form->isValid())
  22. {
  23. $this->form->offsetUnset('captcha');
  24. $user = $this->form->save();
  25. $this->getUser()->signIn($user);
  26.  
  27. $this->redirect('@homepage');
  28. }
  29. }
  30. }

Jest to skopiowany plik z :
plugins\sfDoctrineGuardPlugin\modules\sfGuardRegister\lib\BasesfGuardRegisterActions.class.php
- dopisałem do formularza 'captcha'.
(drobne wyjaśnienie tego myku jest w : plugins\sfFormExtraPlugin\lib\widget\sfWidgetFormReCaptcha.class.php)

Po wyczyszczeniu cache formularz od rejestracji powinien sprawdzać Captche.

U siebie miałem jeszcze ciekawie ostylowane formularze ale to już nie wpływa myślę na działanie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 01:54