Bloquer temporairement un site lors d'une opération de maintenance ?

Bloquer temporairement un site lors d'une opération de maintenance ? - PHP - Programmation

Marsh Posté le 01-07-2005 à 19:23:22    

Bien l'bonjour :)
 
Je recherche la méthode la plus propre qui me permette d'interdire l'accès (ou en fait de rediriger vers une page fixe) à n'importe quelle adresse de mon site, lorsque je veux mettre à jour des fichier, par exemple, sans toucher à tout les fichiers qui y sont déjà.
Une sorte de redirection générale, un peu comme ce qu'il y a sur hfr lors des opérations de maintenance :o
 
Je ne sais pas trop où chercher ça, c'est peut être pas du php d'ailleurs ? :??:
 
Merci pour votre aide :)

Reply

Marsh Posté le 01-07-2005 à 19:23:22   

Reply

Marsh Posté le 01-07-2005 à 19:30:31    

Si ton site est bien fait, tu dois avoir un fichier du genre header.php qui réprésente le début de ton interface graphique.
En haut de ce fichier, mets une ligne du style :

Code :
  1. //if ($_SESSION['id_user']!=ton_id_user) header("location:maintenance.html" );


La page maintenance.html est donc la page qui indique la maintenance.
 
Lorsque tu veux mettre ton site en maintenance, tu décommentes cette ligne et le tour est joué ;)


Message édité par nero27 le 01-07-2005 à 19:31:25
Reply

Marsh Posté le 01-07-2005 à 19:40:05    

oki merci je vais explorer cette voie-là.
 
Avec le .htaccess, on peut arriver aussi à quelque chose, ou ça n'a aucun rapport ?

Reply

Marsh Posté le 01-07-2005 à 19:42:07    

Oui, on doit aussi faire ça avec un .htaccess, mais ça me parait moins propre : je suis pas un expert dans ce domaine, mais il me semble que lorsque quelqu'un arrivera sur ton site, une petite fenêtre apparaitra et demandera un login et un mot de passe. Vous confirmez les autres ?

Reply

Marsh Posté le 01-07-2005 à 20:13:35    

Non, htaccess ne sert pas qu'à gérer les mots de passe Apache :p
Via htaccess tu peux aussi forcer la redirection de n'importe quelle page vers une simple page HTML par exemple.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-07-2005 à 20:16:25    

Ok, merci de cette précision antp :jap:

Reply

Marsh Posté le 01-07-2005 à 21:45:30    

Bah sinon : Page site en maintenance avec un formulaire d'indentification et si le gars qui tente de s'identifier est admin alors les pages s'affiches. Faut inclure une fonction qui test tout ca dans chaque pages, et si il s'agit d'un site bien concu tu dois avoir un include d'un header donc c'est assez simple à mettre en place.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 22:18:06    

antp a écrit :

Via htaccess tu peux aussi forcer la redirection de n'importe quelle page vers une simple page HTML par exemple.


 
Je pense me rabattre sur cette solution. C'est un tout ptit site perso, c'est juste pour que le visiteur ne tombe pas sur une erreur sql ou php pendant que j'uploade des pages :)

Reply

Marsh Posté le 01-07-2005 à 22:18:49    

Je trouve ca un peu barbare quand même mais bon...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 22:20:03    

Ce que tu sous-entends par header, c'est le contenu "graphique" de ce qui s'affiche systématiquement en haut du site, ou autre chose ?

Reply

Marsh Posté le 01-07-2005 à 22:20:03   

Reply

Marsh Posté le 01-07-2005 à 22:21:49    

Bah si c'est bien foutu tu a deut include d'un header et d'un footer, des contenu qui sont toujours les même. Donc il peu s'agir du menu d'en haut par exemple. Et footeur, ca peut être le copy right etc...


Message édité par dwogsi le 01-07-2005 à 22:22:29

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 22:23:03    

ok, en l'occurence mon menu. Mais quel serait l'intéret, pour l'admin (moi :o) de pouvoir accéder à des pages pendant la maintenance ?

Reply

Marsh Posté le 01-07-2005 à 22:25:08    

Bah disons que toi tu peux voir si tout marche, tester quelques failles (etc...) et ensuite réouvrire l'accès au site.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 22:25:30    

Pour vérifier que tout marcher bien après avoir fait de grosses modifs ?
 
Edit : [:benou_grilled]


Message édité par antp le 01-07-2005 à 22:25:43

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-07-2005 à 22:26:54    

Bah ouai ca peux être bien puisque même si tu à tout testé en local il peux y avoir quelques différeces de config entre ton hébergeur et la tienne, on est jamais trop prudent selon moi.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 22:29:18    

ah oui, certes. Donc c'est plus propre que le .htacess. J'achète :o

Reply

Marsh Posté le 01-07-2005 à 22:30:48    

100€ lol non je rigole!
Bon bah j'espère que tu sais comment t'y prendre!


Message édité par dwogsi le 01-07-2005 à 22:31:29

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 22:37:37    

Ce que j'aurais fait, mais ca nécessite une modification d'un ou 2 if :)
 
un admin peut mettre le site en maintenance dans l'admin. Cela peut écrire dans un fichier que tu include pour set une constante. ensuite, dans dans ton header tu as un truc de ce style :
 
if( isset($_SESSION['infos_membre'])) ...
 
avant ce if , tu mets :
 
if(MAINTENANCE === TRUE) { header('Location: maintenance.html'); exit; }
 
 
tu peux optimiser en autorisant le site qu'aux admins :)


Message édité par benamoubeach le 01-07-2005 à 22:38:29
Reply

Marsh Posté le 01-07-2005 à 22:37:52    

Oui oui ; bon, par contre question sécurité, je ne suis pas spécialement calé, mais comme c'est un ptit site, y a pas non plus besoin d'un truc énorme.
 
Ce qui me turlupine un peu plus, c'est que du coup, pour chaque page, il va y avoir un test supplémentaire avant l'affichage. Faudrait pas que ça alourdisse trop la chose, c'est tout :)

Reply

Marsh Posté le 01-07-2005 à 22:39:01    

Pour ma solution, tu as juste a rajouter mon if dans ton fichier header.inc.php qui fait tes tests et donc tu n'auras qu'un fichier a modifier :)

Reply

Marsh Posté le 01-07-2005 à 22:39:57    

benamoubeach a écrit :

Ce que j'aurais fait, mais ca nécessite une modification d'un ou 2 if :)
 
un admin peut mettre le site en maintenance dans l'admin. Cela peut écrire dans un fichier que tu include pour set une constante. ensuite, dans dans ton header tu as un truc de ce style :
 
if( isset($_SESSION['infos_membre'])) ...
 
avant ce if , tu mets :
 
if(MAINTENANCE === TRUE) { header('Location: maintenance.html'); }
 
 
tu peux optimiser en autorisant le site qu'aux admins :)


 
ok, merci pour l'idée.  
(Au passage, je vois que tu met une adresse relative dans le header location ; c'est gênant ? il me semblait avoir lu dans la référence qu'il fallait une adresse absolue ; c'est indispensable ?)

Reply

Marsh Posté le 02-07-2005 à 00:53:43    

euh je vois pas en quoi c'est genant ?? :)

Reply

Marsh Posté le 02-07-2005 à 03:19:02    

lol en quoi ce serais génant? T'a une adresse de où tu as lu ca stp??


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 02-07-2005 à 08:40:03    

http://www.nexen.net/docs/php/anno [...] header.php

Citation :


 HTTP/1.1 demande une URI  absolue comme argument de Location:  , y compris le protocole, hôte et chemin absolu. Mais certains navigateurs acceptent les URI relatives. Vous pouvez généralement utiliser les variables globales $_SERVER['HTTP_HOST']  , $_SERVER['PHP_SELF']  et dirname  pour construire vous-même une URI absolue :
Redirection à l'aide de header
<?php
header("Location: http://" . $_SERVER['HTTP_HOST']
                     . dirname($_SERVER['PHP_SELF'])
                     . "/" . $relative_url);
?>

Reply

Marsh Posté le 02-07-2005 à 09:50:40    

Je confirme ... Lynx aime pas les url relatifs


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 02-07-2005 à 11:08:38    

Gnub a écrit :

Ce qui me turlupine un peu plus, c'est que du coup, pour chaque page, il va y avoir un test supplémentaire avant l'affichage. Faudrait pas que ça alourdisse trop la chose, c'est tout :)


C'est quasi transparent ;)
Sur le site pour lequel je travaille, y'a plus de 1000 connectés simltanés et on ne voit pas la différence ;)


Message édité par nero27 le 02-07-2005 à 11:09:22
Reply

Marsh Posté le 02-07-2005 à 11:27:22    

oki, merci pour tous ces éléments :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed