Ir para conteúdo

POWERED BY:

Arquivado

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

serginho_the_best

como fazer o login expirar depois de uma hora?

Recommended Posts

oi, fiz um sistema de login com uma ajuda de us artigos e agora to com uma duvida como posso fazer para esse script expirar depois de uma hora ou seja destruir a sessão ta aqui o script:

 

<?phpsession_start();include "config.php";extract($_POST);if(isset($_SESSION["login"]) || isset($_SESSION["senha"])){	header("Location: index.php");}if(isset($_GET["action"])){	if($_GET["action"] == "login"){		if(isset($username)){			if(empty($username)){				$error[] = "Preencha seu login.";			}		}				if(isset($password)){			if(empty($password)){				$error[] = "Preencha sua senha.";			}		}				if(!isset($error)){			$login = addslashes(htmlentities($username));			$senha = addslashes(htmlentities($password));						$sql = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'");			$num = mysql_num_rows($sql);						if($num>0){				$array = mysql_fetch_array($sql, MYSQL_ASSOC);				$_SESSION["login"] = $array["login"];				$_SESSION["senha"] = $array["senha"];				header("Location: index.php");			}			else {				$error[] = "Usuário incorreto ou senha inválida.";			}		}	}}if(isset($error)){	echo "<ul>\n";	for($i=0;$i<count($error);$i++){		echo "<li>".$error[$i]."</li>\n";	}	echo "</ul>\n";}?><form action="login.php?action=login" method="post">Login:<br /><input type="text" name="username" /><br />Senha:<br /><input type="password" name="password" /><br /><input type="submit" value="Entrar" /></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta mais isso é um script que vou distribuir, por isso quero usar cookie se não em engano faz isso, só não sei como se poder ajudar, fico grato...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por cookie é bem mais fácil :D

 

setcookie("Nome_da_variavel", $valor, time()+3600);

Expira em uma hora

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta amsi como sériasetcookie("Nome_da_variavel", $valor, time()+3600);no $valor é oq Nome_da_variavel é oq também? por favor detalhes

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta.. setcookie("Nome_da_variavel", $valor, time()+3600);

 

o seu cookie seria

$_COOKIE["nome_da_variavel"]; //e isso tem o valor igual a $valor... e expira em 1 hora por causa do time()+3600

 

maiores informações

http://br2.php.net/manual/pt_BR/function.setcookie.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nome_da_variavel = nome que tu vai atribuir a variavel...quando tu chamar o cookie é o nome que vai identificar.$vbalor = valor da variável, o valor que vai retornar quando tu chamar o cookie

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ali no meu formulario seria como

aqui as sessão

$_SESSION["login"] = $array["login"];

$_SESSION["senha"] = $array["senha"];

$_COOKIE["login"] = $array["login"];

$_COOKIE["senha"] = $array["senha"];

setcookie("Nome_da_variavel", $login, time()+3600);

setcookie("Nome_da_variavel", $senha, time()+3600);

assim amis ou menos?

não faço a minima idaei lá no php.net é em ingles darr,...

se algum poder ajudar, fico grato, no aguardo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

setcookie("login", $array['login'], time()+3600);setcookie("senha", $array['senha'], time()+3600);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhando com session você pode usar o : session_cache_expire()

 

<?

/* O prazo para o cache expirar em 60 minutos */

session_cache_expire(60);

 

/* Inicia a sessão */

session_start();

 

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

com cara não to usando cache por isso ainda acho melhor o cookie só que ali não sei se quando enviar a sessão vai ter que enviar um cookie tb já uq algum sistema de login que vi usão apena cookie em vez de sessão pra logar, por isso uqero trabalhar os dos junto o cookie apena para distruir a sessão saco, só que não faço ideia de ocmo ficar, por isso quero ajuda, se algum saber me ajude já postei como é inicial minha sessão, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho... use um ou outro... não tem necessidade se você usando cookie pra fazer o login usar a sessão pra mesma coisa...

 

1º você define os cookies igual o entchucs mostrou

 

setcookie("login", $array['login'], time()+3600); //isso define o cookie $_COOKIE["login"], tendo ele o valor $array["login"] e expira em 1 hora

setcookie("senha", $array['senha'], time()+3600);

 

.. daí quando você for verificar você os verifica como cookie

$_COOKIE["login"];

$_COOKIE["senha"];

 

só isso, não tem segredo...

 

e se você fizer um pouco de esforço pra pesquisar você vai ver que no php.net tem a documentação em português

 

http://br2.php.net/manual/pt_BR/function.setcookie.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

setcookie("$login", $array['login'], time()+3600);setcookie("$senha", $array['senha'], time()+3600);será qu evai rodar tb assim ou tem que criar igual um session?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e pra distruir o cookie onde seriaif(isset($_GET["logout"])){ session_unset(); session_destroy(); header("Location: login.php");}na session?e ontra não ta entrado

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você for usar cookie o setcookie roda.... so num roda pra session pq vai ser um cookie e naum uma session....

 

para dar logout com cookie você pode colocar no cookie um valor nulo... de qualquer forma, em 1 hora ele expira mesmo (no exemplo citado acima) intaum sem problemas...

 

OBS: o seu setcookie ta errado.... você não pode definir o nome dele usando $...

 

setcookie("$login","valor",time()+3600); //está errado

 

o certo seria

 

setcookie("login","valor",time()+3600); //está certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta fiz assim

login.php

if($num>0){

$array = mysql_fetch_array($sql, MYSQL_ASSOC);

setcookie("login", $array["login"], time()+3600);

setcookie("senha", $array["senha"], time()+3600);

header("Location: index.php");

}

protegido.php

if(isset($_COOKIE["login"]) || isset($_COOKIE["senha"])){

$login = $_COOKIE["login"];

$senha = $_COOKIE["senha"];

 

$sql = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'");

}

else{

header("Location: login.php");

}

e agora quero fazer a logout.php, caso o cara queria ir lá e clicar sair como faço isso?

 

nulo seria como assim:

 

setcookie("login");

setcookie("senha");

header("Location: login.php");?????????????????????????

Compartilhar este post


Link para o post
Compartilhar em outros sites

$_COOKIE["login"] = NULL;$_COOKIE["senha"] = NULL;daí na hora que ele for testar o login e senha serão invalidos...e você pode fazer a verificação no seu script do caso deles serem NULL já colocar status como não logado...

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.