Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

yuriarrua

[Resolvido] Executar function apos o login

Recommended Posts

Salve pessoal estou aqui novamente com uma duvida, bom é o seguinte eu preciso executar um codigo apos o login e preciso que esse codigo seja executado somente uma vez, eu coloquei ele no meu users_controler, mais dai ele executa toda a vez que eu acesso uma pagina do site e tentei colocar no app_controller mais tbm nao obitive sucesso, tentei com afterFilter(), afterRender(), beforeRender() e nada, o codigo que eu quero executar é simplesmente um insert no BD que salva o username do usuario logado e a data do login, segue o codigo abaixo.

 

$this->loadModel('Visita');
      $usuario=$this->Session->read('Auth.User.username');
      $datalogin=date('Y-m-d H:i:s');
      $this->Visita->set(array('username' => $usuario,'last_login' => $datalogin,'data_login' => $datalogin));
      $this->Visita->save();
     }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim é a mesma coisa de eu colocar o meu insert dentro da função login, dai assim ele ainda nao tem todos os dados para salvar no banco, eu estava pensando em colocar um if no app_controller mais ou menos assim

 

if (se a função login for executada){

$this->loadModel('Visita');

$usuario=$this->Session->read('Auth.User.username');

$datalogin=date('Y-m-d H:i:s');

$this->Visita->set(array('username' => $usuario,'last_login' => $datalogin,'data_login' => $datalogin));

$this->Visita->save();

}else{não faz nada}

 

mais ai que esta o problema como eu faço para saber se uma determinada função foi executada? nesse caso a função login()...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz o meu if assim, e tbm tentei colocar "true" no lugar de "1" e tbm nao deu certo, isso tudo no app_controller.

 

function visitas() {

if($this->login() == 1){

$this->loadModel('Visita');

$usuario=$this->Session->read('Auth.User.username');

$datalogin=date('Y-m-d H:i:s');

$this->Visita->set(array('username' => $usuario,'data_login' => $datalogin));

$this->Visita->save();}else{}

 

Estou fazendo algo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz o meu if assim, e tbm tentei colocar "true" no lugar de "1" e tbm nao deu certo, isso tudo no app_controller.

 

function visitas() {

if($this->login() == 1){

$this->loadModel('Visita');

$usuario=$this->Session->read('Auth.User.username');

$datalogin=date('Y-m-d H:i:s');

$this->Visita->set(array('username' => $usuario,'data_login' => $datalogin));

$this->Visita->save();}else{}

 

Estou fazendo algo errado?

 

 

Yuri você tem que fazer o seguinte:

Coloca no user_controller:

 

function beforeFilter() {	
	$this->Auth->autoRedirect = false;
	
	}  

Este parametro no beforeFilter é o que precisa para que voce consiga executar uma função logo após o login.

E na função login coloque o seguinte:

if( !(empty($this->data)) && $this->Auth->user() ){
   //Coloque a funçaõ aqui...
   //logo após a função coloque:
$this->redirect($this->Auth->redirect());
}

É isso ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.