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 Rafael Freitas
      Fala galera!
      Estou travado em uma parte do projeto que estou fazendo, quem puder me ajudar, desde já agradeço.
      Seguinte,  eu tenho alguns dados gravados em uma tabela no banco. Eu recupero estes dados exibindo em uma tabela o nome do parametro "p_descricao" e um checkbox do lado, segue abaixo:
      <?php $max = 200; if(!$pagina){ $pagina = 1; } $inicio = $pagina -1; $inicio = $inicio * $max; $consulta = ("SELECT * FROM parametros WHERE p_tipo_analise='MICROBIOLOGICA'"); $p_id = $_GET["p_id"]; $query = mysql_query("$consulta LIMIT $inicio,$max"); $todos = mysql_query($consulta); $total = mysql_num_rows($todos); $tp = $total / $max; $regLinha = 4; $i = ceil($max / $regLinha); $j = 1; $z = 0; echo " <table width=100% class='tabela_parametros_itens' border=1><tr> "; while($x = mysql_fetch_array($query)){ echo "<td> <input type='checkbox' name='parametro' value='" .$x[p_descricao]."' checked> " .$x[p_id]." - " .$x[p_descricao]."</td>"; $z++; if($z == $regLinha and $j < $i){ echo "</tr><tr>"; $z = 0; $j++; } if($z == $regLinha and $j == $i){ echo "</tr>"; } } echo "</table>"; Eu coloquei checked para todos estarem marcados, até aí tudo certo. O que acontece é que quando eu cadastro, ele só grava no banco, o último registro, ou então se eu desmarco todos e deixo somente 1 marcado, aí ele grava certo.
       
      O que eu queria era gravar todos os registros que estiverem marcados com a checkbox e não só 1.
       
      Conto com a ajuda de vocês.
       
      Abraço.
    • Por nilo7004b
      Ola pessoal, sou novo aqui no fórum e desculpem qualquer erro, já procurei bastante pelo meu problema e não consegui encontrar nada a respeito. O meu problema é que eu estou desenvolvendo uma pagina web e após definir o background como um gradiente e adicionar divs aparecem umas manchas brancas pela pagina que vão alterando de posição a medida em que vai fazendo scroll na pagina, na imagem anexada tem o exemplo, gostaria de saber qual a origem do problema e como resolver. Desde já agradeço pela ajuda.
      Obs.: as DIVs adicionadas não estão com a cor de background definida.
       




    • 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?
×

Informação importante

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