Gestion de maintenance

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

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.