Dominik Zawadzki ...
Temat: [ZF 1] redirect, renderScript i już się zamotałem
Witam uczę się ZF i jako projekt do zabawy (nauki) wybrałem zrobienie prostego czatu. Mój problem polega na tym, że nie za bardzo rozumiem działanie renderScript, tzn. idee łapie ale z zastosowaniem mam problem. Szukając rozwiązania problemu natknąłem się na wiele różnych sposobów i mam kompletny chaos w rozumowaniu tego co myślałem, że rozumiem, dlatego piszę tutaj.Mam sobie kontroler logowanie w nim dwie metody, domyślna która wyświetla formularz (jeśli użytkownik nie zalogowany), druga do logowania (przetwarzająca ten formularz). Problem w tym, że metoda do zalogowania w przypadku niepoprawnego hasła ma ponownie wyświetlić formularz i umieścić dodatkowe informacje. Działa mi to, ale tylko gdy raz użytkownik wyśle formularz. Później dokleja mi do adresu jeszcze raz nazwę kontrolera i metodę...a więc strona nie istnieję pod takim "dziwnym" adresem.
Kod wygląda tak
<?php
class LogowanieController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) $this->redirect ('czat');
$this->view->form = new Application_Form_Logowanie();
}
public function zalogujAction()
{
if($this->getRequest()->isPost()) {
$form = new Application_Form_Logowanie();
if($form->isValid($this->getRequest()->getPost())) {
$adapter = new Zend_Auth_Adapter_DbTable(
null,
'users',
'login',
'pass',
'MD5(?)'
);
$adapter->setIdentity($form->getValue('login'));
$adapter->setCredential($form->getValue('pass'));
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);
if($result->isValid()) {
return $this->redirect('czat');
}
$form->pass->addError('Błedne hasło');
$url = $this->view->url(array('action' => 'logowanie'));
$form->setAction($url);
$this->view->form = $form;
$this->renderScript('logowanie/index.phtml');
}else{
$this->redirect('logowanie');
}
}else{
$this->redirect('logowanie');
}
}
}
Co ciekawe action mam zawsze na "logowanie/zaloguj"
1. Co robię źle z renderScript lub z setAction ?
2. $this->redirect to alias dla $this->_helper->redirector()Ten post został edytowany przez Autora dnia 10.08.13 o godzinie 13:16