VÃdeo Tutorial: CakePHP - iniciando a parte administrativa - Sessão (session)
Pessoal,
continuando nossa série de vÃdeo-tutoriais sobre Cake, hoje irei dar inÃcio a parte administrativa, criando a parte de login de usuário que poderá administrar o blog.
Também irei mostrar como gravar um dado em sessão e como usar o app_controller com beforeFilter do CakePHP.
Até a próxima pessoal,
Abraços,

ArthasMX said,
Abril 20, 2007 @ 21:03
Hi there.
Is it possible to have this website translated into Spanish or English please ?
Or, who knows where to find some CakePHP VideoTutorials ?
I ask this in english because dont know your language.
Tnks
Tulio Faria said,
Abril 21, 2007 @ 18:46
Hi,
I am thinking about this… Or translate the audio to english or add subtitles to screencasts…
Thanks for your comment….
Best,
John-Henrique said,
Maio 9, 2007 @ 22:43
Eu segui o tutorial todo 3 vezes e sempre aparece a mensagem:
Notice: Undefined variable: logado in sis\cake\app\views\layouts\default.thtml on line 12
Usuário não logado
Esta seria a condicional responsável por verificar se $logado foi setada como 1 ou 0 para informar se o usuário foi logado, por mais que eu tente sempre aparece esta mensagem.
Aparentemente o script de app_controller.php não está sendo executado.
O que eu fiz de errado?
Falopa!
Tulio Faria said,
Maio 9, 2007 @ 22:49
Olá John,
coloque ao invés de verificar se $logado está com 1, verifique se ele foi setado:
if (isset($logado)){
…
}
T+
John-Henrique said,
Maio 10, 2007 @ 14:45
Já havia feito isso e mesmo assim aparece a mensagem, por isso que eu disse que não estava funcionando corretamente o app_controller.php
Outra coisa que notei foi o print_r(params) ao invés de mostrar apenas o que você mostra no video aparece isso:
Array ( [pass] => Array ( [0] => 1 ) [admin] => admin [controller] => posts [action] => admin_ler [url] => Array ( [url] => admin/posts/ler/1 ) [bare] => 0 [webservices] => [plugin] => )
Note o treixo “[pass] => Array ( [0] => 1 ) ” é como se ele estivesse setando um vetor como 1 no lugar do $logado
Falopa!
Tulio Faria said,
Maio 10, 2007 @ 20:43
Olá John,
creio que não haja relação entre o $logado e o vetor [pass], pois o $params é gerado automaticamente pelo CakePHP.
Deve haver alguma coisa diferente no seu….
Abraços,
John-Henrique said,
Maio 10, 2007 @ 22:04
Dá uma olhada ai eu já vi todos os vÃdeos mais de 3 vezes e não vi diferença nenhuma a não ser pelo erro que aparece no meu.
Session -> check(”Usuario”)){
// GRAVA O URL DE ONDE ESTAVA O USUARIO
$this -> Session -> write(”url_r”, $this -> params[”url”][”url”]);
// REDIRECIONA PARA O MODELO USUARIOS
$this -> redirect(”/usuarios/logar”);
//$this -> Session -> read(”url_r”);
// SAIR PARA NAO TER PROBLEMAS EXTRAS
exit;
}
}
// ANTES DE EXECUTAR O FILTRO CHECKSESSION
function beforeFilter(){
//print_r($this -> params);
// VERIFICANDO SE FOI SETADO UM ADMIN
if(isset($this -> params[”admin”])){
// EXECUTA O MÉTODO CHECKSESSION
$this -> checkSession();
}
if($this -> Session -> check(”Usuario”)){
$this -> set(”logado”, 1);
}else{
$this -> set(”logado”, 0);
}
}
}
?>
Rod said,
Julho 16, 2007 @ 15:24
Tulio,
Acredito que esteja tendo o mesmo problema do nosso amigo acima. Percebi que somente o metodo beforeFilter() é chamado em AppController.
O checkSession() não é chamada de maneira alguma. Coloquei um echo dentro das funções para saber se eram executadas ou não e somente o beforeFilter() retornou algo.
Será que não é necessário configurar algo no cake para que trabalhe com sessão? Qual a melhor maeneira para debugar isso?
Abraço,
Rod
Tulio Faria said,
Julho 16, 2007 @ 16:14
Olá amigos Rod e John,
percebam que o checkSession apenas é chamado quando algum método do admin é chamado, tal como /admin/posts/add/ e por aà vai…
Tentem verificar isso…
Abraços,
Gandamesh Rhadiff said,
Agosto 7, 2007 @ 01:16
Saudações Túlio.
Já pensou em colocar um icone de doação no seu site ?
do mesmo jeito que tem no cakePHP ?
eu doaria ….
Tulio Faria said,
Agosto 7, 2007 @ 12:49
Olá Gandamesh,
boa idéia cara…
Isso poderia a ajudar no custeio da hospedagem…
Obrigado pela diga,
vou adicionar sim…
Abraços,
Rodrigo Aramburu said,
Novembro 19, 2007 @ 16:29
Olá, primeiro gostaria de parabeniza-lo pelas video aulas, são realmente otimas, mas eu estava tentando serguir o exemplo e não esta funcionando. Parece que não esta gravando na seção, ou esta perdendo os dados depois do redirect.
Se ou usar o “print_r($this->Session->read(”user”)” logo depois de “$this->Session->write(”user”,$user[”Usuario”])” ele mostra os dados do usuario bunitinho, mas se eu tento o “print_r($this->Session->read(”user”)” no “beforeFilter() do Appcontroller” ele não mostra nada.
ezequiel said,
Novembro 28, 2007 @ 11:16
Hi Tulio, i am from Argentina, sorry but my english is poor, i´m a beginner with cakephp, and i trying to use some auth method or component, for user permissions, have you implemented someone, which you recommend me?
thanks and great blog!!!
Tulio Faria said,
Dezembro 1, 2007 @ 14:55
Olá Rodrigo,
meio dificil saber o motivo. Mas veja se você não está redirecionando para um endereço onde o “case” da URL esteja diferente. Por exemplo: localhost/cake ao invés de localhost/Cake.
Hi Ezequiel,
I have some friends who had implemented auth using ACL, it’s a little bit confuse to understand, but works perfectly.
I didnt do anything in this way yet, but I guess I will do soon.
Thanks for your comment.
Abraços a todos, (goodbye for all)
Diego Alexandre said,
Março 15, 2008 @ 15:05
Tulio,
sei q este post ja é meio antigo, mas estou comecando a usar o cake agora e estou tendo o mesmo problema do Rodrigo….
O que acontece, é que o cake está perdendo a sessão apos ir para outra página.
dei uma procurada na net, e vi alguma coisa falando sobre mudar a security para low no core, mas nao adiantou.
será que tem mais alguma configuração para fazer?
ps. estou usando o cake1.2
Abraços e parabens pelo site.
Diego
Tulio Faria said,
Março 16, 2008 @ 01:22
Olá Diego,
isso já aconteceu comigo também… O meu problema consegui resolver usando o security como low…
Percebi também em caso de erro (por exemplo, uma página não encontrada, a sessão também cai (as vezes))…
Abraços,
Tiago said,
Junho 13, 2008 @ 17:17
Boa tarde, cara to vendo vcs falarem de cadastrar em dois models mas como se usa dois models num mesmo controller??