Salut à tous ! :)
Je suis depuis quelques semaine, sur la création d'un site perso et j'aurai souhaité savoir comment créer un système de maintenance en php ?
J'ai pu trouvé ce bout de code sur le Sdz:
<?php
ob_start();
echo $_GET'message'];
switch($_GET'action'])
{
case 'active':
if(!@rename('#maintenance.html','maintenance.html'))
{
header('Location: ?message=Maintenance non-activé<br/>');
}
else
{
header('Location: ?');
}
break;
case 'deactive' :
if(!@rename('maintenance.html','#maintenance.html'))
{
header('Location: ?message=Maintenance non-désactivé<br/>');
}
else
{
header('Location: ?');
}
break;
case 'edit' :
$fp=fopen(((is_file('maintenance.html'))?('maintenance.html'):('#maintenance.html')),'w+');
fwrite($fp,$_POST'text']);
fclose($fp);
header('Location: maintenance.php?message=Enregistrement réussi !<br/>');
break;
default:
if(is_file('maintenance.html'))
{
echo 'Maintenance activé<br/><a href="?action=deactive">Désactivé la maintenance</a>';
}
else
{
echo 'Maintenance désactivé<br/><a href="?action=active">Activé la maintenance</a>';
}
break;
}
?>
<br/>
<h4>Changer le contenu du fichier de maintenance</h4>
<form action="?action=edit" method="post">
<p>
<textarea name="text" cols="50" rows="15"><?php readfile(((is_file('maintenance.html'))?('maintenance.html'):('#maintenance.html'))); ?></textarea><br/>
<input type="submit" value="Envoyer" />
</p>
</form>
Avec ceci dans toutes mes page ( sauf l'administration bien sur x) )
if(is_file('maintenance.html'))
exit(readfile('maintenance.html'));
Le problème est que moi aussi je voit cet page alors que j'aimerai privilégier que mon adresse IP. Peut-on passé par un htacess ? ou bien modifier le code php ? Si cela est possible, peut-on m'aidé car je rame un peut x)
Merci pour votre aide :)
J'ai trouvé comment faire lol
Je suis partie voir du côté de php manuel et j'ai réussis a faire ceci:
Dans toutes mes page
<?php
$path_maintenance = 'maintenance.txt'; // chemin vers le fichier maintenance.txt
if(file_exists($path_maintenance) AND file_get_contents($path_maintenance) != $_SERVER'REMOTE_ADDR']){
header('Location: maintenance.html');
exit();
}
Et la parti administration ( faut que je l'améliore un peut ^^ )
<?php
$path_maintenance = 'maintenance.txt'; // chemin vers le fichier maintenance.txt
if(isset($_GET'maint']) AND $_GET'maint'] == 'on'){
file_put_contents($path_maintenance, $_SERVER'REMOTE_ADDR']);
echo '<div style="font-weight: bold; color: #FF0000;">Site en maintenance !</div>';
}
if(isset($_GET'maint']) AND $_GET'maint'] == 'off' AND file_exists($path_maintenance)){
unlink($path_maintenance);
echo '<div style="font-weight: bold; color: #00FF00;">Site en ligne !</div>';
}
echo file_exists($path_maintenance) ? '<a href="?maint=off">Mettre le site en ligne ?</a>' : '<a href="?maint=on">Mettre le site en maintenance ?</a>';
Bien sur, maintenance.txt sera mit dans l'administration protégé ou il contiendra mon IP. Pour le moment sa fonctionne x)