Forum Pplware

Versão Completa: Problema com cookies no Firefox 4.0.1
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Páginas: 1 2
Boa tarde a todos,

Estou a programar um código de verificação para um formulário PHP tipo "reCaptcha" mas que apresenta uma soma entre dois números simples ao utilizador e ele tem de digitar o seu resultado.

Este código já se encontra totalmente a funcionar.

O problema é que estou a usar um cookie que é responsável por guardar o resultado da soma destes dois números para depois poder comparar no PHP a resposta do utilizador com esse mesmo resultado.

Até aqui tudo bem, mas funciona apenas nos seguintes browsers: Safari, Internet Explorer, Chrome e Opera.

No Firefox "antigo" também funciona, mas no Firefox 4.0.1 não... Apresento-vos os dois seguintes links para testarem:

http://www.alojamentoilimitado.com/teste...tactos.php (aparecerá uma imagem com uma soma diferente sempre que actualizada. É neste ficheiro que está o setcookie.)

http://www.alojamentoilimitado.com/teste...rmacao.php (aparecerá o resultado da soma da página anterior em baixo da palavra "Contactos".)

No meu Firefox 4.0.1 este resultado aparece completamente aleatório, ou seja, por exemplo: 3 + 1 = 12. É aqui que reside o problema!

O mais estranho é que nos outros browsers todos a soma funciona correctamente, aqui não.

Alguém me sabe dizer onde poderá estar o problema?

Cumprimentos!
Olá eu testei ambos link's através do FF 4.0.1 e não tive qualquer problema, tal como pode ver na imagem: http://i.imgur.com/Rq8kq.jpg

Cumps!
__________________
EDIT:
No teste anterior estava a correr o FF no Ubuntu, agora estive a testar no Windows e também funciona aqui, pelos vistos é algum problema no teu FF.
Obrigado pela resposta.

Pois já fiz tudo, eliminei cache e cookies, reiniciei rooter, computador e nada.

No entanto também tentei no mesmo firefox e tanto no windows como no linux com outro computador do meu colega de casa, e o resultado é o mesmo.

A única explicação que encontro sendo assim é que possa ser da Internet... Mas não acho mesmo lógica nenhuma...
Mais alguém me pode ajudar?
(19-05-2011 00:10)gelll Escreveu: [ -> ]Mais alguém me pode ajudar?

A tua explicação é muito vaga.
Mas tentando perceber o teu problema por alto, pode ser algo no sistema de validação do captcha, e estar a calcular erradamente o resultado.

Eu não sei como estas a seleccionar os valores para a soma e como estas a fazer a soma.

Mas....

Revê o teu código e vai fazendo echo às variáveis que recebem dados, até descobrires onde está a falha.

Como se trata de PHP (server side), tudo que é PHP é interpretado pelo servidor Apache e o browser só recebe o código HTML vindo do servidor.

Isto é, o problema não está no browser (pois o browser não tem nada a ver com a interpretação PHP), mas sim no teu código.

O browser só interpreta XHTML (norma correcta da construção do HTML), Javascript e todas as outras linguagens client side.
Não testei, mas parece-me que estás a usar directórios diferentes para mostrar e validar o resultado. O teu problema pode-se prender com isto. Assegura-te que o cookie é criado no directório que pretendes, para o domínio que pretendes, para não haverem "cópias" com "acessos" diferentes, o que pode causar o tipo de problemas que descreves.
Código PHP:
$num1 rand(120);
$num2 rand(14);
$resultado $num1 $num2;
setcookie("Contactos"$resultadotime()+600"/"); 

Estou simplesmente a criar as 2 variáveis que guardam números random e depois, a guardar na variável $resultado a soma desses dois números. No setcookie é esse resultado que vai como valor.
A directoria onde está a ser criado o cookie, como se pode ver, é na raiz "/". Se eu tirasse esse parâmetro não funcionava em nenhum browser.

Eu sei que PHP é uma linguagem do lado do servidor, mas este meu problema é muito estranho, o que já me levou a pensar que poderá ser algum problema nos cookies do Firefox 4.0.1, é que reparem:

Como eu já tinha dito, e como podem confirmar visitando os 2 links que eu publiquei no meu primeiro post, este código funciona em todos os browsers, porque é que dá aquele output errado no Firefox 4.0.1?
E mais estranho ainda... O utilizador que me respondeu primeiro enviou print screens a funcionar no Firefox 4.0.1 dele, também outras pessoas disseram-me que no delas também funciona, mas, também outras pessoas disseram-me que não funciona, tal como a mim...

Nunca vi nada deste género! EEK!
(19-05-2011 14:21)gelll Escreveu: [ -> ]
Código PHP:
$num1 rand(120);
$num2 rand(14);
$resultado $num1 $num2;
setcookie("Contactos"$resultadotime()+600"/"); 

Estou simplesmente a criar as 2 variáveis que guardam números random e depois, a guardar na variável $resultado a soma desses dois números. No setcookie é esse resultado que vai como valor.
A directoria onde está a ser criado o cookie, como se pode ver, é na raiz "/". Se eu tirasse esse parâmetro não funcionava em nenhum browser.

Eu sei que PHP é uma linguagem do lado do servidor, mas este meu problema é muito estranho, o que já me levou a pensar que poderá ser algum problema nos cookies do Firefox 4.0.1, é que reparem:

Como eu já tinha dito, e como podem confirmar visitando os 2 links que eu publiquei no meu primeiro post, este código funciona em todos os browsers, porque é que dá aquele output errado no Firefox 4.0.1?
E mais estranho ainda... O utilizador que me respondeu primeiro enviou print screens a funcionar no Firefox 4.0.1 dele, também outras pessoas disseram-me que no delas também funciona, mas, também outras pessoas disseram-me que não funciona, tal como a mim...

Nunca vi nada deste género! EEK!

O problema está na atribuição do resultado ao cookie.
Porque se reparares, no Firefox aparece precisamente o valor que lhe é atribuído e não outro qualquer.

Portanto o problema está na forma como calculas ou como validas o captcha.

Como disse no meu anterior post, faz echo às variáveis que contêm valores até veres onde está o problema.
É assim que se aprende a corrigir falhas, a mim também já me aconteceram vários problemas em PHP, e a maior parte dos problemas estavam mesmo debaixo do meu nariz e não dava com eles.

O problema, pelo que vi no código que mostras-te, não está na criação do cookie. O problema quase de certeza que está no calculo do resultado.

Revê a preceito o teu código e certifica-te de que fazes echo às variáveis e que nelas passam os valores correctos.
Obrigado pela resposta mas continuo a bater na mesma tecla...

Já fiz echo's, já inventei if's e o resultado dá-me sempre igual.

A questão é que o código está bem, senão não funcionava nos outros browser's (inclusive não funcionava também em alguns computadores com o Firefox 4.0.1). Logo as variáveis estão a receber os valores correctos.

Conseguem-me dizer qual o resultado nos vossos browsers (nomeadamente no vosso Firefox 4.0.1) ?
(20-05-2011 02:24)gelll Escreveu: [ -> ]Obrigado pela resposta mas continuo a bater na mesma tecla...

Já fiz echo's, já inventei if's e o resultado dá-me sempre igual.

A questão é que o código está bem, senão não funcionava nos outros browser's (inclusive não funcionava também em alguns computadores com o Firefox 4.0.1). Logo as variáveis estão a receber os valores correctos.

Conseguem-me dizer qual o resultado nos vossos browsers (nomeadamente no vosso Firefox 4.0.1) ?

Não sei ou parece-me que o problema está no rand que tens antes da criação do cookie.

É que aqui:
Código PHP:
$num1 rand(120);
$num2 rand(14); 

Parece-me que estas a redefinir novos números para a soma.
No momento que crias o captcha, as variáveis assumem um valor, depois de criado o captcha, as variáveis assumem outro valor e é esse segundo valor que o cookie recebe.

Comenta os rands, e deixa só os rands que tens para atribuir os números para o captcha.

Como já referi, é praticamente impossível o código estar bem, o browser não infere no PHP, logo, o problema está ou no código ou no servidor Apache.
Experimenta localmente e vê se o mesmo se sucede, se o mesmo acontecer localmente, o problema está mesmo no código.

Até pode não ser em algo especifico, pode mesmo ser que tenhas alguma coisa repetida e o servidor Apache atrofiar com isso.
Páginas: 1 2
URL's de Referência