Ir para conteúdo

POWERED BY:

Arquivado

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

JonathanH

condicionais só funcionam em localhost

Recommended Posts

Olá, não sei ao certo qual a causa do problema mas vou detalhar o que se passa: são dois arquivos:

 

enviar.php:

<center>
	<form action = "receber.php?vf=1&pagina=linguagem&linguagem=portugues" method = "post">
		<input class = "submit-preto" type = "submit" value = "Português" title = "Português"/>
	</form><br/>
	<form action = "receber.php?vf=1&pagina=linguagem&linguagem=english" method = "post">
		<input class = "submit-preto" type = "submit" value = "English" title = "English"/>
	</form><br/><br/>
</center>

 

receber.php:

<?php
$pagina = urlencode(@$_REQUEST['pagina']);
$validarF = urlencode(@$_REQUEST['vf']);
$tipoalteracao = 0;
if($validarF == 1)
{
	if($pagina == "linguagem")
	{
		$linguagem = urlencode(@$_REQUEST["linguagem"]);
		if($linguagem == "portugues" || $linguagem == "english")
		{
			if(isset($_COOKIE["linguagem"]))
			{
				if($_COOKIE["linguagem"] == $linguagem) $tipoalteracao = 1;
				else
				{
					$tipoalteracao = 2;
					setcookie("linguagem", $linguagem, (time() + 60 * 60 * 24));
				}
			}
			else
			{
				$tipoalteracao = 2;
				setcookie("linguagem", $linguagem, (time() + 60 * 60 * 24));
			}
		}
	}
}

if($tipoalteracao == 1) echo "voce ja selecionou essa linguagem";
else if($tipoalteracao == 2) echo "linguagem alterada com sucesso";
?>

 

O objetivo é simples, caso não tenha o cookie "linguagem" irá salvá-lo com o valor $linguagem. caso tenha o cookie e tenha selecionado a mesma linguagem dele, retorna a mensagem abaixo, caso tenha o cookie a linguagem selecionada pelo formulário seja diferente do valor do cookie, salva um novo com o novo valor.

 

O problema é que na primeira vez que salva o cookie funciona corretamente, mas depois mesmo selecionando outra linguagem ele acusa de o cookie já estar com o mesmo valor.

 

Em localhost (windows 7 home premium) funciona corretamente Mas no host (linux) resulta nesse problema que falei. Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O problema é que na primeira vez que salva o cookie funciona corretamente, mas depois mesmo selecionando outra linguagem ele acusa de o cookie já estar com o mesmo valor.

 


 

 

Analisemos seu script:

 

//se var  pagina = "linguagem"(isso é verdadeiro)
 if($pagina == "linguagem") { 
//var linguagem recebe conteúdo enviado via GET, no caso portugues ou inglês
    $linguagem = urlencode(@$_REQUEST["linguagem"]);
//se var linguagem ="portugues" ou se var linguagem ="ingles" 
      if($linguagem == "portugues" || $linguagem == "english") { 
// nao importa a linguagem, se ja estiver setado o cookie linguagem
//esse trecho sera ignorado na primeira vez que o usuário acessar o site pois ainda
//não há nenhum cookie 
// por isso sua dúvida*

           if(isset($_COOKIE["linguagem"])) {
               //se cookie linguagem="linguagem"
                if($_COOKIE["linguagem"] == $linguagem) 
 //var tipo de alteracao =1;
                   $tipoalteracao = 1;
              
               else { 
         // senao (se o  cookie linguagem <> "linguagem")
         //var tipoaltercao=2;
                  $tipoalteracao = 2;
          //grave o cookie linguagem + var linguagem ...    
                setcookie("linguagem", $linguagem, (time() + 60 * 60 * 24)); } 

              }

           else { 
              $tipoalteracao = 2; 
              setcookie("linguagem", $linguagem, (time() + 60 * 60 * 24)); } 
           }
        }
 

 

Faz um debug do seu code ae.

Obs.

Fiz uma análise com os olhos, quaisquer erro (s) corrijam-me.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu cheguei a fazer para ver se era mesmo nas condicionais, mas depois que já tem uma linguagem selecionada parece que o código simplesmente para de funcionar :upset: (no host linux)

 

<?php
$pagina = urlencode(@$_REQUEST['pagina']);
$validarF = urlencode(@$_REQUEST['vf']);
$linguagem = urlencode(@$_REQUEST["linguagem"]);
$tipoalteracao = 0;
if($validarF == 1)
{
	echo "validando...<br/>";
	if($pagina == "linguagem")
	{	
		echo "PG = linguagem...<br/>";
		if($linguagem == "portugues" || $linguagem == "english")
		{
			echo "linguagem valida...<br/>";
			if(isset($_COOKIE["linguagem"]))
			{
				echo "ja possui cookie: ".$_COOKIE["linguagem"]."<br/>";
				if($_COOKIE["linguagem"] == $linguagem)
				{
					$tipoalteracao = 1;
					echo "mesma linguagem...<br/>";
				}
				else
				{
					$tipoalteracao = 2;
					echo "lingua diferente...<br/>";
				}
			}
			else
			{
				echo "nao possui cookie...<br/>";
				$tipoalteracao = 2;
			}
		}
	}
}

if($tipoalteracao == 1) echo "voce ja selecionou essa linguagem";
else if($tipoalteracao == 2)
{
	setcookie("linguagem", $linguagem, (time() + 60 * 60 * 24));
	echo "linguagem alterada com sucesso";
}
?>

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.