<?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>";
	
?>