Ir para conteúdo

POWERED BY:

Arquivado

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

Perfect Lion

Login com Cookies

Recommended Posts

Fala galera tudo certo?

 

Bem vou postar um script que criei esses dias e achei legal.. login com cookies isso é bom para você que quer criar um sistema onde o kra quando entrar novamente em sua pagina ele já entre logado ;) diferente de sessions que ao fechar o navegador ele exclui a sessão ;)

 

Bem eu criei aqui da seguinte maneira. quando você tentar acessar algum link e você não tiver logado vai aparecer o formulario para login assim que você fazer o login ele vai volta para a mesma pagina que você estava ;) show né

 

Bem lá vai

 

proteger.php

<?if($_REQUEST){ foreach($_REQUEST as $chave => $valor){$$chave = $valor;} } # recupera valores de post, get e cookies$expira = 30; # aqui é contado como minutos então nessa caso temos 30 minutosif(isset($deslog)){ # verifica se a variavel deslog existe se sim faça	$_COOKIE = array(); # elemina todos os cookies da pagina	setcookie("login","", time() - 1); # exclui o cookie}# função retirada do Fabyo;)# :::::::::::::::::::::::::::::::::::::::::function anti_sql($txt){	$txt = get_magic_quotes_gpc() == 0 ? addslashes($txt) : $txt;	return preg_replace("@(--|\#|\*|;|=)@s", "", $txt); }# ::::::::::::::::::::::::::::::::::::::::::function logar($user,$pass){		$sql = mysql_query("select * from usuario where upper(usuario) = '".strtoupper($user)."' and senha = md5('$pass')"); # verifico se há algum usuario e a senha no banco de dados		if(mysql_num_rows($sql) > 0){ # se me retorna maior que 0 quer dizer que existe		 return mysql_fetch_array($sql); # aproveita para retorna os dados do usuario como nome ... tec..		}else{		 return false; # dados invalidos		}}if(empty($login)){ # se o cookeie for vazio faça		$usuario = anti_sql($usuario); # tira mals intenções dos fulanos		$senha = anti_sql($senha); # tira mals intenções de fulanos		$user["dados"] = logar($usuario,$senha); # envia os dados para a função responsavel de fazer as verificações no bando de dados		if($user["dados"]){ # caso retorne verdadeido			$logado = true; # atribuo a variavel $logado como verdadeiro			setcookie("login", serialize(array("usuario" => $usuario, "senha" => $senha)), time() + (60 * $expira)); # cria a sessão		}else{			$logado = false; # caso retorne false atribui o valor false para a variavel		}	}else{ # caso a sessão não seja vazio faça	 $info["login"] = unserialize(stripslashes($login)); # recupera dados do cookie	 $info["login"]["usuario"] = anti_sql($info["login"]["usuario"]); # tira mals intenções dos fulanos 	 $info["login"]["senha"] = anti_sql($info["login"]["senha"]); # tira mals intenções dos fulanos	 $user["dados"] = logar($info["login"]["usuario"],$info["login"]["senha"]); # envia os dados para a função responsavel de fazer as verificações no bando de dados	 if($user["dados"]){ # caso retorne verdadeido	 	$logado = true; # atribuo a variavel $logado como verdadeiro		setcookie("login", serialize(array("usuario" => $info["login"]["usuario"], "senha" => $info["login"]["senha"])), time() + (60 * $expira)); # renoca a sessão caso o kra esteja ativo.	 }else{		$logado = false; # caso retorne false atribui o valor false para a variavel	 }	}if(!$logado){ # caso a variavel logado retorna falso faça require("logar.php"); # inclue o logar.php exit; # para a execução aqui.}?>

logar.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Logar</title></head><style type="text/css"> /* Login */#login #formulario{	width: 400px;	background: #F1F3F5;	border: 1px solid #CCCCCC;	position: relative;	margin: 0 50% 0 -200px;	top: 50px;	left: 50%;	padding: 10px;	clear: both;}#login #formulario #esquerdo{	float:left;	width: 150px;	text-align:center;}#login #formulario #esquerdo h1{	font: 10px Arial, Helvetica, sans-serif;	text-align: left;	color:#666666;}#login #formulario p{	margin: 10px 0 0 0;}#login #formulario #direito h1{	color: #009933;	font-family: Arial, Helvetica, sans-serif;	font-size: 20px;}#login #formulario #direito h2{	font: bold 11px Arial, Helvetica, sans-serif;	color: #666666;	padding: 10px;	background-color: #E3E4E6;	border: 1px solid #CCCCCC;	margin: 10px 0 0 152px;}#login #formulario #direito h2 input{	font: 12px Arial, Helvetica, sans-serif;	color:#666666;	border: 1px solid #CCCCCC;}#login #formulario #direito h2 #enviar{	font: 12px Arial, Helvetica, sans-serif;	color:#666666;	background-color: #E6E6E6;	border: 1px solid #CCCCCC;}/* Fim login */</style><body><div id="login">	<div id="formulario"> 		<form action="" method="post" name="login">			  <div id="esquerdo">   				<h1>					Bem-vindo ao Painel de Controle!<p />					Digite seu nome de usuário e senha para acessar o painel administrativo.   				</h1>			  </div>			  <div id="direito">		   		<h1>Login</h1>   				<h2>					Nome do úsuario:<br />					<input name="usuario" id="usuario" type="text" value="" /><p />					Senha:<br />					<input name="senha" id="senha" type="password" /><p />					<input id="enviar" name="Enviar" value="Enviar" type="submit">   				</h2>			  </div> 		</form>	</div></div></body></html>

Ai só adicionar no começo dos arquivos que você quer proteger o seguinte comando..

 

<?include("proteger.php");?>

E pronto funfando

 

Espero que seja util para a galera ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa tinha uma var errada no meio do codigo já alterei no primeiro post

 

o erro estava aqui

 

if($_REQUEST){ foreach($_REQUEST as $chave => $valo){$$chave = $valor;} } # recupera valores de post, get e cookies

tava faltando um "r" no final do valor

 

correto

if($_REQUEST){ foreach($_REQUEST as $chave => $valor){$$chave = $valor;} } # recupera valores de post, get e cookies

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu to com mta dificuldade em aprender php, pq quando da erro ele simplesmente nao compila :(Creio que no seu codigo ai falta a conexao com o banco ne? os dados e etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta.. eu esqueci de postar vou ver se acho aqui o banco que eu estava usando e o arquivo que conecta ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas...É verdade no código dele ta faltando conectar-se com o Database (banco de ados) ;) Priemeiramente gostaria de me apresentar... muito prazer em fazer parte desse família do Imasters.To com grandes problemas em relçao a sistemas de login, quero implementar um em um site que to fazendo, porém não consegui ainda, alguem ai pode me ajudar...? como restringir uma determinada página, se alguem digitar a URL dela pelo broswer, cair na página de login.... se poderem me ajudar ficarei grato.Atenciosamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o script é interessante, consegui fazer funcionar aqui normalmente... mas o problema é que, toda vez que faço alguma coisa no painel de admin, acesso um link ou coisa do tipo, ele "desloga"... creio que possa ser algum problema em relação aos cookies, mas minha sabedoria quanto à cookies não é lá grande coisa... hehese puderem ajudar ;)amplexus...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No banco tem so os campos usuario e senha?

 

 

Na página logar.php qual o form action?

 

<form action="" method="post" name="login">			  <div id="esquerdo">				   <h1>					Bem-vindo ao Painel de Controle!<p />					Digite seu nome de usuário e senha para acessar o painel administrativo.				   </h1>			  </div>			  <div id="direito">				   <h1>Login</h1>				   <h2>					Nome do úsuario:<br />					<input name="usuario" id="usuario" type="text" value="" /><p />					Senha:<br />					<input name="senha" id="senha" type="password" /><p />					<input id="enviar" name="Enviar" value="Enviar" type="submit">				   </h2>			  </div>		</form>

E como eu faço a conexão com o banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Super_zica_mennesse script o action dele é pra página que você tentou acessar antes. o que ele faz. quando você colocar o user e a senha e clica em logar .a pagina por padrão da o refresh. no arquivo proteger ele verifica se está vindo alguma coisa do form estando ele chama a função e faz a autenticação ou não. bem enquanto a tabela. sim você tem o campo usuário e senha ou o campo que você preferir para efetuar o login. enquando fazer a conexão bem é a conexão simples. mysql_connect("host", "user", "senha")mysql_select_db("tabela", parametro de conexão);espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse script usa outro script?Tá parecendo que tá faltando muita coisa aí.É pra usar junto com o do Fabyo?Putz, tá realmente difícil de encontrar um completo na web.De qualquer forma, valeu a iniciativa. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

POw caras...

To muito afim de ver um desses realmente funfando!

Os que se logão por session eu tava dando uma olhada e

achei mais facil de entender...

 

Mas o que eu realmente to precisando é um script

desse que loga por cookies!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comigo funcionou sem problemas, só tem que fazer uma tabela para o usuario (usuario, senha) e a conecção com o bd http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá,

aqui funcionou o codigo sim (colocando a conecção com o banco de dados). o sistema eh mto bom parabens!!

 

notei q faltou uma pagina para "sair", fiz uma aqui parece q deu certo. fiz assim:

 

sair.php

<?
setcookie("login","",time()-3600);
header("Location: index.php");
?>

acredito q assim funcione, pelo menos nos meus testes funcionou. mas se alguem notar algum erro posta ai!!!

 

vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá,

aqui funcionou o codigo sim (colocando a conecção com o banco de dados). o sistema eh mto bom parabens!!

 

notei q faltou uma pagina para "sair", fiz uma aqui parece q deu certo. fiz assim:

 

sair.php

 

<?

setcookie("login","",time()-3600);

header("Location: index.php");

?>

creio q seja isso a funçao de sair.. axo q você nao viu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

if(isset($deslog)){ # verifica se a variavel deslog existe se sim faça
        $_COOKIE = array(); # elimina todos os cookies da pagina
        setcookie("login","", time() - 1); # exclui o cookie
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal,

Não estou conseguindo usar este código, alguém poderia me dar um help?

Seguinte, criei o banco com id, usuario e senha, nome da tabela eu deixei como login. (resumindo, a conexão eu tb fiz, e esta conectando certinho)

Mas esta dando um erro no mysql_num_rows quando tento logar. Segue o erro.

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\ilc\proteger.php on line 25

 

a linha 25 é esta:

 

if(mysql_num_rows($sql) > 0){

Alguém pode me ajudar? Estou usando wampserver com php5

 

Abç

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.