Carcleo 4 Denunciar post Postado Junho 9, 2016 Pessoal, boa tarde! Estou com o seguinte código: if (!isset($_SESSION["cliente"]["idCliente"])) { echo 10; echo "<script>location.href='login.php'</script>"; } else if (!isset($_SESSION["carrinho"])) { echo 20; echo "<script>location.href='index.php'</script>"; } else if (empty($_SESSION["carrinho"])) { echo 30; echo "<script>location.href='index.php'</script>"; } else { echo 40; unset($_SESSION["carrinho"]); print "<pre>"; //print_r($_POST); //print_r($_GET); print_r($_SESSION); } Ele verifica, if (!isset($_SESSION["cliente"]["idCliente"])) OK passa if (!isset($_SESSION["carrinho"])) OK passa if (empty($_SESSION["carrinho"])) OK passa imprime 40 Então cai no bloco do else e executa unset($_SESSION["carrinho"]); O problema é depois que executa o unset($_SESSION["carrinho"]);, parece que ele volta e entra no primeiro if como se fosse um loop e imprime 20. Onde esta o problema? O mais intrigante é que esse 20 só é impresso no código fonte quando fazemos Ctrl+U e também é impresso o location. Só não redirecioa. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Junho 9, 2016 Na maioria dos navegadores, o CTRL + U recarrega a página somente para exibir o código fonte, por isso você tem um resultado diferente. Somente em dois lugares você conseguirá o "código fonte atual" (pelo menos aonde eu já encontrei). No inspecionar elemento (firebug, chrome, etc...) ou no linux (firefox/iceweasel possuem esse comportamento). Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 9, 2016 Parece que é isso mesmo. Pois todas as páginas que não deu esse problema é que um refresh não mudaria o resultado ou não tinha sido disparado nenhum form via post. Mas nessa página em especial deu esse erro, Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites