Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/01/2013, 08:41
wilmer30
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: autenticación con zend

Gracias por tu pronta respuesta, pero como dije quisiear entender el problema, tengo un:
Código PHP:
Ver original
  1. public function indexAction() {
  2.     $this->view->form = $this->getForm ();
  3. }
que llama a:
Código PHP:
Ver original
  1. public function getForm() {
  2.         return new Application_Form_LoginForm ( array (
  3.                 'action' => '/login/process',
  4.                 'method' => 'post'
  5.         ) );
  6.     }
donde LoginForm tiene los text de usuario y contraseña y un boton de ingresar, en el array 'action'=>'/login/proccess' le dice que?
que busque un método proccess pues el único que tengo en el controlador es public function processAction(), de ser así, el código sería:
Código PHP:
Ver original
  1. public function processAction() {
  2.         $request = $this->getRequest ();
  3.        
  4.         if (! $request->isPost ()) {
  5.             return $this->_helper->redirector ( 'index' );
  6.         }
  7.        
  8.         $form = $this->getForm ();
  9.         if (! $form->isValid ( $request->getPost () )) {
  10.             $this->view->form = $form;
  11.             return $this->render ( 'index' ); // re-render the login form
  12.         }
  13.        
  14.         $adapter = $this->getAuthAdapter ( $form->getValues () );
  15.         $auth = Zend_Auth::getInstance ();
  16.         $result = $auth->authenticate ( $adapter );
  17.         $values = $form->getValues ();
  18.         $adapter = new Zend_Auth_Adapter_DbTable ( $this->db );
  19.         $adapter->setIdentity ( $values ['username'] )->setCredential ( $values ['password'] );
  20.         $auth = Zend_Auth::getInstance ();
  21.         $result = $auth->authenticate ( $adapter );    
  22.         if (! $result->isValid ()) {
  23.             $form->setDescription ( 'Invalid credentials provided' );
  24.             $this->view->form = $form;
  25.             return $this->render ( 'index' ); // re-render the login form
  26.         }
  27.        
  28.         $this->_helper->redirector ( 'index', 'index' );
  29.     }
  30.     public function logoutAction() {
  31.         Zend_Auth::getInstance ()->clearIdentity ();
  32.         $this->_helper->redirector ( 'index' ); // back to login page
  33.     }
  34. }
entiendo que con $request = $this->getRequest (); recupera los datos enviados con el boton submit 'ingresar', y con
Código PHP:
Ver original
  1. if (! $request->isPost ()) {
  2.             return $this->_helper->redirector ( 'index' );
  3.         }
si no fue enviado con un método post usa un helper redirigiendolo nuevamente a index que en mi caso al no estár autenticado trabaja el predispatch y nuevamente se va a la autenticación.

en mi ide el error me sale en la liena 62 que es
Código PHP:
Ver original
  1. $auth = Zend_Auth::getInstance ();
que parámetros debo pasarle?

muchas gracias .