Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Problema com cookies no Firefox 4.0.1
20-05-2011, 03:42
Mensagem: #11
RE: Problema com cookies no Firefox 4.0.1
Código PHP:
<?php
$num1 
rand(120);
$num2 rand(14);

$resultado $num1 $num2;
setcookie("Contactos"$resultadotime()+600"/");


header("Content-Type: image/png");
$im = @imagecreate(5020)
    or die(
"Não foi possível criar a imagem.");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im212182110);
imagestring($im355,  $num1 " + " $num2$text_color);
imagepng($im);
imagedestroy($im);

?>

Como pode ver, este é o código completo do ficheiro que faz o random dos 2 números, faz a soma destes, cria o cookie com esse resultado e por fim cria a imagem com o $num1 e $num2 que em cima foram definidos.

Segundo este código não acho que as variáveis possam assumir diversos valores numa execução, pois não existem ciclos nem várias chamadas de variáveis.

Se por acaso achar algum problema neste código ficaria-lhe muito grato, pois eu já o fiz de 1001 formas e o resultado foi sempre igual... O problema é que, como já disse, isto funciona em diversos browser's, e, inclusive no Firefox 4.0.1 também funciona (excepto no meu e no de mais algumas pessoas como eu), o que realmente não acho lógico e ainda me confunde mais a resolução do problema. Eu sei que o PHP nada tem a ver com o browser, mas segundo o que lhe expliquei até aqui, como poderei eu emendar algo que está visivelmente bem?

Testou no seu computador? Obrigado.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
20-05-2011, 23:14 (Esta mensagem foi modificada pela última vez a: 21-05-2011 01:42 por Mettafox.)
Mensagem: #12
RE: Problema com cookies no Firefox 4.0.1
(20-05-2011 03:42)gelll Escreveu:  
Código PHP:
<?php
$num1 
rand(120);
$num2 rand(14);

$resultado $num1 $num2;
setcookie("Contactos"$resultadotime()+600"/");


header("Content-Type: image/png");
$im = @imagecreate(5020)
    or die(
"Não foi possível criar a imagem.");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im212182110);
imagestring($im355,  $num1 " + " $num2$text_color);
imagepng($im);
imagedestroy($im);

?>

Como pode ver, este é o código completo do ficheiro que faz o random dos 2 números, faz a soma destes, cria o cookie com esse resultado e por fim cria a imagem com o $num1 e $num2 que em cima foram definidos.

Segundo este código não acho que as variáveis possam assumir diversos valores numa execução, pois não existem ciclos nem várias chamadas de variáveis.

Se por acaso achar algum problema neste código ficaria-lhe muito grato, pois eu já o fiz de 1001 formas e o resultado foi sempre igual... O problema é que, como já disse, isto funciona em diversos browser's, e, inclusive no Firefox 4.0.1 também funciona (excepto no meu e no de mais algumas pessoas como eu), o que realmente não acho lógico e ainda me confunde mais a resolução do problema. Eu sei que o PHP nada tem a ver com o browser, mas segundo o que lhe expliquei até aqui, como poderei eu emendar algo que está visivelmente bem?

Testou no seu computador? Obrigado.

Resolvi o teu problema, em vez de criares um cookie com o resultado cria uma sessão, este é o meu exemplo, adapta ao teu:

Código PHP:
session_start();
header("Content-Type: image/png");

$num1=rand(120);
$num2=rand(120);

$resultado=$num1+$num2;

$_SESSION["resultado"]=$resultado// Cria uma sessão com o resultado

$nwImagem=imagecreate(5020);
$corFundo=imagecolorallocate($nwImagem000); // Fundo Preto
$corTexto=imagecolorallocate($nwImagem255255255); // Texto em Branco
    
imagestring($nwImagem243$num1." + ".$num2$corTexto); // Prepara a imagem com as opções
    
imagepng($nwImagem); // Cria a imagem em tipo PNG
    
imagedestroy($nwImagem); // Destrói a imagem



/* Quando já não precisares da sessão, destróis-a assim: unset($_SESSION["resultado"]) */ 


Testado e comprovado.


[Imagem: ZQGcc.png]
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
22-05-2011, 12:15
Mensagem: #13
RE: Problema com cookies no Firefox 4.0.1
Experimenta ver se tens algum plugin no FF 4.0.1 que esteja a usar a mesma variável, experimenta desativar todos os plugins. Testa assim com o FF cru a ver se te dá o mesmo problema. Porque é estranho dar nuns computadores e noutros não, tal como referi, tanto em Linux como em Windows consegui ter os resultados certos. Em Windows apenas tenho os seguintes plugins instalados: NoScript e o plugin do Avast!

Outra sugestão, experimenta carregar o segundo link que colocas-te (o do resultado) sem carregares a primeira página e com o cookies limpos no teu FF 4.0.1, em princípio não deveria aparecer qualquer valor, eu já o fiz aqui neste pc! Se te aparecer algum valor, então tens a garantia que algo no teu FF está a usar uma variável igual à tua.

Cumps.

wolfytuga
Para o que der e vier...
emachines E520 | Intel Celeron 2.0GHz | 32/64bit | RAM 2GB | HD 160GB | Intel Mobile 4 Express, 64MB → 1GB
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
22-05-2011, 14:33 (Esta mensagem foi modificada pela última vez a: 22-05-2011 14:33 por gelll.)
Mensagem: #14
RE: Problema com cookies no Firefox 4.0.1
Wolfytuga - Obrigado pelas sugestões, fui testar segundo elas e mesmo assim não funciona, o problema é sempre igual. Quando não executo a primeira página o resultado do cookie é vazio, mas quando executo retirando antes todos os plugins dá a mesma barraca Sad

Mettafox- Realmente é uma boa ideia (e mais segura) utilizar sessões em vez de cookies. No entanto como tenho algumas dificuldades com sessões estou com um problema:
O ficheiro: http://www.alojamentoilimitado.com/teste...tactos.php tenho exactamente como o fizes-te e funciona bem.
Mas no ficheiro: http://www.alojamentoilimitado.com/teste...rmacao.php aparece aquele aviso na página sobre os headers... o que estará mal? O resultado já me dá bem, como se pode ver, mas gostaria de retirar esse aviso.
O que estou a fazer nessa segunda página é:

<?php
session_start();
?>

...

<?php
echo $_SESSION["resultado"];
?>

Falta aqui alguma coisa?

Obrigado
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
22-05-2011, 18:25
Mensagem: #15
RE: Problema com cookies no Firefox 4.0.1
(22-05-2011 14:33)gelll Escreveu:  Wolfytuga - Obrigado pelas sugestões, fui testar segundo elas e mesmo assim não funciona, o problema é sempre igual. Quando não executo a primeira página o resultado do cookie é vazio, mas quando executo retirando antes todos os plugins dá a mesma barraca Sad

Mettafox- Realmente é uma boa ideia (e mais segura) utilizar sessões em vez de cookies. No entanto como tenho algumas dificuldades com sessões estou com um problema:
O ficheiro: http://www.alojamentoilimitado.com/teste...tactos.php tenho exactamente como o fizes-te e funciona bem.
Mas no ficheiro: http://www.alojamentoilimitado.com/teste...rmacao.php aparece aquele aviso na página sobre os headers... o que estará mal? O resultado já me dá bem, como se pode ver, mas gostaria de retirar esse aviso.
O que estou a fazer nessa segunda página é:

<?php
session_start();
?>

...

<?php
echo $_SESSION["resultado"];
?>

Falta aqui alguma coisa?

Obrigado

É um erro tradicional do PHP quando se usa sessions.
Depois do session_start(), adiciona isto: ob_start()

O ob_start() (Open Buffer Start), vai iniciar um novo buffer para a tua session.

Espero ter ajudado. Smile
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 4 Visitante(s)