Domanda

sto implementando il modulo di autenticazione in Kohana, e io non riesco a capire l'origine di questo messaggio di errore - Succede quando invio un modulo di registrazione che crea un utente nel database (che lo fa con successo ).

  

stato rilevato un errore che ha impedito il caricamento di questa pagina. Se il problema persiste, si prega di contattare l'amministratore del sito.

     

application / controller / register.php [83]:

     

proprietà non definita: Register_Controller :: $ auth

Sto usando jQuery per convalidare la forma, e la forma funzionato perfettamente prima ho aggiunto il jquery, quindi il problema potrebbe avere a che fare con le richieste Ajax, ma non sono sicuro dove andare da lì ...

Ecco la traccia dello stack:

   *

     Register_Controller->create_user(  )

   * system/core/Kohana.php [291]:

     ReflectionMethod->invokeArgs( Register_Controller Object
     (
         [template] => View Object
             (
                 [kohana_filename:protected] => /var/www/ko/testsite/system/views/form/template.php
                 [kohana_filetype:protected] => .php
                 [kohana_local_data:protected] => Array
                     (
                     )

             )

         [auto_render] => 1
         [uri] => URI Object
             (
             )

         [input] => Input Object
             (
                 [use_xss_clean:protected] => 1
                 [magic_quotes_gpc:protected] => 1
                 [ip_address] => 
             )

     )
      )

   *

     Kohana::instance(  )

   * system/core/Event.php [209]:

     call_user_func( Array
     (
         [0] => Kohana
         [1] => instance
     )
      )

   * system/core/Bootstrap.php [55]:

     Event::run( system.execute )

   * index.php [106]:

     require( system/core/Bootstrap.php )

Ed ecco il metodo create_user () nella Register_Controller:

public function create_user()
{
   if($_POST)
   {
      $post = $this->input->post();
      $user = ORM::factory('user');

      $user->add(ORM::factory('role', 'login'));

     if($user->validate($post, TRUE))
      {
         $this->auth->login($user, $post->password);
         url::redirect();
      }
      else
      {
         url::redirect('register');
      }
   }
}

Qualcuno ha qualche suggerimento? : P

È stato utile?

Soluzione

L'errore che stai ricevendo è perché la variabile $ this-> auth non esiste nel vostro controller

Sto indovinando si intende fare $this->auth = Auth::instance(); nel costruttore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top