Como mostrar ao usuário que seu site está em manutenção
Postado por: Pedro Rogério emPor diversas vezes já tive que efetuar manutenção em sites, e quem faz isso frequentemente sabe que pode ocorrer vários problemas, um deles é de o site ficar todo desconfigurado no momento em que você está alí efetuando alterações. Mas que tal seria se pudesse-mos colocar uma mensagem de que o site está em manutenção no momento e logo voltará ao ar para evitar esse tipo de problema? Com PHP achei uma maneira bem simples de fazer isso. Observem o seguinte script:
<?php
$manutencao = 1;
$ip = '200.16.20.82';
if ( $manutencao )
{
if ( $_SERVER['REMOTE_ADDR'] != $ip )
die('Site em manutenção, voltaremos em instantes');
}
?>
Onde foi citado $ip = ’200.16.20.82′; é onde você deve colocar seu IP, com isso, só você terá acesso ao conteúdo do site e, para os demais usuários aparecerá a mensagem de que o site está em manutenção. Caso queira voltar o site ao normal é só alterar aqui $manutencao = 1; para 0, ficaria assim: $manutencao = 0;. Pronto, tudo volta ao normal.
<update 17/09/2007>
Caso você queira liberar o acesso para mais IPs, deve utilizar o seguinte código:
<?php
$manutencao = 1;
$ip = array('200.16.20.82', '200.16.20.83');
if ( $manutencao ){
$verificador = 0;
for($i = 0; $i < sizeof($ip); $i++){
if($_SERVER['REMOTE_ADDR'] == $ip[$i]) $verificador++;
}
if($verificador == 0) die('Site em manutenção, voltaremos em instantes');
}
?>
Basta você ir colocando os IPs na 3ª linha, separados por vírgula. O código acima é de autoria de meu amigo aqui da empresa, o Márcio, portanto, todos os créditos a ele.
</update>
<update 20/09/2007>
Nosso amigo DGMike postou aqui no blog uma solução bem mais enxuta, então, fica abaixo a dica:
<?php
$manutencao = true;
$ip=$_SERVER['REMOTE_ADDR'];
$ips = array('200.16.20.82', '200.16.20.83');
if ( ($manutencao) && (!in_array ($ip, $ips)) ) {
die ('Site em manutenção, voltaremos em instantes');
}
?>
</update>















Opa! Muito útil esse aí Pedro! Vou usar semana que vem, tenho que modificar umas coisas num site, e vou experimentar isso aí.
Att
Abraços!
:D
Boooa dica!
Uma dica muito boa que sem duvidas irá ajudar muitos webmasters!!!! Parabéns pela iniciativa…
deve dar para fazer algo assim via htaccess
com a vantagem de ser uma solução mais portavel
pois independe de como se lida com seus includes ou mesmo de qual linguagem se usa
[...] Como mostrar ao usuário que o seu site está em manutenção [...]
Tem que criar uma página e colocar esse código.. Não entendi bem o funcionamento desse sistema..
@Gata,
Se você utiliza PHP, é só colocar esse código no index.php que já funciona!!!
show de bola brother!
Grande abraço!
Olá!
Valeu o toque.. Comecei a acompanhar seu blog a pouco tempo, pelo interesse em CSS.
E até agora acho um dos melhores feitos sobre. Dá várias dicas, curiosidades de forma simples, sucinta.. Tá de parabéns! :D
Mas assim, neste código, tem como eu colocar mais de um IP para poder ver a página em manutenção? Pois as vezes utilizo mais de um PC para fazer um website..
Grande abraço!
@ Lucas,
Respondi a sua dúvida no post, adicionei mais um código que faz o que você quer!! Abraços e obrigado pelos elogios.
Para programadores mais experientes o último código poderia ser escito desta maneira…
Explico… primeiro, guardamos o ip em uma variável para nosso código ficar mais limpo, depois verificamos se este array existe com a fuunção in_array (verifique a documentação para mais detalhes em http://www.php.net ), mas como queremos que o ip não esteja nesta lista, usamos uma exclamação (!) antes desta verificação.
É a mesma coisa, só que com um código mais enxuto, mais limpo, sem for ou loops…
Recomendo para quem está começando ter curiosidadee de ver a documentação do PHP, ela não é dificil de entender como muitas documentações por aí.
e, Pedro, parabéns pela iniciativa. :)
Para programadores mais experientes o último código poderia ser escito desta maneira…
< ?php
$manutencao = true;
$ip=$_SERVER['REMOTE_ADDR'];
$ips = array(’200.16.20.82′, ’200.16.20.83′);
if ( ($manutencao) && (!in_array ($ip, $ips)) ) {
die (‘Site em manutenção, voltaremos em instantes’);
}
? >
Explico… primeiro, guardamos o ip em uma variável para nosso código ficar mais limpo, depois verificamos se este array existe com a fuunção in_array (verifique a documentação para mais detalhes em http://www.php.net ), mas como queremos que o ip não esteja nesta lista, usamos uma exclamação (!) antes desta verificação.
É a mesma coisa, só que com um código mais enxuto, mais limpo, sem for ou loops…
Recomendo para quem está começando ter curiosidadee de ver a documentação do PHP, ela não é dificil de entender como muitas documentações por aí.
e, Pedro, parabéns pela iniciativa. :)
Caralho!!!!!!!!!!!!!!! Essa é para o DGmike!!!
Meo você salvou a minha vida, eu que escrevi o primeiro código, porém nem conhecia a função in_array()… Cara sempre usei um for para resolver problemas desse tipo, porém com essa função é muito mais foda!!!!
Valeu pelo toque…
É isso ai Pedro, seu blog é o melhor!!!!!!!!!!!!!!!!!
Falou!!!
Eu faço esse mesmo esquema, mas pra ficar uma coisa mais personalizada faço uma página em html separada. Por ex:
if(true)
{
require(‘em_manutencao.html’);
exit;
}
Legal a dica, mas as vezes você está em computador que usa IP Dinâmico, e ai? Para resolver esse problema usei uma sessão. Claro que no meu caso eu tenho uma página de login…
Se desejar bloquear temporariamente o acesso de TODOS os arquivos de uma pasta para fazer a atualização use htaccess dessa maneira:
Redirect /pasta/ http://site.com.br/manutencao/manutencao.html
crie uma pasta manutenção e dentro um arquivo manutencao.html contendo o texto de aviso…
Ou para bloquear acesso a index, faça assim:
Redirect /index.php http://site.com.br/manutencao/manutencao.html
Abraços…
…..Eu jairo antonio Batista…..registrei dominio mensionado acima….mas gostaria de montar uma pagina para este dominio mensionado…..Tal pagina é relativo a trabalho profissional……Quero mostrar o meu trabalho via internet,mas não sei como montar um site……estou precisando de mecanismo para tal….caso alguém ,ou empresa,,possa fazer isto,estou disposto a pagar pelo trabalho……veja o que faço na pagina do orkut….em…aquamovel……veja as fotos e netenderá o que preciso…… agradecimentos carinhosamente……….
Muito boa essas dicas, eu costumo usar o .htaccess, somente descomento as duas linhas abaixo e adiciono meu ip.
#RewriteCond %{REMOTE_HOST} !^111\.222\.333\.444$
#RewriteRule (.*) admin/manutencao.php [L]
É bom adicionar um status “503 Service Unavailable” na página manutencao.php para evitar do googlebot indexar o site com o conteúdo da página de manutenção.
Olá!
Eu criei um jogo esses dias,
e estou com vários membros no meu site.
Isso é muito bom, claro, mas, quando eu faço algumas manutenções,
o site fica todo desconfigurado.
Tentei fazer a dica no index.htm e não consegui. :/
Botei este code no final da página,
e para o teste, não mudou nada.
Usuários meus continuam a conseguir visualizar.
Bom, aguardo respostas.
tem um site queria saber eu mesmofazer manutenção qual é procedimento p/ trasferença de foto e texto.grato
tem um site queria saber eu mesmo fazer manutenção qual é procedimento p/ trasferencia de foto e texto.grato
Realmente muito bom, mesmo! Ainda testarei esse código pra ver se funciona mesmo.
O melhor é usar .htaccess!
tenho uma pergunta , onde coloco esse javascript?
Excelente, de muita serventia. Estava eu fazendo manutenção em um site de cliente e o site ficou desconfigurado. Usei a função PHP e na hora entrou a mensagem de manutenção. Show. Valeu e parabéns.
valeu mesmo obrigado!!