Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
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...
Obrigado ESerra e Danilo Mais mesmo explicando não tenho a noçao de como se faz isso :/
Alguem pode ajudar por favor ?
Alguem ajuda ??? nao quero criar outro tópico!
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', '');
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!Vc já conseguiu resolver?
Não, eu expliquei acima oque eu quero fazer
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
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 , ?
Se a "sessão" tem que persistir mesmo com o navegador fechado, use cookies.