Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Paschoalin

Achar uma página.php, caso contrário achar erro.php

Recommended Posts

Tenta trocar o include por header() ou até mesmo (caso de erro no header()), java script:

<?php $file = "http://sua_maquina/pagina.php" ?><script>top.location.href='<?php echo @file_get_contents($file) ? $file : "offline.php" ?>'</script>
LEGAL.... eu tentei com o header(...); antes, mas ele entra na página restrito_conexao.php em branco não direciona não, já com o javascript FOI PERFEITO CARA !!!!!MUITO OBRIGADO MESMO !!!!!!Agora, só por curiosidade do código, poderia traduzir ele pra mim (explicação dos códigos)???? E me dizer como isso seria para mais de uma opção, ou seja, que sejam, dois ou três IP diferentes para o código achar algum ativo.... (Pura curiosidade, não é uma dúvida) !!Um abraço, e obrigado novamente !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o file_exists() não consegue trabalhar com arquivos remotos, foi preciso encontrar uma outra maneira de verificar se um arquivo existe.

Há outras formas, mas essa com o file_get_contents() (que lê o conteúdo de um arquivo) achei que ficava um código menor.

 

Então, se ele consegue ler o arquivo, é sinal que o arquivo existe (a máquina está online), ficando o script dessa forma:

 

<script>top.location.href='http://sua_maquina/pagina.php'</script>
Se não consegue ler, ele gera um erro (ocultado pelo @), o que faz o script final ser:

 

<script>top.location.href='offline.php'</script>
A partir dai, é só js mesmo.

 

Para vários servidores, eu faria dessa forma:

 

<?php	$online = false;	$servers = array(		"http://maquina1/index.php",		"http://maquina2/index.php",		"http://maquina3/index.php"	);	foreach($servers as $svr){		if(@file_get_contents($svr)){			$online = true;			break;		}	}?><script>top.location.href='<?php echo $online ? $svr : "offline.php" ?>'</script>
É criado um array com todas as máquinas que devem ser verificadas. O foreach() varre o array e, se encontra uma máquina online (na ordem em que estão no array), seta a variável como true e sai do loop. Se não, a variável continua como false (nenhuma máquina online).

A diferença no js é que ele checa a variável (false ou true) para decidir qual página chamar: a primeira máquina que foi encontrada online ou a página offline.php.

 

É isso. Qualquer coisa, estamos ai. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito massa esse código Mario !!!!Muito obrigado, assim que meu site estiver pronto, gostaria que entrasse para ver ele pronto !!!!Um abraço e obrigado novamente !!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.