Ir para conteúdo

POWERED BY:

Arquivado

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

Luan Pedro

[Resolvido] Cookies

Recommended Posts

Pessoal,estou aprendendo sobre vaidação de cookies em uma pagina privada,e segue o codigo abaixo:

<?php

if(isset($_COOKIE["nome_usuario"]))
$nome_usuario=$_COOKIE["nome_usuario"];
if(isset($_COOKIE["senha_usuario"]))
$senha_usuario=$_COOKIE["senha_usuario"];
if(!(empty($nome_usuario) OR empty($senha_usuario)))
{
include "conecta_mysql.inc";
$resultado = mysql_query("SELECT * FROM usuarios where username ='$nome_usuario'");
	if(mysql_num_rows($resultado)==1)
	{
		if($senha_usuario != mysql_result($resultado,0,"senha"))
		{
		setcookie("nome_usuario");
		setcookie("senha_usuario");
		echo "Voce nao esta logado!senha";
		exit;
		}
		
	}
	else
	{
		setcookie("nome_usuario");
		setcookie("senha_usuario");
		echo "Voce nao esta logado!";
		exit;
		
	}
}
else
{
	echo "voce nao esta logado!";
	exit;
}
mysql_close($con);
?>
a questao é,quando eu me logo na pagina privada, se eu sair do navegador e abrir a pagina privada sem fazer LOGOFF diz que eu nao estou MAIS logado!mas sendo cookie,eu nao deveria continuar até que eu utiliza-se a opcao de LOGOFF para destruir os cookies???e a outra questao é....

 

com relação a essa linha :

if(!(empty($nome_usuario) OR empty($senha_usuario)))

 

alguem poderia me explica-lá????to me enrolano com ela :huh:

lembrando que to aprendendo cookies com um livro que eu comprei :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, você nao seta tempo de vida para os cookies?

veja:

 

<?php

$value = 'something from somewhere';

 

setcookie("TestCookie", $value);

setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */

setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nb-master muito obrigado!

 

Perfeito ,era exatamente isso que eu nao tinha feito,"colocado tempo de vida nos meus cookies"!

muito obrigado ,valeu mesmo!

 

agora só resta uma pergunta com relação a linha

if(!(empty($nome_usuario) OR empty($senha_usuario)))
o que ela ta me fazeno ???tipo,até onde eu sei empty retorna verdadeiro se a variavel for nula com o OR retornaria uma comparação que retornaria apenas "falso" para o caso das combinações de ambas variaveis fosse de valor diferente de nulo certo (ou seja,exixtindo ambas)?? :D mas ai o que me confundi é aquele sinal de ! ,ele ta fazeno diferente a que ??se retornar verdadeiro ,é se diferente de verdadeiro ???e falso ???entao diferente de falso???nao faz sentido esse meu pensamento...PODERIA entao alguem me explicar essa linha ,que ta me dexano confusso :( Desde já agradeço:D

 

lembrando que esse código eu retirei dum livro,

e entao nao tenho um orientador para me responder essa questao,

e você tem que entender o código ,SEMPRE,só copia nun vira =D

 

Pessoal,

 

Entendi o comando em GROSSO PORTUGUES ela verifica se o valor retornado pela expressao for diferente de verdadeiro ela entra nas condicoes internas caso contrario ela retornou IGUAL a falso ,traduzino ,você NAO ESTA logado!!!

 

agora uma duvida,

na sequencia do código ,como podem perceber,ele faz duas comparaçoes internas

 

if(mysql_num_rows($resultado)==1)
        {
                if($senha_usuario != mysql_result($resultado,0,"senha"))
                {
                setcookie("nome_usuario");
                setcookie("senha_usuario");
                echo "Voce nao esta logado!senha";
                exit;
                }
                
        }
        else
        {
                setcookie("nome_usuario");
                setcookie("senha_usuario");
                echo "Voce nao esta logado!";
                exit;
                
        }
será que seria necessario ??

pois se o

if(!(empty($nome_usuario) OR empty($senha_usuario)))
delas retornasse falso ,é por que as variaveis possuiam valor,mas quando eu vou criar os cookies eu primeiro verifico se as informaçoes sao corretas para ai sim,somente em caso positivo criar os cookies.........então será que presizaria ficar comparano depois c as informaçoes sao verdadeiras nos cookies criados?????nun seria uma certa REDUNDANCIA e perca de tempo????????????????? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, fico feliz em ter ajudado =)

 

Bom vamos a funçao empty, ele vai retornar verdadeiro se a variavel tiver um valor zero "0" ou nulo

 

Tipo

 

<?php

$Var=0;

 

if(empty($Var))

{

echo "VAR é NULA e o IF retorna verdadeiro"

}

?>

 

Bom se pegarmos if(!(empty($nome_usuario) OR empty($senha_usuario))) vamos desmembrar

empty($nome_usuario) OR empty($senha_usuario) - Aqui ele procura por um retorno tem uma disjunção ai

Disjunção (OU)

A disjunção é falsa se, e somente se ambos os operandos forem falsos

 

A B AvB

V V V

V F V

F V V

F F F

 

Ou seja se algum dos valores acima usuário ou senha retornar verdadeiro, o que significa que alguns deles vão estar vazio, ai que entra o "!" para a condição invertendo a saída. pois como pode ver na tabela verdade só é falso quando ambos forem falso ou seja quando estiverem preenchidos, fora isso o ! ajuda a negar a sentença pois a estrutura de condição IF só é executada quando a expressão dentro de () retorna verdadeira.

 

Bom acho que está certo meu pensamento =)

essa disciplina de Matemática lógica é bem chatinha =D tive no semestre passado, mais dicas sobre: http://pt.wikipedia.org/wiki/Tabela_verdade

Para alguns scripts simples em php para iniciadores de uma olhada em meu blog: http://blog.scriptseguro.com.br/ na sessão de PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa ,essa materia de lógica ,era mesmo bem chatinha ,

 

eu costumava dizer que LOGIca era a mais SEm Logica de todas hehe!

 

valeu nb-master por mais esse esclarecimento ,olhei o seu blog e achei show de bola ,parabéns B)

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.