if(is_file('maintenance.txt')){
header("Location:maintenance.php");
}
if(is_file('maintenance.txt') && !isset($_COOKIE['admin_maintenance'])){
header("Location:maintenance.php");
}
if(!is_file('maintenance.txt')){
header("Location:index.php");
}
<?php
if(!is_file('maintenance.txt')){
header("Location:index.php");
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Page de maintenance</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
VOTRE PAGE DE MAINTENANCE
</body>
</html>
<?php
if(isset($_GET['action'])){
/*Si la variable $_GET['action'] existe, l'admin a choisi de faire quelque chose!*/
$action = $_GET['action'];
//Changement de variable pour y voir plus clair
if($action == 'activer'){
if(!is_file('maintenance.txt')){
if(fopen('maintenance.txt', 'w+')){
/*Si le fichier a été correctement créé (ouverture et création [w+]), tout va bien sinon, on
affiche un message d'erreur*/
setcookie('admin_maintenance', 'Cookie admin', time()+365*24*3600);
//Création du cookie d'admin
echo'La maintenance a été activée avec succès!';
//Petit message pour dire que tout est OK!
fclose('maintenance.txt');
//Fermeture du fichier ouvert
}
else{
echo'Une erreur est survenue lors du lancement de la maintenance';
//Si la maintenance a échoué, petit mot d'explication
}
}//Fin du if "!is_file"
else{
echo'<b>Erreur: </b>la maintenance est déjà activée!';
//Si le fichier existe, on ne peut pas activer la maintenance.
}
}//Fin du if "activer"
Comment faire pour supprimer le fichier "maintenance.txt"?
Grâce à la fonction unlink(); qui permet de supprimer un fichier.
elseif($action = 'desactiver'){
if(is_file('maintenance.txt')){
//Si la maintenance est activée
if(unlink('maintenance.txt')){
setcookie('admin_maintenance', 'Cookies for ever!', -10);
/*Cookie (avec un contenu idiot) et avec une durée de vie de -10 secondes.*/
echo'Maintenance désactivée avec succès';
//No problem!
}
else{
echo'Une erreur est survenue lors de la suppression du fichier "maintenance.txt"';
//Si il y a eu un bug, message d'erreur
}
}
else{
echo'La maintenance est déjà désactivée!';
//Si le fichier n'existe pas!
}
}
else{
echo'Comment êtes-vous arrivés ici? Vous avez piraté le script???';
}
}//Fin du if de "$_GET"
<a href="admin_maintenance.php?action=activer">Lancer la maintenance</a><br />
<a href="admin_maintenance.php?action=desactiver">Desactiver la maintenance</a>
N'oubliez pas de changer les liens du code si vos fichiers se trouvent dans un dossier.