Vamos transformar o status em JSON, que é muito mais fácil de interpretar no JavaScript. Aqui está o plano completo, passo a passo:
Visão geral
Vamos criar um novo arquivo chamado status_json.php
Ele vai buscar o status original via HTTP
Vai extrair os dados com regex
Vai entregar tudo como JSON para o JavaScript
Etapas detalhadas
1. Criar o arquivo status_json.php
No terminal via PuTTY:
Código: Selecionar todos
nano /var/www/html/status_json.php
Código: Selecionar todos
<?php
header('Content-Type: application/json');
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
$html = file_get_contents('http://167.88.32.81/phpbb/status_server.php');
preg_match('/<h2[^>]*>(\d+)\s+hunters\s+online<\/h2>/i', $html, $hunters);
preg_match('/<strong>Dreamcast:<\/strong>\s*(\d+)/i', $html, $dreamcast);
preg_match('/<strong>GameCube:<\/strong>\s*(\d+)/i', $html, $gamecube);
preg_match('/<strong>Episode III:<\/strong>\s*(\d+)/i', $html, $episode);
preg_match('/<strong>PSOBB:<\/strong>\s*(\d+)/i', $html, $psobb);
echo json_encode([
'hunters' => $hunters[1] ?? 'N/A',
'dreamcast' => $dreamcast[1] ?? 'N/A',
'gamecube' => $gamecube[1] ?? 'N/A',
'episode' => $episode[1] ?? 'N/A',
'psobb' => $psobb[1] ?? 'N/A'
]);
?>
Ctrl + O → Enter
Ctrl + X
4. Corrigir permissões
Código: Selecionar todos
chown www-data:www-data /var/www/html/status_json.php
chmod 644 /var/www/html/status_json.php
Código: Selecionar todos
{
"hunters": "1",
"dreamcast": "1",
"gamecube": "0",
"episode": "0",
"psobb": "0"
}
Abra com WinSCP e substitua o script por:
Código: Selecionar todos
<script>
async function fetchServerStatus() {
try {
const response = await fetch("/status_json.php");
const data = await response.json();
document.getElementById("hunters-online").textContent = data.hunters;
document.getElementById("dreamcast-pc").textContent = data.dreamcast;
document.getElementById("gamecube").textContent = data.gamecube;
document.getElementById("episode-iii").textContent = data.episode;
document.getElementById("psobb").textContent = data.psobb;
} catch (error) {
console.error("Erro ao buscar status do servidor:", error);
}
}
fetchServerStatus();
setInterval(fetchServerStatus, 60000);
</script>
Código: Selecionar todos
rm -rf /var/www/html/phpbb/cache/*.php
1. Verifique se o arquivo existe
Execute via PuTTY:
Código: Selecionar todos
ls /var/www/html/status_json.php
Código: Selecionar todos
nano /var/www/html/status_json.php
2. Corrigir permissões
Código: Selecionar todos
chown www-data:www-data /var/www/html/status_json.php
chmod 644 /var/www/html/status_json.php
Vamos colocar o status_json.php dentro da pasta do fórum, onde sabemos que o Apache está servindo corretamente.
1. Mover o arquivo
Código: Selecionar todos
mv /var/www/html/status_json.php /var/www/html/phpbb/status_json.php
No overall_footer.html, mude o fetch() para:
Código: Selecionar todos
const response = await fetch("status_json.php");
3. Limpar o cache do phpBB
Código: Selecionar todos
rm -rf /var/www/html/phpbb/cache/*.php
Hunters Online: 1
Dreamcast/PC: 0
GameCube: 0
Episode III: 0
psoBB: 0
Isso significa que o status_json.php está funcionando, o JavaScript está interpretando corretamente, e o fórum está exibindo os dados em tempo real!
O que funcionou perfeitamente
Hunters Online: 1
Dreamcast/PC: 0
GameCube: 0
Episode III: 0
psoBB: 0
Isso significa que o status_json.php está funcionando, o JavaScript está interpretando corretamente, e o fórum está exibindo os dados em tempo real!
Possivel erro que encontrará nessa ultima etapa
Diagnóstico técnico
O problema está no regex do JavaScript que extrai o número de jogadores por plataforma. A resposta JSON está correta, mas o campo dreamcast está sendo interpretado como vazio.
Solução: revisar o regex no status_json.php
Abra o arquivo:
Código: Selecionar todos
nano /var/www/html/phpbb/status_json.php
Código: Selecionar todos
preg_match('/<strong>Dreamcast:<\/strong>\s*(\d+)/i', $html, $dreamcast);
Código: Selecionar todos
preg_match('/<strong>Dreamcast\/PC:<\/strong>\s*(\d+)/i', $html, $dreamcast);
1. Salve e saia
Ctrl + O → Enter
Ctrl + X
por ultimo faça isso no Putty:
Código: Selecionar todos
rm -rf /var/www/html/phpbb/cache/*.php