JonathanH 0 Denunciar post Postado Março 18, 2013 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
Marcos Xavier 189 Denunciar post Postado Março 18, 2013 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
JonathanH 0 Denunciar post Postado Março 18, 2013 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