Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: problem z recaptcha + formularze

Witam serdecznie,

mam 3 problemy których w żaden sposób nie mogę obejść, a mianowicie:

1. RECAPTCHA

robię sobie formularz, w których chciałbym zlamieścić recaptche.
Cały formularz robię w Zend_Form:


public function init()
{
....
....

$captcha = new Zend_Form_Element_Captcha('captcha', array(
'captcha' => new Zend_Captcha_ReCaptcha(array(
'privKey' => 'XXXXXXXXXXXXXXX',
'pubKey' => 'YYYYYYYYYYYYY'
))
));

....
....
$this->addElements(array(
...
$captcha,
...
));

}


Na stronce kody z recaptcha generują się poprawnie, głos się odczytuje ale gdy wpiszę jakiś kod do pola recaptchy i zrobie submita to wywala mi takowy błąd:


Application error
Exception information:

Message: Unable to Connect to tcp://api-verify.recaptcha.net:80. Error #0: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
Stack trace:

#0 /var/www/frameworks/Zend/library/Zend/Http/Client.php(976): Zend_Http_Client_Adapter_Socket->connect('api-verify.reca...', 80, false)
#1 /var/www/frameworks/Zend/library/Zend/Service/ReCaptcha.php(487): Zend_Http_Client->request('POST')
#2 /var/www/frameworks/Zend/library/Zend/Service/ReCaptcha.php(502): Zend_Service_ReCaptcha->_post('03AHJ_VusPeOxqI...', 'zxcv')
#3 /var/www/frameworks/Zend/library/Zend/Captcha/ReCaptcha.php(239): Zend_Service_ReCaptcha->verify('03AHJ_VusPeOxqI...', 'zxcv')
#4 /var/www/frameworks/Zend/library/Zend/Form/Element.php(1392): Zend_Captcha_ReCaptcha->isValid(NULL, Array)
#5 /var/www/frameworks/Zend/library/Zend/Form/Element/Captcha.php(286): Zend_Form_Element->isValid(NULL, Array)
#6 /var/www/frameworks/Zend/library/Zend/Form.php(2233): Zend_Form_Element_Captcha->isValid(NULL, Array)
#7 /var/www/html/guide/application/modules/guide/controllers/UsersController.php(30): Zend_Form->isValid(Array)
#8 /var/www/frameworks/Zend/library/Zend/Controller/Action.php(513): Guide_UsersController->signupAction()
#9 /var/www/frameworks/Zend/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('signupAction')
#10 /var/www/frameworks/Zend/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#11 /var/www/frameworks/Zend/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#12 /var/www/frameworks/Zend/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#13 /var/www/html/guide/public/index.php(28): Zend_Application->run()
#14 {main}


niestety nie wiem jak to obejść :/

2. Drugim problemem jest routing, a dokładniej odwołanie się do konkretnego routingu.
Routing obsługuje w bootstrapie:


<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initRoutes()
{
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes();

/* static routes */
$router->addRoute('home', new Zend_Controller_Router_Route_Static('', array('controller' => 'index', 'action' => 'index')));

/* user routes */
$router->addRoute('signup', new Zend_Controller_Router_Route_Static('rejestracja.html', array('controller' => 'users', 'action' => 'signup')));
$router = null;
}
}

?>


moje pytanie do tego punktu jest następujące: jak odwoływać się w różnego rodzaju linkach, redirectach itp do np. rejestracja.html? w symfony można było to zrealizować po przez zrobienie coś takiego: @signup niestety tu nie działa, a nie widzi mi się pisanie w każdym formularzu, linku, itp.

Takie coś $this->_redirect('@signup'); niestety nie zadziała :/
Jak można to osiągnąć?

3. Przy tworzeniu formularzy np.


$email = $this->createElement('text', 'email');
$email->setLabel('Adres e-mail:')->setRequired(true)->setAttrib('id', 'fEmail')));


chcę umieścić w labelu html np. setLabel('<em>Adres e-mail</em>:') niestety setLAbel nie czyta html'a. Jest na to jakieś obejście nie robiąte tego w plikach templatesów ?

konto usunięte

Temat: problem z recaptcha + formularze


$recaptcha = new Zend_Service_ReCaptcha($publickey, $privatekey);

$captcha = new Zend_Form_Element_Captcha('challenge',
array('captcha' => 'ReCaptcha',
'captchaOptions' => array('lang' => 'en', 'captcha' => 'ReCaptcha', 'service' => $recaptcha)));


Ja to robie tak i działa
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: problem z recaptcha + formularze

użyłem twojego sposobu niestety też dostaje ten błąd:

Message: Unable to Connect to tcp://api-verify.recaptcha.net:80. Error #0: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution


PS. czy może to być wina tego iż działam z serwera lokalnego - http://costam.local/ ?Piotr Krajewski edytował(a) ten post dnia 25.07.10 o godzinie 20:02

konto usunięte

Temat: problem z recaptcha + formularze

No jasne przecież klucze są przyznawane na domene
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: problem z recaptcha + formularze

niby tak tylko że:
1.) na stronie recaptchy bodajże w dokumentacji było, że użycie jakiego kolwiek klucza na localhoscie zadziala,

2.) w symfony jakimś cudem działa :D na lokalnym

chciałbym teraz to uzyskać w zendzie.
Jakieś pomysły ?

konto usunięte

Temat: problem z recaptcha + formularze

Jak masz możliwośc to sprawdź czy tak samo sie wywala na jakimś shared hostingu może to Twoja konfiguracja. Upewnij się też czy na pewno dobrze przekazujesz keye. Dałem Ci kod który działał bez problemu na wielu wersjach zenda.

Następna dyskusja:

Zend_DB PDO dziwny problem




Wyślij zaproszenie do