Criar sessão de usuario logado em PHP

15/01/2018

0

PHP

Olá pessoal, blz!?
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

José Silva

Responder

Post mais votado

15/01/2018

Dê um nome pra essa sessão com

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar