Jump to content


Photo

Expirar Session!


  • Faça o login para participar
1 reply to this topic

#1 GmEnDeS

GmEnDeS

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 26/11/2009, 16:33

Boa tarde, ilustres.

Gostaria de uma ajuda de como posso fazer essa session que valida e verifica os arquivos do meu painel de controle. EU tentei um session.gc_maxlifetime mas não adiantou nada, o tempo de expiração que eu queria era de 600 segundos como consta o arquivo abaixo. Alguém pode fazer as devidas alterações para que essa session incluida nos arquivos do painel faça expirar automaticamente? Obrigado.

<?php
@session_start();

ini_set("session.gc_maxlifetime", "600"); 

include "../../config/config_sistema.php";

if(isset($_SESSION['user']) and isset($_SESSION['password'])) {
	$user = $_SESSION['user'];
	$password = $_SESSION['password'];
} else {
	$erro = urlencode("Você não esta logado!");
	header("Location: ../index.php");
	exit;
}

} else {

if(!(empty($user) or empty($password))) {
	$consulta = mysql_query("select * from tabela where Login = '$user'");
	if(mysql_num_rows($consulta) == 1) {
		if($password != mysql_result($consulta,0,"Senha")) {
			unset($_SESSION['user']);
			unset($_SESSION['password']);
			
			$erro = urlencode("Você não esta logado!");
			header("Location: ../index.php");
			exit;
		}
	} else {
		unset($_SESSION['user']);
		unset($_SESSION['password']);
		
		$erro = urlencode("Você não esta logado!");
		header("Location: ../index.php");
		exit;
	}
} else {
	$erro = urlencode("Você não esta logado!");
	header("Location: ../index.php");
	exit;
}
}
mysql_close($conn);
?>


#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 26/11/2009, 16:51

Acredito que a melhor solução para você implementar isto, já que parece não ter permissão para alterar esta diretiva do PHP, é você incluindo a data de criação desta sessão e fazer uma condição para verificar esta data e conforme for, excluí-la.

Algo assim:

if (!isset($_SESSION['DATA_CRIACAO'])) {
    $_SESSION['DATA_CRIACAO'] = time();
} else if (time() - $_SESSION['DATA_CRIACAO'] > 1800) {
    // Destrói a sessão caso tenha sido iniciada a mais de 30 minutos
    session_destroy();
    session_unset();
}

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq