Ir para conteúdo
Rafael Freitas

Exibir página somente para usuarios logados

Recommended Posts

Boa noite galera!

 

Estou precisando de uma força, seguinte:

Eu tenho um sisteminha de login e senha funcionando normalmente. Porém, a página que seria "restrita somente à usuários logado" está acessível para qualquer um, se esse tentar acessar pela url.

 

Como faço pra restringir aquela página somente para quem estiver logado. Caso não esteja, direcionar para a página de login novamente.

 

Segue o código:

<?php
	session_start();	
	//Incluindo a conexão com banco de dados
	include_once("conexao.php");	
	//O campo usuário e senha preenchido entra no if para validar
	if((isset($_POST['email'])) && (isset($_POST['senha']))){
		$usuario = mysqli_real_escape_string($conn, $_POST['email']); //Escapar de caracteres especiais, como aspas, prevenindo SQL injection
		$senha = mysqli_real_escape_string($conn, $_POST['senha']);
		$senha = md5($senha);
			
		//Buscar na tabela usuario o usuário que corresponde com os dados digitado no formulário
		$result_usuario = "SELECT * FROM usuarios WHERE email = '$usuario' && senha = '$senha' LIMIT 1";
		$resultado_usuario = mysqli_query($conn, $result_usuario);
		$resultado = mysqli_fetch_assoc($resultado_usuario);
		
		//Encontrado um usuario na tabela usuário com os mesmos dados digitado no formulário
		if(isset($resultado)){
			$_SESSION['usuarioId'] = $resultado['id'];
			$_SESSION['usuarioNome'] = $resultado['nome'];
			$_SESSION['usuarioNiveisAcessoId'] = $resultado['niveis_acesso_id'];
			$_SESSION['usuarioEmail'] = $resultado['email'];
			if($_SESSION['usuarioNiveisAcessoId'] == "1"){
				header("Location: administrativo.php");
			}elseif($_SESSION['usuarioNiveisAcessoId'] == "2"){
				header("Location: colaborador.php");
			}else{
				header("Location: cliente.php");
			}
		//Não foi encontrado um usuario na tabela usuário com os mesmos dados digitado no formulário
		//redireciona o usuario para a página de login
		}else{	
			//Váriavel global recebendo a mensagem de erro
			$_SESSION['loginErro'] = "Usuário ou senha Inválido";
			header("Location: index.php");
		}
	//O campo usuário e senha não preenchido entra no else e redireciona o usuário para a página de login
	}else{
		$_SESSION['loginErro'] = "Usuário ou senha inválido";
		header("Location: index.php");
	}
?>

Ainda estou começando no PHP,  quem puder dar uma força, agradeço! =)

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, se você já criou a SESSION após o usuário logar, fica fácil. Agora, na página que você quer restringir, você só precisar verificar se a SESSION existe, ex:

 

session_start();
if(!isset($_SESSION['login']) AND !isset($_SESSION['senha'])){
	header("Location:index.php");
}

Adicione no topo da página a verificação, pode adicionar isso num método e chamar também, assim se precisar restringir varias páginas, só chamar o método. Só adaptar para o seu projeto.

 

É uma forma simples e funcional.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, completando o comentário do nosso colega acima. Crie uma página em php tipo ---> verifica_login.php

E adicione o código Como nesse exemplo:

 

<?php
session_start();
if(!$_SESSION['usuario']) {
    header('Location: index.php');
    exit();
}
?>

E toda pagina que precisara restringir adicione no topo

 

<?php
session_start();
include('verifica_login.php');
?>

 

Espero ter ajudado

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Rodrigo Vieira E da Silva
      Olá a todos do fórum Imasters, tudo bem?
      Minha dúvida é a seguinte:
      Eu tenho alguns páginas que desejo restringir o acesso e quero que somente os assinantes e o administrador possam ver essas páginas.
      Gostaria de fazer isso via código sem a necessidade de ter plugins em meu projeto. Alguém já fez isso ou conhece alguém que possa me ajudar.
      Fico no aguardo de um feedback, referente ao assunto acima.
    • Por lindomar55
      ola amigos preciso de uma ajudinha, estou montando uma aplicaçao usando vb.net windows forms. nela tenho um botao onde chamo uma url no chrome com o seguinte comando.
      Private Sub Btn_abrir_site_Click(sender As Object, e As EventArgs) Handles Btn_abrir_site.Click
              Dim url As String = “https://www.rico.com.você/dashboard/tesouro-direto/“
              Process.Start(url)
          End Sub
      no google entao eu acesso com meu logim manualmente(prefiro assim). e em realizo uma serie de operaçoes, chega um determinado momento que preciso passar passar os dados que o site me apresenta entao(apos as operaçoes) para o aplicativo. ai é que esta o problema. neste ponto estou boiando.
      no codigo abaixo por exemplo: precisava obter os valores 12,36 e 8806,84 de forma automatica e colocar em textbox.
      vi exemplos na net que mostram com webbrowser porem eu prefiro que seja com o chrome. e nesses exemplos ele abre a pagina e ja obtem os dados. eu preciso trabalhar na pagina muiiiito e so depois baixar os dados programaticamente.
      qualquer ajuda sera bem vinda....
       

    • Por PeeWee
      Pessoal, estou precisando de um código que mantenha o usuário logado no sistema, pois o interessante é que assim que ele acessar o site nao precise logar outra vez. Estou utilizando esse código:   $_SESSION['log_me_out_at'] = strtotime(date("Ymd ")."23:59:59");
      aparentemente nao funciona quando subi para o servidor, alguem tem uma dica?
    • Por ment0r
      Boa tarde a todos.
       
      Estou iniciando um projeto para uma empresa em que presto serviço. É relativamente bem simples. Querem um sistema que controle pedidos de compra, estoque e fluxo de caixa. Cenário bem resumido: um funcionário digita o pedido (alimentos), o pedido é aprovado; quando a mercadoria chega outra funcionária da entrada nesses pedidos alimentando o estoque e o valor da compra vai pro financeiro, tudo muito simples.
       
      Meu pedido de sugestão pra vocês é: como faço pra controlar os acessos dos usuários, uma vez que os usuários serão cadastrados por 'categoria', ou seja, o usuário cadastrado com liberação pra pedido, só pode entrar em páginas do pedido; um usuário liberado pra pedido e estoque não pode acessar nada do financeiro e assim por diante.
       
      Qual é a melhor maneira de se fazer isso? Admito que nunca precisei fazer isso antes e conto com a sugestão de vocês para me ajudar nessa. Outra coisa, o sistema vai começar com esses três setores, mas futuramente aumentará, podendo acrescentar atendimentos: fisioterapia, psicologia e etc (é uma escola). Gostaria de já deixar algo preparado em relação à controle de acessos pensando nessa futura melhoria.
       
      Grande abraço e muito obrigado desde já.
       
      Att.
    • Por LucasFalcao
      Seguem as partes dos códigos que esta sendo influenciado pelo meu problema.
      Problema: Ao efetua o login o usuário sera redirecionado a pagina de perfil, mas o que está acontecendo é que la na pagina de perfil o teste de autenticação falha, como se ninguém tivesse logado.
      Acredito que o erro esta sendo esse.
       

×

Informação importante

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