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 ?