Ir para conteúdo

Arquivado

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

MathBR

sistema de login "eterno"

Recommended Posts

Fala galera estou tentando fazer meu sistema de login meio que "etreno" (qdo o cara fechar o browser e abrir outro ao entrar no site de novo ele pege o valor do SESSIOn ID e ja logue o cara automaticamente)mas não to consseguindoalguem me da uma luz?

			session_start("loginc");			$_SESSION[user] = $auth_user;			$_SESSION[name] = $campo['nome'];			$_SESSION[setor] = $campo['setor'];			$_SESSION[level] = $campo['level'];									setcookie("loginc",session_id(),time()+33600,'/');

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. Insira aspas nos índices dos arrays. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

2. Salve no cookie o array com os dados usando serialize(). Para resgatar o array, use unserialize().

Veja este tutorial:

http://forum.idone.com.br/index.php?showtopic=992

 

Crie um arquivo de auto login que verifique os dados do cookie, comparando-os com os salvos no BD, para manter a segurança do sistema. ;)

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo Beraldo deixa eu ver se entendino meu caso agora pego todos os dados crio num só array e insiro no cookie com o serialize() e pra pegar o valor ja tem um bom exemplo seu no link que você postou, agora em relação a session como tem como eu pegar o valor da SID (que estaria gravada no cookie) e ja renovar a sessão? ou eu tem que a cada nova página fazer um novo setcookie (além de testar no DB os dados do login por segurança como você mencionou), o que eu não entendo é justamente como manter a sessãoobrigado pela ajuda ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo necessidade de salvar o ID da sessão no cookie. Recomendo fazer o seguinte: crie um arquivo (auto_login.php, por exemplo) que verifica a existência do cookie. Se existir, valida os dados contidos nele.

setcookie() deve ser chamado somente na hora do login, salvo nos casos de alteração de dados como usuário ou senha, daí é necessário atualizar o cookie.

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que ja saquei olha como esta meu codigo:

**************************** ESSA E A PAGINA ONDE O CARA FAZ O LOGIN// Compara no DB WHERE login=login digitado AND senha = senha digitadaif ( $num != 0 ) { 		// Se linhas não for zero = dados digitados corretos login verdadeiro!			$campo = mysql_fetch_array($login_result);					//Registra sessão			session_start("login_data");			$_SESSION[user] = $auth_user;			$_SESSION[name] = $campo['nome'];			$_SESSION[setor] = $campo['setor'];			$_SESSION[level] = $campo['level'];						$login_data['login'] = $auth_user;			$login_data['pass'] = $auth_pw;						setcookie("login_data", serialize($login_data), time() + 86400, "/");************************************ AGORA ESTA TESTA NAS PAGINAS SE O COOKIE ESTA ATIVOif (isset($_COOKIE["login_data"])){    $login_data = (!get_magic_quotes_gpc()) ?                              unserialize($_COOKIE['login_data']) : stripslashes(unserialize($_COOKIE['login_data']));//////// AKI e que eu não sei o que fazerpelo que eu andei lendo nos tutoriais ficaria assim:                          session_start("login_data");  // e preciso definir um nome para a sessão?			$user = $_SESSION[user];			$name = $_SESSION[name];			$setor = $_SESSION[setor];			$level = $_SESSION[level] ;  // isso ta certo eu tenho que setar novamente?								}else { echo "Voce precisa logar"; }			// do jeito que ta se o cara fecha o browser e abrir daqui a 30min ele ainda vai estar logado? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use $login_data para definir os valores das variáveis de sessão. Ao resgatá-la com unserialize(), ela vira um array, como era antes de ser inserida no cookie. ;)

 

E insira as aspas nos índices de $_SESSION: $_SESSION['level']. Isso evita E_NOTICE's.

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.