Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Landerson Almeida

Manter usuario Logado com Sessão

Recommended Posts

Olá estou terminando uma Mini rede Social o Poblema é que não consigo manter o Usuario logado Mesmo se ele fechar e abrir o Browser , Já Pesquisei mais não achei Nenhum resultados que da certo estou com Muitas Dificuldades, Se alguem podera ajudar Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a "sessão" tem que persistir mesmo com o navegador fechado, use cookies.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você usa o cookies e restaura sua session, porem servidores de Hospedagem normais destroem as sessions depois de 20 min ai você deveria usar algo com Banco de Dados e Cookies para manter o cara logado mesmo apos fechar o navegador ... mas lembre de fazer esse recurso como Opcional ... como em "outlook.com" onde você tem que escolher mater-se logado, para não dar problemas em computadores Públicos Lans, faculdades, etc.

 

Cria uma tabela com IP, um código aleatório, idUsuario. no cookie e verifica no banco se existe essa combinação ... caso exista você loga o cara automaticamente, caso não redireciona pra tela de login, não esqueça de destruir o cookies ao deslogar o cara já vi sites que me relogavam depois de deslogar por causa desse recurso mal implementado.

 

É basicamente isso .. qualquer duvida é só Gritar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca trabalhei com o uso de cookies, mas como você pode ver no próprio manual, é simples:

 

Criando um cookie:

setcookie('nome', 'Marcelo');

setcookie('nome', 'Marcelo', time()+3600);  //expirará em 1 hora

* Essa foi a maneira mais simples, mas há mais parâmetros opcionais na função, dê uma consultada no manual de qualquer forma.

 

 

Para recuperar o cookie você pode usar a superglobal $_COOKIE:

echo $_COOKIE['nome']; //saída: Marcelo

 

Verificar se o cookie existe:

if (isset($_COOKIE['nome'])) {
    ...
}

 

Remover o cookie (limpar o valor do navegador do cliente):

setcookie('nome', '');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá tenho uma funçao de proteger a pagina

function protegePagina() {

if (!isset($_SESSION['id']) OR !isset($_SESSION['nome'])) {
// Não há usuário logado, manda pra página de login
expulsaVisitante();
} else if (!isset($_SESSION['id']) OR !isset($_SESSION['nome'])) {
// Há usuário logado, verifica se precisa validar o login novamente
if ($_SG['validaSempre'] == true) {
// Verifica se os dados salvos na sessão batem com os dados do banco de dados
if (!validaUsuario($_SESSION['usuario'], $_SESSION['senha'])) {
if (!validaUsuario($_SESSION['nivel_usuario'], $_SESSION['nivel_usuario'])) {
// Os dados não batem, manda pra tela de login
expulsaVisitante();
}
}
}
}
}

Tenho uma Pagina que verifica os Dados e cria as sessão/cookies

			$_SESSION['id'] = $id;
			$_SESSION['nome'] = $nome;
			$_SESSION['sobrenome'] = $sobrenome;
			$_SESSION['email'] = $email;
			$_SESSION['senha'] = $senhacrip;
			$_SESSION['usuario'] = $usuario;
			$_SESSION['nome_imagem'] = $nome_imagem;
			$_SESSION['nivel_usuario'] = $nivel_usuario;
			$_SESSION['data_ultimo_login'] = $data_ultimo_login;
			setcookie('id', $id);
			setcookie('nome', $nome, time()+3600);  //expirará em 1 hora
			setcookie('sobrenome', $sobrenome, time()+3600);  //expirará em 1 hora
			setcookie('senha', $senhacrip, time()+3600);  //expirará em 1 hora
			mysql_query("UPDATE usuarios SET data_ultimo_login = now() WHERE id ='{$id}'");

e Tenho uma Pagina de Logout

<?php

session_start();

if(!isset($_REQUEST['logmeout'])){

	echo "Voce realmente deseja sair do Painel?<br />";
	echo "<a href=\"logout.php?logmeout\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";
exit();
}
else{

	session_destroy();
	session_unset(); //limpamos as variaveis globais das sessões
	setcookie('id', '');
	setcookie('nome', '');
	setcookie('sobrenome', '');
		$redirt = "formulario_login.html";
         	header("Location: $redirt");
	}

?>

Mais não estou conseguindo fazer com que o Usuario permaneça logado com os Cookies,da erro fala que o servidor esta redirecionando incorreto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po coloca um campo no banco: "auto-logar":

e outro "deslogado":

 

Se o campo auto logar estiver "sim", e o campo deslogado estiver "nao"

 

pra ele executar a funcao de login pro mlk do cookie de tres horas que tu criou ai

 

se nao tiver mais cookie nada vai acontece

 

se tiver e cair nessa regra... fexo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa ideia sera que eu Posso fazer assim:

Crio tudo que vc falou e tals e se o usuario nao clicar em sair e fechar o navegador o cookie ja esta salvo e se eu buscar no BD se o usuario estiver logado eu crio as sessions com os dados do cookie verifico se existe no banco de dados e redireciono pra pagina e quando ele clikar em sair ele da um update no BD para deslogado/sim e limpa os cookies e as sessions , ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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