Ir ao conteúdo
  • Cadastre-se

Como Fechar sessão de login PHP?


Posts recomendados

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 :)

Link para o comentário
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
  } 
?>

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

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 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...