Я просто работаю с Zend_Form в Zend Framework и наткнулся на что-то довольно странное.
У меня в логине есть следующее действие
$form = new Application_Model_FormLogin();
if ($this->getRequest()->isPost()) {
$email = $form->getValue('email');
$pswd = $form->getValue('pswd');
echo "<p>Your e-mail is {$email}, and password is {$pswd}</p>";
}
Который при отправке только выводит
Your e-mail is
и password is
Итак, я проверил, что происходит с print_r,
print_r ($ форм-> GetValues ());
print_r ($ _ POST);
Который отображал следующее,
Array ([электронная почта] => [pswd] =>) Array ([электронная почта] => asd [pswd] => asd [submit] => логин)
Таким образом, массив значений форм имеет как нулевые значения, так и глобальный почтовый массив имеет правильные значения. Теперь я не могу решить проблему?
Теперь мне удалось решить проблему, но мне нужна помощь, чтобы понять, почему это работает? Все, что я сделал, это изменил loginAction на это.
$form = new Application_Model_FormLogin();
if ($this->getRequest()->isPost()) {
//Added this in
if ($form->isValid($this->_request->getPost())) {
$email = $form->getValue('email');
$pswd = $form->getValue('pswd');
echo "<p>Your e-mail is {$email}, and password is {$pswd}</p>";
}
}
Я не понимаю, как это заставило это работать? Учитывая, что в полях нет проверки?
Есть мысли? Все, что я могу думать, может быть, у меня есть что-то странное в конфигурации моего сервера?
Спасибо