Ir para conteúdo
Fórum Script Brasil
  • 0

Chrome requisita página php duas vezes


Danilo Moraes

Pergunta

Buenas pessoal, venho até vocês pra relatar algo que está me deixando abismado.

session_start();

$_SESSION['contador'] = $_SESSION['contador'] + 1;
echo $_SESSION['contador'];
Este código simples, funciona como o esperado no firefox e no opera, mas no chrome, por incrível que pareça, está somando de 2 em 2. Eu estava rodando este código dentro de um framework que fiz, então suspeitando de algum bug sinistro dele, resolvi escrevel essas mesmas linhas em um arquivo separado. Então, por incrível que pareça, passou a funcionar. Então, antes de culpar meu framework, resolvi fazer um último teste, já que no firefox e opera funciona perfeitamente. Adicionei essas linhas de código abaixo:
$a = fopen('a.txt', 'a+');
fwrite($a, 'a', 1);
fclose($a);

e no firefox e no opera, é escrito apenas um 'a' por vez, já no chrome, aparecem 2 por vez. Então com isso fica fácil constatar que o chrome está requisitando duas vezes a página. Mas isso não acontece sempre, já que quando testei nesse arquivo sózinho, funcionou normalmente.

Alguém tem alguma ideia do que seja?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom pessoal, fui fazer mais alguns testes e realmente está MUITO estranho.

Uma das diferenças entre o script rodando no meu framework e o que falei que estava "sozinho", é que no framework, está rodando o mod_rewrite do apache. Então resolvi ativar o mod_rewrite pra esse arquivo sozinho também. E o que aconteceu? MESMO PROBLEMA. AHÁ!

Estou achando que por incrível que pareça, o problema aqui é o mod_rewrite. Com testes mais minuciosos, pude perceber uma coisa: Se eu requisitar a pagina com meu framework no firefox pela primeira vez, e logo em seguida reatualizar a página algumas vezes, ele pula o contador da sessao com valores muito loucos. vai de 2 em 2, uma hora soma 10 no valor sem o menor motivo, mas depois normaliza. Se eu deixar a página carregar (no firefox) e esperar um tempo, ao atualizar a página ele passa o contador normalmente. Então o que pensei foi: o firefox deve estar requisitando a página várias vezes quando eu chamo ela no início.

Então eu fiz o mesmo teste no arquivo sozinho (sem mod_rewrite) e nada aconteceu. Ele funcionou normalmente, como deveria. Então testei nesse mesmo arquivo sozinho, só que acessando atraves do mod_rewrite e o erro voltou.

Pelo que estou percebendo, esse mod_rewrite tem algum bug ou coisa parecida. No firefox, com mod_rewrite, o erro acontece só no inicio e depois de um tempo, normaliza. Já no chrome, com mod_rewrite o erro acontece sempre.

Outra coisa que suspeitei é de o browser estar requisitando mais vezes devido alguma demora gerada pelo mod_rewrite. Então adicionei um sleep(1) em todos os códigos e o problema persistiu apenas nos que tinham mod_rewrite. E eu conferi o tempo de resposta de cada página e não muda praticamente nada (ao menos não na escala dos milisegundos).

Estou mais perdido do que nunca. Alguém suspeita de algo?

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, se alguém tiver o mod_rewrite instalado, pediria que criasse um virtual host e testasse isso que falei, pra ver se o erro acontece com vocês também. Aqui vai um modelo de vhost pronto pra vocês testarem:

<VirtualHost *:80>

    ServerName url_pra_acessar.com
    DocumentRoot /diretorio/do/site/

    <Directory /diretório/do/site>        
        RewriteEngine On
        RewriteRule ^(.*)$ index.php [L]
    </Directory>

</VirtualHost>

No caso do servername, se não quiserem configurar o arquivo hosts pra redirecionar, podem escrever localhost mesmo. Esse vhost vai redirecionar para index.php qualquer chamada a serverName. Será que alguém poderia testar isso pra mim?

Obrigado desde já

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...