Mesmo pessoa para todos os usuários.

Suporte à dúvidas gerais relacionadas ao phpBB.
--=Icaro=--
Novato
Novato
Mensagens: 64
Registrado em: 08 Jan 2011, 12:09

Mesmo pessoa para todos os usuários.

Mensagem por --=Icaro=-- »

Pessoal, ano passado meu programador atualizou o fórum para a última versão phpbb3 e começamos a notar alguns bugs.
Ele então fez backup do BD e reinstalou o fórum novamente. E desde então ainda vemos um problema que não conseguimos resolver: Todo mundo parece ser a mesma pessoa.

Quando clico na "?" para ver informações sobre os usuários, aparece como se ele tivesse várias contas e vários ips entre eles tem um que é do host.

Sou administrador do http://www.imagevisiondesign.com junto com o Ryu. No nosso host (locaweb) instalamos o joomla+jfusion(plugin)+phpbb, desta forma tendo a home com joomla e o fórum com phpbb.

Mesmo com o problema continuamos instalando, style e alguns mods. Tudo funciona normalmente, só isso aí que esta nos atrapalhando.

Quando nos disseram que o problema poderia ser no host, eu fui la conversar e o mesmo nos disse isso:
> Devido a aplicação do Proxy HTTP, a utilização do remote_addr não será executada, onde você deverá utilizar agora a função :
>
> <?php
> echo "IP: {$_SERVER["HTTP_X_FORWARDED_FOR"]}";
> ?>
>
> Esse código deve substituir o que pegava o IP dos usuários do fórum, pois somente funcionara dessa forma no momento.
>
> Troque o código $_SERVER["REMOTE_ADDR"] por $_SERVER["HTTP_X_FORWARDED_FOR"] .
>
>
> Ficamos a disposição.
>
> Atenciosamente.
E inclusive nos passaram uma página de teste ip:
http://imagevisiondesign.com/locaweb/infoip.php

Depois disso, pesquisando na net encontrei o código em session.php
troquei:

Código: Selecionar todos

$this->ip = (!empty($_SERVER['REMOTE_ADDR'])) ? htmlspecialchars((string) $_SERVER['REMOTE_ADDR']) : ''; 
por:

Código: Selecionar todos

$this->ip = (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) ? htmlspecialchars((string) $_SERVER['HTTP_X_FORWARDED_FOR']) : '';
e também tentei com:

Código: Selecionar todos

$this->forwarded_for = (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) ? htmlspecialchars((string) $_SERVER['HTTP_X_FORWARDED_FOR']) : ''; 
Mas ambas as alterações fizeram com que eu não conseguisse mais logar no fórum. Principalmente por ter trocado essa parte:

Código: Selecionar todos

htmlspecialchars((string) $_SERVER['HTTP_X_FORWARDED_FOR']) : ''; 
então fui mais simplista e ao invés de fazer essa alteração, eu fui la no config.php e colei essa função:

Código: Selecionar todos

$_SERVER["REMOTE_ADDR"] = $_SERVER['HTTP_X_FORWARDED_FOR'];
O que também fez com que eu não conseguisse logar no fórum. Fazendo estas alterações eu teria que alterar algo no BD também?
Avatar do usuário
Chico Gois
Administrador
Administrador
Mensagens: 3736
Registrado em: 03 Jul 2004, 03:53
Nome Real: Chico Gois
Localização: São Paulo - Capital
Contato:

Re: Mesmo pessoa para todos os usuários.

Mensagem por Chico Gois »

Se vc entrar no painel de admin do forum, aba GERAL/Configurações de segurança vai encontrar:
Cabeçalho X_FORWARDED_FOR validado:
Sessões somente continuarão se o cabeçalho X_FORWARDED_FOR enviado for igual ao enviado na última visita. Serão banidos os IPs que contiverem o mesmo cabeçalho X_FORWARDED_FOR validado.
Veja se esta ativado, se estiver coloque não.
--=Icaro=--
Novato
Novato
Mensagens: 64
Registrado em: 08 Jan 2011, 12:09

Re: Mesmo pessoa para todos os usuários.

Mensagem por --=Icaro=-- »

Obrigado por responder, mas esta opção ja estava marcada como "não".

EDIT: Desculpa não ter respondido antes, na época eu estava procurando suporte em vários fóruns e esqueci de voltar neste tpc para dizer que o problema foi resolvido. O problema era o host, e só resolvi quando troquei de host mesmo.
Editado pela última vez por robra em 22 Fev 2012, 10:17, em um total de 1 vez.
Motivo: Destaque na edição feita pelo próprio usuário.
Trancado