Criar sessão de usuario logado em PHP
15/01/2018
0
Olá pessoal, blz!?
Minha dúvida é em relação a como criar uma sessão para usuário logado dentro deste arquivo Sessão:
Grato desde já[]
Essa dúvida foi gerada a partir de um comentário na aula [url:descricao=Trabalhando com sessões - Primeira Aplicação PHP utilizando MVC - Vídeo 13]https://www.devmedia.com.br/trabalhando-com-sessoes-primeira-aplicacao-php-utilizando-mvc-video-13/38564[/url]
Minha dúvida é em relação a como criar uma sessão para usuário logado dentro deste arquivo Sessão:
class LoginController extends Controller { public function login() { $this->render(''/login/index''); } public function entrar() { $this->render(''/login/entrar''); $usuarioDAO = new UsuarioDAO(); $validaLogin = $usuarioDAO->verificaLogin($_POST[''email''], $_POST[''senha'']); if($validaLogin == 0) { echo "Dados não confere"; } else { //$this->redirect(''/usuario/sucesso''); //var_dump($_SESSION["auth"]); session_start(); $_SESSION["auth"] = [ ''id_usuario'' => $validaLogin["id"], ''nome'' => $validaLogin["nome"], ''email'' => $validaLogin["email"] ]; $dados = $_SESSION["auth"]; $Usuario = new Usuario(); $Usuario->setNome($_POST[''nome'']); Sessao::startSessao($_POST[''dados'']); var_dump(Sessao::startSessao($_POST)); echo "LOGIN FEITO"; // echo $usuarioDAO->retornDados($_POST['''']); } } public function cadastro() { $this->render(''/login/cadastro''); //Sessao::limpaFormulario(); Sessao::limpaMensagem(); } public function salvar() { $Usuario = new Usuario(); $Usuario->setNome($_POST[''nome'']); $Usuario->setEmail($_POST[''email'']); $Usuario->setSenha(md5($_POST[''senha''])); Sessao::gravaFormulario($_POST); $usuarioDAO = new UsuarioDAO(); if($usuarioDAO->verificaEmail($_POST[''email''])){ Sessao::gravaMensagem("Email existente"); $this->redirect(''/usuario/cadastro''); } if($usuarioDAO->salvar($Usuario)){ $this->redirect(''/usuario/sucesso''); }else{ Sessao::gravaMensagem("Erro ao gravar"); } } public function sucesso() { if(Sessao::retornaValorFormulario(''nome'')) { $this->render(''/login/sucesso''); // Sessao::limpaFormulario(); Sessao::limpaMensagem(); }else{ $this->redirect(''/''); } } public function sair() { Sessao::limpaSessao(); $this->redirect(''/login/sucesso''); } public function checkBox() { $Usuario = new Usuario(); $Usuario->setNome($_POST[''nome'']); $Usuario->setEmail($_POST[''email'']); $Usuario->setSenha(md5($_POST[''senha''])); Sessao::gravaFormulario($_POST); if(isset($_POST["pass_remember"])){ $senha=$_POST["senha"]; $tempo_expiracao= 3600; //uma hora setcookie("pass_remember", $senha, $tempo_expiracao); } } public function index() { $this->render(''/login/index''); } }
Grato desde já[]
Essa dúvida foi gerada a partir de um comentário na aula [url:descricao=Trabalhando com sessões - Primeira Aplicação PHP utilizando MVC - Vídeo 13]https://www.devmedia.com.br/trabalhando-com-sessoes-primeira-aplicacao-php-utilizando-mvc-video-13/38564[/url]
José Silva
Curtir tópico
+ 0
Responder
Post mais votado
15/01/2018
Dê um nome pra essa sessão com
toda a vez que voce for testar a sessao em arquivos separados, chame o nome da sessao, dê start nela e teste os valores
Lembrando que tem que setar essa variavel de sessão. Use dessa forma no if que eu mostrar e vê se funciona:
session_name('sessao');
toda a vez que voce for testar a sessao em arquivos separados, chame o nome da sessao, dê start nela e teste os valores
session_name('sessao'); session_start(); if($_SESSION['logado']==true) { echo "Verdade"; }
Lembrando que tem que setar essa variavel de sessão. Use dessa forma no if que eu mostrar e vê se funciona:
if($validaLogin == 0) { echo "Dados não confere"; } else { //$this->redirect(''/usuario/sucesso''); //var_dump($_SESSION["auth"]); session_name('sessao_teste'); session_start(); $_SESSION["auth"] = [ ''id_usuario'' => $validaLogin["id"], ''nome'' => $validaLogin["nome"], ''email'' => $validaLogin["email"] ]; $dados = $_SESSION["auth"]; $Usuario = new Usuario(); $Usuario->setNome($_POST[''nome'']); Sessao::startSessao($_POST[''dados'']); var_dump(Sessao::startSessao($_POST)); echo "LOGIN FEITO"; // echo $usuarioDAO->retornDados($_POST['''']); }
Alex William
Responder
Mais Posts
27/01/2018
José Silva
Olá Alekym, muito obrigado pela ajuda. Eu acabei conseguindo com um amigo, tava meio perdido mas já me encontrei em relação a isso. Só sinto que os usuários ficam sem suporte nesse site. Eles redirecionam para o fórum e não respondem nos conteúdos a sua dúvida.
Responder
Clique aqui para fazer login e interagir na Comunidade :)