Gestion de maintenance

Soyez le premier à donner votre avis sur cette source.

Vue 8 858 fois - Téléchargée 1 214 fois

Description

Ce script permet de gérer la maintenance de votre site.
Vous pouvez bloquez l'accès au site durant une certaine période (en secondes)
S'il y a une erreur de connexion à SQL, il se lancera automatiquement pour afficher la page de maintenance.

Le système fonctionne avec filemtime() qui permet d'avoir la date de dernière modification du fichier maintenance.txt.
Seul ce fichier txt est à modifier en fonction de votre maintenance.

Exemple :
Si je veux bloquer l'accès le temps de sauvegarder convenablement mes tables, on indiquera dans le fichier txt :
"60*save"
Sans les guillemets bien-sur.

Ce qui signifie que le site sera indisponible pendant 60 secondes à partir du moment où vous uploader le fichier txt sur votre site et que le message à afficher correspond à la clef save (voir l'array dans le fichier maintenance.php)

Pour l'installation, vous devez placer le fichier index.php tout en haut de vos pages où vous voulez que la maintenance soit activée en temps voulu.
Ensuite uploader maintenance.txt avec les modifications adéquates quand vous le voulez.

Source / Exemple :


//gestion de la maintenance dans index.php
$fichier_maintenance = 'maintenance.txt';

if(file_exists($fichier_maintenance) or $bug_sql == true)//si le fichier txt existe ou s'il y a un bug sql on lance la maintenance
{
	include('maintenance.php');
	
	//on regarde s'il faut encore afficher la maintenance
	if (file_exists($fichier_maintenance))
	{
		$fichier_maintenance_txt = @fopen($fichier_maintenance, 'r');//ouvre le fichier en lecture seule
		$info_maintenance = @fgets($fichier_maintenance_txt);
		
		//explode *
		$info_maintenance = explode('*', $info_maintenance);
		/*
		$info_maintenance[0] = temps de maintenance en seconde
		$info_maintenance[1] = type de maintenance

  • /
@fclose($fichier_maintenance_txt);//ferme le fichier } echo maintenance ($info_maintenance[1], $bug_sql); //si on attaint le temps enregistré dans maintenance.txt alors on supprime le fichier. $fichier_maintenance_existe = (@file_exists($fichier_maintenance) ) ? @filemtime($fichier_maintenance) : 0;//date de dernière modification du fichier if($fichier_maintenance_existe < (time() - $info_maintenance[0])) { vide_cache($fichier_maintenance); } exit; } //Fonction maintenance (dans maintenance.php) function maintenance ($info_maintenance = 'save', $bug_sql = false) { $message = array( 'surcharge' => 'Du à une surcharge du serveur.<br/>Veuillez nous excuser du désagrément occasionné.', 'save' => 'Il sera dispo dans 2 minutes maximum :)'); $maintenance_texte .= '<center>'; $maintenance_texte .= '<h1>Le site est en maintenance.</h1>'; $maintenance_texte .= '<p>'; if ($bug_sql == true) { $maintenance_texte .= $message['surcharge']; } else { $maintenance_texte .= $message[$info_maintenance]; } $maintenance_texte .= '</p>'; $maintenance_texte .= '</center>'; return $maintenance_texte; }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
24
Date d'inscription
dimanche 9 décembre 2007
Statut
Membre
Dernière intervention
7 avril 2013

Ok, merci pour les conseils :)
Messages postés
125
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
27 novembre 2010

Bé si c'est uniquement pour les erreurs sql, il y as des gestionnaires d'erreurs prévus pour ça --'

Pour le XML ( ou JSON, perso je préfère ), c'est pour avoir un fichier structuré qui :

(1) ne te demanderas pas de faire un explode
(2) te permettras de l'administrer plus aisément ( JSON c'est un tableau, rien de plus )

Puis, comme tu l'indique dans l'introduction de ta source, tu stipule très clairement que c'est pour de la maintenance et non pas seulement pour afficher une erreur sql.

Et dernière couche ( c'est pas méchamment hein ! bien au contraire ), si tu souhaite utiliser des fichier text, tu pourrais regarder aussi le format CSV.
Ensuite, tu devrais ajouter une condition, dans le contexte de la maintenance, permettant à un admin de toujours pouvoir voir le site, ce qui est très utile quand tu fais, par exemple, une mise à jour du design.

Il ne faut pas oublier que dans la programmation, avant la production, il ne faut pas hésiter à pendre du temps pour bien modéliser ton système, tu pourras mieux cerner tout les aspect de l'application.

Au passage, concernant JSON, regarde du coté de json_encode() et json_decode()
Messages postés
24
Date d'inscription
dimanche 9 décembre 2007
Statut
Membre
Dernière intervention
7 avril 2013

Je n'ai pas fais de partie admin, j'avoue que je n'ai pas eu le temps.
Je n'ai jamais travailler en JSON et pour ce que j'avais a faire, je ne vois pas l'intérêt de XML au lieu d'un simple fichier txt.

Pas oublié que ce système est surtout axé pour les problème de connexion sql (les bugs les plus courants) donc dans ce cas ci, le .txt est inutile.
Messages postés
125
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
27 novembre 2010

ÔÔ j'ai pas franchement capté le concept :s

Pourquoi ne pas utiliser un fichier XML ou JSON qui définirait les messages à utiliser ainsi que le statu du site ( un petit booléen ).

Tu aurais une fonction qui vérifie le statu dans ce fichier et affiche, si besoin est, le message à destination du visiteur.

Avec une autre fonction, tu permettrais à l'administrateur du site de pouvoir basculer le statut ainsi que le message à renvoyer aux visiteurs.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.