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

Olá, estou disponibilizando no meu site uma área restrita, porem essa página de área restrita vai ficar no meu HD pelo IIS, o que gostaria é de uma linguagem que procurasse a página dentro no meu IIS quando eu estivesse com a máquina ligada (online) ele direcionaria para ela, caso eu esteja offline ela direcionasse para uma página no próprio servidor com descrições !Grato desde Já !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa de uma linguagem para fazer isso.O que você quer pode ser configurado no próprio IIS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa de uma linguagem para fazer isso.O que você quer pode ser configurado no próprio IIS.

Acho que não me espressei bem...Não se esqueçe que meu site está em uma hospedagem normal OK 'www.websan.com.br' e somente as páginas e o banco de dados da área restrita estarão em meu computador (no IIS), ou seja, nem sempre está página estará disponivel ! por isso preciso de alguma programação para fazer essa leitura !PORQUE SE EU TIVER ONLINE, MEUS CLIENTES PODERAM VER ASSUNTOS SOMENTE DE SEU INTERESSE, SE EU TIVER OFFLINE, ApARECERÁ UMA PÁGINA "OFFLINE.PHP" DESCREVENDO QUE NÃO ESTÁ ONLINE O SISTEMA, BLABLABLABLABALBLA....Acho que o que estou pedindo seria tipo um redirect , porem do mesmo link, tipo a idéia é assim:--TEORIA:------------------------------------------------------------------------------include ("$restrito");if ( IP:80/banco/acesso.php = true ){ $restrito = "acesso.php"; #chama a página acesso.php para o include }else{ $restrito = "offline.php"; #chama a página offline.php para o mesmo include }------------------------------------------------------------------------------------------------Isso na teoria LOGICO !!!!por favor, aguardo RESPOSTAS ! Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria um header("location:pagina.php") ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria um header("location:pagina.php") ?

COMO ISSO SERIA NA PRÁTICA ???? Se não poder me dar o cógigo pronto, me ajude dando as coordenadas, por favor !!!!Link "restrito" da página na web - ELE tá chamando a página login.php que está no IIS, se isso for verdadeiro (eu estiver com o IIS ligado), beleza entra a página login.php e for falso (eu não estiver com o IIS ligado) entra a página offline.php que está na web (com algumas descrições) !Aguardo ! Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta com file_exists(). Algo como:

<?php@include_once(file_exists("caminho/pagina_no_ISS.php") ? "caminho/pagina_no_ISS.php" : "offline.php");?>
Veja se dessa forma funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução do mário é legal.Tenta:

function vaParaPagina($arquivo) if(file_exists($arquivo)) { header("location: $arquivo") } else { header("location: erro.php"); }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução do mário é legal.Tenta:

function vaParaPagina($arquivo) if(file_exists($arquivo)) { header("location: $arquivo") } else { header("location: erro.php"); }}

Ele está dando esse erro:Parse error: parse error, unexpected T_IF, expecting '{' in /home/websan/public_html/restrito_conexao.php on line 7Onde a linha 7 é: if(file_exists($arquivo))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abre a função colega....leia o erro que ele ja te da a dica do que ta acontecendo

 

 

function vaParaPagina($arquivo) { //TA FALTANDO ABRIR

if(file_exists($arquivo))

{

header("location: $arquivo")

}

else

{

header("location: erro.php");

}

}//TA FECHANDO OQUE ?????

Certo, desculpe, arrumei.... Agora entra a página em branco... ele nem direciona e nem dá erro !

 

Fiz uma página chamada restrito_conexao.php e coloquei exatamente assim:

 

<?php

$arquivo = "http://MEUIP:8080/";

$erro = "menu/erro.php";

 

function vaParaPagina($arquivo) {

if (file_exists("$arquivo"))

{ header("location: $arquivo"); }

else

{ header("location: $erro"); }

}

?>

 

e coloquei na minha página um link chamando o restrito_conexao.php e ao invés de direcionar ou para erro e/ou para meu ip ele entra na página restrito_conexao.php em branco !

 

A porta 8080 está correto, pq minha net bloqueia porta 80 duplicando entra na boa !

 

Desculpe a petulancia, mas só sei o básico do PHP....

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que você não chamou a função, apenas a criou:

 

<?php

$arquivo = "http://MEUIP:8080/";

$erro = "menu/erro.php";

 

function vaParaPagina($arquivo) {

if (file_exists("$arquivo"))

{ header("location: $arquivo"); }

else

{ header("location: $erro"); }

}

 

vaParaPagina($arquivo);

 

?>

 

Nota:

a var em vermelho, é uma var local, que só existe dentro da função, ela não tem "nada haver" com a $arquivo da última linha. Elas terem o mesmo nome, foi uma coincidência.

 

Testa ai http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que você não chamou a função, apenas a criou:

 

<?php

$arquivo = "http://MEUIP:8080/";

$erro = "menu/erro.php";

 

function vaParaPagina($arquivo) {

if (file_exists("$arquivo"))

{ header("location: $arquivo"); }

else

{ header("location: $erro"); }

}

 

vaParaPagina($arquivo);

 

?>

 

Nota:

a var em vermelho, é uma var local, que só existe dentro da função, ela não tem "nada haver" com a $arquivo da última linha. Elas terem o mesmo nome, foi uma coincidência.

 

Testa ai http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Ó, era adicionar a tag vaParaPagina($arquivo); certo ? fiz isso, o que acontece é que ele volta para a raiz de onte está o site !

 

a página de teste está em www.websan.comasas.com/default.php o arquivo restrito_conexao.php na raiz tb

 

Agora, como eu poderia colocar vaParaPagina($arquivo); no botão ???? Para testar, pq ai eu coloco a programação como include da página, pra verse ajuda entende.

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce naum vai conseguir colocar esta função num botão....e ela volta pra raíz mesmo, porque é o caminho que você apontou:

.

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce naum vai conseguir colocar esta função num botão....e ela volta pra raíz mesmo, porque é o caminho que você apontou:

.
Mas é ai que está o problema, a página não está no IP e sim em um servidor !!!! a function deveria chamar o IP certo ?!!!! não estou testando com a pánina no IP:8080 e sim no www.websan.comasas.com entendeu o dilema ?!?!?! huahua

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer que redirecione para outro servidor?

Faz assim, nas váriaveis que contém as páginas para onde você quer redirecionar, coloca o conteúdo delas assim:

 

http://www.imasters.com.br

a outra:

http://www.www.google.com.br

 

e veja o que acontece, se é o que você espera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer que redirecione para outro servidor?Faz assim, nas váriaveis que contém as páginas para onde você quer redirecionar, coloca o conteúdo delas assim:http://www.imasters.com.bra outra:http://www.www.google.com.bre veja o que acontece, se é o que você espera.

NADA Marcio, continuou na mesmo... indo para a raiz da web !!!ó dê uma olhada onde está o site pra você ver: www.websan.comasas.com - é a pasta restrito_conexao.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que $erro não existe dentro da função, o escopo dela é global e não local.Você tem que passar as duas páginas para a função, olha o que eu fiz:

<?php$arquivo = "http://www.bol.com.br/";$erro = "http://www.uol.com.br";function vaParaPagina($p1, $p2) {if (file_exists("$p1")){ header("location: $p1"); }else{ header("location: $p2"); }}vaParaPagina($arquivo, $erro);?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que $erro não existe dentro da função, o escopo dela é global e não local.Você tem que passar as duas páginas para a função, olha o que eu fiz:

<?php$arquivo = "http://www.bol.com.br/";$erro = "http://www.uol.com.br";function vaParaPagina($p1, $p2) {if (file_exists("$p1")){ header("location: $p1"); }else{ header("location: $p2"); }}vaParaPagina($arquivo, $erro);?>

HAHAHAHA... agora ele só vai para a $erro meu IIS está ativado, mas ele não achou... e foi para o erro... Ai eu coloquei http://www.google.com.br no lugar do meu IP para ver se tinha algum problema com a conexao do meu IIS, mas ele tb não vai... ele está diretamente enviando para $erro como que nem tivesse o $arquivoCara to ficando louco, vou ter pesadelo com isso !!! hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma. Eu citei as URL´s só pra você o funcionamento do header.Você tem que utilizar file_exists para verificar a existencia de arquivos.No caso, $p1 e $p2 seriam os arquivos que você quer, tipo, index.php, home.php, erro.php, etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só:

"Enquanto allow_url_fopen estiver disponível no arquivo php.ini, você pode usar URLs HTTP e FTP com a maioria das funções que recebem um nome de arquivo como parâmetro."

 

E também...

"file_exists(): Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor."

 

Ou seja, do modo que pensei inicialmente, com file_exists() não vai funcionar.

 

Mas desse modo abaixo, se allow_url_fopen estiver setado como "On" no seu php.ini (no ISS), funcionará. Aqui com Apache funcionou.

Tenta ai.

 

<?php	$file = "http://sua_maquina/pagina.php";	@include_once(@file_get_contents($file) ? $file : "offline.php");?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma. Eu citei as URL´s só pra você o funcionamento do header.Você tem que utilizar file_exists para verificar a existencia de arquivos.No caso, $p1 e $p2 seriam os arquivos que você quer, tipo, index.php, home.php, erro.php, etc...

Mas isto já não está especificado em $arquivo e $erro ???essa function usa $p1 e $p2 para simbolizar uma ação correto ?? ou elas tem que ter um valor de variável ???

Olha só:"Enquanto allow_url_fopen estiver disponível no arquivo php.ini, você pode usar URLs HTTP e FTP com a maioria das funções que recebem um nome de arquivo como parâmetro."E também..."file_exists(): Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor."Ou seja, do modo que pensei inicialmente, com file_exists() não vai funcionar.Mas desse modo abaixo, se allow_url_fopen estiver setado como "On" no seu php.ini (no ISS), funcionará. Aqui com Apache funcionou.Tenta ai.

<?php	$file = "http://sua_maquina/pagina.php";	@include_once(@file_get_contents($file) ? $file : "offline.php");?>
PERFEITO CARA !!!!!!! funcionou beleza !!!!! eu testei em servidor linux, agora vou testar em windows, vai ter o mesmo resultado né ? espero !!! heheheheehOPS...... probleminha....Bom ele realmente acha meu IP, porem na barra de endereço, mantem o caminho de onde está o site, ou seja, ele entra no meu IP mas não consigo acessar nenhum link.Na prática:minha página está no servidor www.websan.comasas.com , junto com a página restrito_conexao.php onde está este código, o código ao invés de direcionar para o meu IP e na verdade está entrando assim na barra de endereço: www.websan.comasas.com/restrito_conexao.php e o conteudo do meu IIS aparecendo, quando eu clico em qualquer link, ele dá página não pode ser exibida, pq ele está procurando o link dentro de www.websan.comasas.com quando ele deveria estar pegando do meu IP entendeu ??Me dá uma clareada com isso e ver se mudando alguma coisa no cógido, para que altere na barra de endereço e apareça meu ip lá... pq só assim poderá realmente ser aberto !!!!!Muito obrigado desde já pela atenção de voçes dois Mario e Marcio...

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.