begin process at 2012 05 27 21:41:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > GESTION DE MAINTENANCE

GESTION DE MAINTENANCE


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :maintenance, gestion site, erreur Niveau :Débutant Date de création :01/11/2010 Date de mise à jour :01/11/2010 16:05:10 Vu / téléchargé :4 168 / 460

Auteur : rayman223

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 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

  • //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;
  • }
//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;
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 novembre 2010 11:40:13 :
ajout du zip
01 novembre 2010 11:41:20 :
modif du zip
01 novembre 2010 16:05:10 :
MàJ du code source sur le site (aucun changement dans le zip)

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CRÉER ET ETABLIR UNE PAGE DE MAINTENANCE POUR X HEURES par popolino0
TRAITER LES ERREURS PHP GRAVES, NON INTERCEPTABLES par FredT
Source avec Zip [PHP5] EXCEPTIONERROR PACKAGE : TRANSFORMER TOUTES LES ERREU... par malalam
TRACE DES ERREURS EN PHP par Laurpierre
GESTION D'ERREUR MYSQL par bebe47

Commentaires et avis

Commentaire de mugen23 le 15/11/2010 00:24:41

ÔÔ 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.

Commentaire de rayman223 le 15/11/2010 18:07:50

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.

Commentaire de mugen23 le 15/11/2010 20:15:31

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()

Commentaire de rayman223 le 15/11/2010 20:22:15

Ok, merci pour les conseils :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

:::::: URGENT !!! ENVOI D'IMAGE PAR FTP !!!! ERREUR :::::: [ par kkz_mil3k ] j'essaie d'nevoyer un fichier image gif ou jpg sur un ftp via ce formulaire php :------------------------------------------- //**connecte au ftp sc Message ERREUR Suite tentative de transfert d'un fichier [ par David ] Il en résulte le message d'erreur suivant : Warning: Unable to create '../occas/1.jpg': Permission denied in /home4/eq9846/html/test/prive/admin/edi_o Astuce du jour #1: Comment configurer une erreur de la base de donné MySql [ par SmallToad ] Quand vous avez de des erreurs de la base de donnée, êtes-vous déjà demander comment configurer le message d'erreur de la base de donnée MySql C'est aidez moi!!! [ par mic29 ] Voila je débute dans le milieu et je viens de faire mon forum.J'ai une erreur mais je ne voie trop comment y remédier.A chaque fois que je poste un me aidez moi!!! [ par mic29 ] Voila je débute dans le milieu et je viens de faire mon forum.J'ai une erreur mais je ne voie trop comment y remédier.A chaque fois que je poste un me PROBLEME SIMPLE [ par g0belin ] sa me repond sa---------------------------ERREUR--------------------Réponse serveur SQL : You have an error in your SQL syntax near '@msn.com, 1234567 pb avec ma base [ par Xime ] salut :)j'essaye de me connecter a ma base oracle en faisant un truc tout con mais g un probleme et je ne voi pas ou !voila ce ke je fais : &lt;?php$c erreur!!! [ par Xime ] salutsavez vous a koi correspond cette erreur ?Warning: Failed opening 'ModifTel.php?ID=63' for inclusion (include_path='.;c:\php4\pear') merci ++ connection bd [ par fatNugly ] j'ai un probleme..j'essai de me connecter a ma bd, voici le code&lt;?php require_once("classes/sql2xml.php"); require_once("classes/DB.php"); Erreur de memoire [ par apz ] bonjour, en voulant lancer mon site sur mon espace membre lycos j'ai eu l'erreur suivante : Fatal error: Allowed memory size of 8388608 bytes exhauste


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales