File "sauvegarde01.php"
Full Path: /home/analogde/www/Massage_2000/sauvegarde01.php
File size: 9.89 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/*
session_start ();
if (!isset($_SESSION['nom']) && !isset($_SESSION['password']))
{
header("Location: login.php");
}
*/
header( 'content-type: text/html; charset=utf-8' );
//error_reporting(0);
date_default_timezone_set('Europe/Paris');
/////////////////////////////////////////////////////////////////////////////////
// How to prevent form resubmission when page is refreshed (F5 / CTRL+R)
//// code pour bloquer une multiple validation lors du rafraichissement de la page
if(!empty($_POST) )
{
$_SESSION['sauvegarde_formulaire'] = $_POST ;
$page_actuelle = $_SERVER['PHP_SELF'] ;
if(!empty($_SERVER['QUERY_STRING']))
{
$page_actuelle .= '?' . $_SERVER['QUERY_STRING'] ;
}
header('Location: ' . $page_actuelle);
exit;
}
if(isset($_SESSION['sauvegarde_formulaire']))
{
$_POST = $_SESSION['sauvegarde_formulaire'] ;
unset($_SESSION['sauvegarde_formulaire']);
}
/////////////////////////////////////////////////////////////////////////////////
if(!empty($_POST['Envoyer']))
{
$site = $_SERVER["SERVER_NAME"];
if( ($site == "localhost") || ($site == "127.0.0.1") )
{
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "test";
}
else
{
$db_host = "analogdepat.mysql.db";
$db_user = "analogdepat";
$db_pass = "Un92pac007";
$db_name = "analogdepat";
}
sauvegarde_DB();
header( "refresh:5; url=sauvegarde01.php" );
}
$ts_du_jour = strtotime(date("d-m-Y"));
$heure_min = date('H:i');
echo "Nous sommes le " .date("d-m-Y") . " " .$heure_min;
echo "<br>";
echo date('l'); // dayname
echo "<br>";
//0 (pour dimanche) à 6 (pour samedi)
$jour_semaine = date('w');
echo "Jour de la semaine " .$jour_semaine;
echo "<br>";
// format 0H à 23H
$heure = date('H');
echo $heure;
echo "<br>";
// backup automatique
// uniquement en semaine et entre 8H et 20H
//if($heure >= 8 and $heure <= 20 and $jour_semaine > 0 and $jour_semaine < 6 )
//{
/*
$jour = date('d-m-Y');
$heure = date("H_i_s");
$infos = $jour.'-'.$heure;
$fichier = 'manual_db-backup-v3-'.$infos.'.sql';
//$path = getcwd();
//$dirs = explode('/', $path);
//$size = sizeof($dirs);
//$appli_path = $dirs[$size - 1];
$fichier = '/homez.65/analogde/www/Massage/Backup/auto_db-backup-v3_'.$infos.'.sql';
system("mysqldump --host=analogdepat.mysql.db --user=analogdepat --password=Un92pac007 --default-character-set=utf8 analogdepat configuration_v3 client gestion_v3 reservation2015_v3 reservation2016_v3 reservation2017_v3 > $fichier");
*/
//}
function sauvegarde_DB()
{
$jour = date('d-m-Y');
$heure = date("H_i_s");
$infos = $jour.'-'.$heure;
$path = getcwd();
$dirs = explode('/', $path);
$size = sizeof($dirs);
$appli_path = $dirs[$size - 1];
// Chemin absolu de l'emplacement du site
$chemin_absolu_site = 'www' ;
//$fichier = '/homez.65/analogde/www/Massage/Backup/auto_db-backup-v3_'.$infos.'.sql';
$fichier = "/homez.65/analogde/www/" .$appli_path ."/Backup/manuel_db_backup_v3_" .$infos. ".sql";
$current_year = date('Y');
$table = "reservation" .$current_year ."_v3";
// on sauvegarde la table reservation de l'année en court car les année précédente ne sont plus modifiables
// mains uniquement consultables
$cmd = "mysqldump --host=analogdepat.mysql.db --user=analogdepat --password=Un92pac007 --default-character-set=utf8 analogdepat configuration_v3 client gestion_v3 " .$table ." > $fichier";
system($cmd);
//$fichier = '/homez.65/analogde/www/Massage/Backup/manuel_db-backup-'.$infos.'.sql';
//system("mysqldump --host=analogdepat.mysql.db --user=analogdepat --password=Un92pac007 --default-character-set=utf8 analogdepat configuration client gestion reservation2015 > $fichier");
echo '<br>';
echo "<font color='green'>Backup Done</font>";
//echo "Backup Done";
echo '<br>';
echo '<br>';
}
function dirsize($repertoire)
{
$size = 0;
foreach(scandir($repertoire) as $file)
{
if(is_file($file) && $file != '.' && $file != '..')
{
$size += filesize($file);
}
}
if($size > 1024)
{
$size = round($size / 1024 , 2);
$retour = $size ." Koctets";
if($size > 1024)
{
$size = round($size / 1024 , 2);
$retour = $size ." Moctets";
}
}
else
{
$retour = $size ." octets";
}
return $retour;
}
function listing_fichier_repertoire($repertoire)
{
$results = array();
$handler = opendir($repertoire);
$cpt = 0;
$ts_actuel = strtotime(date("d-m-Y H:i:s"));
while ($file = readdir($handler))
{
if($file != "." && $file != ".." && $file != "listing_backup.txt")
{
$file_name = explode(".",$file);
$date_pieces = explode("-",$file_name[0]);
$date_tab[0] = $date_pieces[2];
$date_tab[1] = $date_pieces[3];
$date_tab[2] = $date_pieces[4];
$heure_tab = explode("_",$date_pieces[5]);
$date = $date_tab[0]."-".$date_tab[1]."-".$date_tab[2]; // d-m-Y
$heure = $heure_tab[0].":".$heure_tab[1].":".$heure_tab[2];
$format = $date ." " .$heure;
$ts = strtotime($format);
$ts_difference = $ts_actuel - $ts;
$ts_7jours = 7 * 24 * 3600;
/*if($ts_difference >= $ts_7jours)
{
//echo $file ." ---- " .$format ." " .$ts ." trop ancien" ;
chdir("Backup");
unlink($file);
}*/
/*else
{
echo $format ." " .$ts ;
}*/
//echo '<br>';
/*http://www.timestamp.fr/?*/
$results[$cpt][0] = $file;
$results[$cpt][1]= $ts;
$results[$cpt][2]= filesize($file);
$cpt = $cpt + 1;
}
}
chdir("Backup");
closedir($handler);
return $results;
}
echo "<br><br>";
echo ' <form method="post" action="">
<input type="submit" name="Envoyer" value="Backup la database" />
</form>';
echo "<br><br>";
$store = array();
$repertoire = "Backup";
$handler = opendir($repertoire);
while ($file = readdir($handler))
{
if($file != "." && $file != ".." )
{
$store[0] = $file;
$dir = "/home/analogde/www/Massage/Backup/".$file;
$key = filemtime($dir);
$files[$key] = $file ;
//$store[1] = filesize($dir);
//echo $store[0] ." " .$store[1];
//echo "<br>";
$tab_files[] = $store;
}
}
ksort($files) ;
//echo "<pre>";
//print_r($files);
$store = array();
$i = 0;
foreach ($files as $file)
{
//echo "<a href=$file target='read'>$file</a>"."<br />" ;
$store[$i] = $file;
$i = $i + 1;
}
$taille = dirsize('.');
$nb_fichiers = count($tab_files);
echo "$nb_fichiers fichier(s) pour un espace occupé de : " .$taille ;
echo '<br>';
echo "<table border=1 cellpadding=5 cellspacing=0>";
echo " <tr>
<th>Id</th>
<th>Fichier backup</th>
<th>Taille en octets</th>
</tr>";
for($i=0; $i < count($store); $i++)
{
$j = $i + 1;
echo "<tr>
<td>" .$j ."</td>";
echo '<td>
<a href="restauration.php?fichier='.$store[$i].'" title = "Restauration">';
echo $store[$i];
echo '</a>
</td>';
$dir = "/home/analogde/www/Massage/Backup/".$store[$i];
$size = filesize($dir);
echo "<td align = 'center'>" .$size ."</td>";
echo '</td>
</tr>';
}
echo "</table>";
//echo getcwd();
/* echo '<br><br>';
$tab = listing_fichier_repertoire('Backup');
echo '<pre>';
print_r($tab);
for($i=0; $i < count($tab); $i++)
{
$tab_fichier = $tab[$i][0];
$tab_ts[] = $tab[$i][1];
}
$tab_sort = $tab_ts;
sort($tab_sort);
$tab_reverse = array_reverse($tab_sort);
echo '<pre>';
print_r($tab_sort);
for($i=0; $i < count($tab); $i++)
{
$element = $tab_reverse[$i];
$position = array_search($element, $tab_ts);
//echo '<br><br>';
$file = $tab[$position][0];
//echo $position ." " .$tab[$position][0] ." " .filesize($file);
$tab_affiche[$i][0] = $tab[$position][0];
$tab_affiche[$i][1] = filesize($file);
}
echo '<a href="configuration.php">retour ...</a>
<br>
<br>';
echo '<form method="post" action="">
<input type="submit" name="Envoyer" value="Backup la database" />
</form>';
$taille = dirsize('.');
$nb_fichiers = count($tab_affiche);
echo "$nb_fichiers fichier(s) pour un espace occupé de : " .$taille ;
echo '<br>';
echo "<table border=1 cellpadding=5 cellspacing=0>";
echo " <tr>
<th>Id</th>
<th>Fichier backup</th>
<th>Taille en octets</th>
</tr>";
for($i=0; $i < count($tab_affiche); $i++)
{
$j = $i + 1;
echo "<tr>
<td>" .$j ."</td>";
//echo '<td>';
//echo '<a href="restauration.php?fichier=" .$tab_affiche[$i][0].</a>' .$tab_affiche[$i][0] .'</td>';
echo '<td>
<a href="restauration.php?fichier='.$tab_affiche[$i][0].'" title = "Restauration">';
echo $tab_affiche[$i][0];
echo '</a>
</td>';
echo "<td align = 'center'>" .$tab_affiche[$i][1] ."</td>";
echo '</td>
</tr>';
}
echo "</table>";
*/
function getFileList($dir)
{
// array to hold return value
$retval = array();
// add trailing slash if missing
// if(substr($dir, -1) != "/") $dir .= "/";
// open pointer to directory and read list of files
$d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
while(false !== ($entry = $d->read())) {
// skip hidden files
if($entry[0] == ".") continue;
if(is_dir("$dir$entry")) {
$retval[] = array(
"name" => "$dir$entry/",
"type" => filetype("$dir$entry"),
"size" => 0,
"lastmod" => filemtime("$dir$entry")
);
} elseif(is_readable("$dir$entry")) {
$retval[] = array(
"name" => "$dir$entry",
"type" => mime_content_type("$dir$entry"),
"size" => filesize("$dir$entry"),
"lastmod" => filemtime("$dir$entry")
);
}
}
$d->close();
return $retval;
}
// $dirlist = getFileList("Backup/");
// echo "<pre>",print_r($dirlist),"</pre>";
?>