Ir ao conteúdo
  • Cadastre-se
Thaynara H. Do Amaral

Como Fechar sessão de login PHP?

Recommended Posts

Olá , estou desenvolvendo um sistema de CRUD , o problema é que na hora de logar esta indo perfeitamente , quando ele loga vai direto para a página do ADM , quando vou para fazer logout ele sai normal , porém se eu clicar na seta do navegador  para voltar, ele retorna normalmente na parte administrativa sem pedir senha e usuário. Será que tem algum código que possa resolver? Segue o código da página de logout :

 

<?php
    session_start();
    $_SESSION = array();
    session_destroy();
    header("Location: index.html");
?>

 

Desde já agradeço :)

Editado por DiF
Botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Thaynara H. Do Amaral

Se o que quer é , que verifique se existe uma sessao para poder acessar a pagina pode usar um if como no exemplo :

<?php
  session_start();
  if(isset($_SESSION['sessao']))	//verifica se sessao foi setada
  {

  }else{															

      header("location:index.html"); //se nao foi então manda para index.html
  } 
?>

 

Editado por luscas
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, é quase isso. Só está faltando umas partes importantes na pagina administrativa.

 

Segue um modelo de como uso o autenticador do crud e como redirecionar para o login se sair e se clicar no botão de voltar, ele manda para a página de login de novo.

 

ValidaUsuario.php

?php
session_start();
	
	$login = $_POST["login"];
	$senha = $_POST["senha"];
	$login_escape = addslashes($login);
	$senha_escape = addslashes($senha);
	
	
	if (empty($login) or empty($senha)) :
                  echo "<script>
                                alert('Preencha todos os campos');
                                history.go(-1);
                          </script>";
                  exit;    
              endif;
	
	
	include '../conexao/conexao.php';
	
	$sql = "SELECT idAdmin, nome ,login, senha, ultimoacesso FROM admin WHERE login ='$login_escape' AND senha = '$senha_escape' ";
	$dados = mysqli_query($conecta, $sql);
	$num = mysqli_num_rows($dados);
	
	if ($num == 0):
	         echo "<script>
	         alert('Usuario ou senha Incorreta');
	         history.go(-1);
	          </script>";
	    exit;
	else :
		
		while($admin = mysqli_fetch_object($dados)):
			$coduser = $admin->idAdmin;
			$nome    = $admin->nome;
			$ultimoacesso = $admin->ultimoacesso; 
		
			
		$_SESSION["codusuario"] = $coduser;
		$_SESSION["nome"] = $nome;
		$_SESSION["login"] = $login;
		$_SESSION['ultimoacesso'] = $ultimoacesso;
		
		
		header ("Location: view/admin.php");
		endwhile;	
	endif;
 	 mysqli_close($conecta);
?>

Este código do validaUsuario.php é aquele arquivo que fica no action do formulário de login

 

Por exemplo:

 

<form method="post" action="validaUsuario.php">
     <input type="text" name="email" />
     <input type="password" name="senha" />
     <input type="submit" value="Entrar"/>
</form>  

Depois de ter feito isso, armazenado na session o nome de usuario,  login, ID do usuário... 

Você coloca o seguinte trecho bem no início do seu php do arquivo PaginAadmin.php

 

<?php 
session_start();
	setcookie("ck_authorized", "true", 0, "/");
	date_default_timezone_set("Brazil/East");
	
  //testa a sessão.  envia para o index.html(formulario de login)
  //se não existir valor na sessão de login 
	if(!isset($_SESSION["login"])):
		header("location: ../index.html"); 
	else:
		$login = $_SESSION["login"];	
		$ultimo = $_SESSION['ultimoacesso'];
		$idAdmin = $_SESSION["codusuario"];
		$nome = $_SESSION["nome"];
		
	require '../../conexao/conexao.php';	
	
      /*esta parte é desnecessária
          mas vou deixar, pois mostra com seria
          a parte de gravar sempre o ultimo acesso no sistema
       */
		$data = date('Y-m-d H:i:s'); 
		$sqldata = "UPDATE admin SET ultimoacesso= '$data' WHERE idAdmin='$idAdmin'";
		$dados = mysqli_query($sqldata);	
		
		$separaData = explode(" ", $ultimo);
		$dataNova = $separaData[0];
		$hora = $separaData[1];
	endif;
?>

Este bloco é importante porque ele testa se existe valor na variável de sessão.  Se não existir(deslogado) , mesmo se tentar entrar direto na página restrita ela te envia de volta para o login . por isso que ela é importante que fique como primeira coisa no arquivo página_restrita.php 

Editado por DiF
  • Curtir 1

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





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×