<?php
	echo'debut';
	// Données de connexion à la base de données

	// On spécifie le chemin absolu où le script stockera les sorties .gz et .html
	$path = 'svgde/';


	
	
	// On ouvre en création ou en modification le fichier log de la journée
	$file = $path . date('d-m-Y') . '.txt';
	if (file_exists($file))
	{
		$newDay = false;
		$f = fopen($file, 'a+');
		$log = '';
	} 
	else
	{
		$newDay = true;
		$f = fopen($file, 'w');
		//$log = '<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body>';
		$log="NOG /n";
	}
	
	// on supprime les fichiers vieux de plus de 3 jours
	
	$folder = new DirectoryIterator($path);
	foreach($folder as $file)
	{
		// si l'entrée est un fichier normal  et si l'entrée n'est pas . ou ..  et si la date du fichier a pulu de x jours (en seconde 1 j = 86400 sec))
		if($file->isFile() && !$file->isDot() && (time() - $file->getMTime() > 259200))
		{	// supprime - unlink- le fichier
			unlink($file->getPathname());
			$log.="le fichier $file->getPathname() a éte supprimé";
		}
	}
	
	
	
	
	
	
	
	
	//connexction à la bdd
$Hote="mysql6.000webhost.com";

// login d'accès au serveur MySql

// doit être un compte ayant des droits d'accès à la base de données

$login="a2002063_admin";

// mot de passe accès au serveur MySql

$motPasse="miloud82";

// nom de la base de données MySql

$$Nom_bdd="a2002063_liv1";


$dbcon = @mysqli_connect ($Hote,$login,$motPasse,$$Nom_bdd) OR die ( mysqli_connect_error() ) ;

	$log .= "Connexion à la BDD MySQL $Hote \ $Nom_bdd effectuée ";

	// La variable $return contiendra le script de sauvegarde.
	 // On englobe le script de backup dans une transaction
	 // et on désactive les contraintes de clés étrangères
	$return = '--
	-- Hôte : ' . $Hote . '
	-- Date et heure : ' . date('d/m/Y à H:i:s') . '
	-- Base de données : `' . $Nom_bdd . '`
	--
	SET FOREIGN_KEY_CHECKS=0;
	SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
	SET AUTOCOMMIT=0;
	START TRANSACTION;
	';
	// on récupère le nom des tables 
	 $nomtables = array();
	 $q='SHOW TABLES';
	$result = mysqli_query($dbcon,$q);	
		while($row = mysqli_fetch_row($result))
		{
			$nomtables[] = $row[0];

		}
	//cycle through
	foreach($nomtables as $table)
	{	
		
		$return.= "DROP TABLE IF EXISTS $table ;".PHP_EOL; //SUPPRIME TABLE EXISTANTE // .= concaténation
		$q='SHOW CREATE TABLE '.$table;
		$result = mysqli_query($dbcon,$q);
		
		$row2 = mysqli_fetch_row($result); //Récupère une ligne de données 
		$return.= "\n\n".$row2[1].";\n\n"; // /n = saut de ligne
		
		
		$q1='SELECT * FROM '. $table.';';
		$result1 = mysqli_query($dbcon,$q1);
		$num_fields = mysqli_num_fields($result1);
		
		for ($i = 0; $i < $num_fields; $i++) 
		{
			while($row = mysqli_fetch_row($result1))
			{
				$return.= "INSERT INTO $table VALUES(";
				for($j=0; $j<$num_fields; $j++) 
				{
					$row[$j] = addslashes($row[$j]); // ajoute des \ pour '
					$row[$j] =preg_replace("/\n/","\\n",$row[$j]);
					if (isset($row[$j]))
					{ 
						$return.= '"'.$row[$j].'"' ; 
					}
					else 
					{
						$return.= '""';
					}
					if ($j<($num_fields-1))
					{ 
						$return.= ',';
					}
				}
				$return.= ");\n";
			}
		}
		$return.="\n\n\n";		
	}
	// On valide la transaction
	// et on résactive les contraintes de clés étrangères
	$return .= 'SET FOREIGN_KEY_CHECKS=1;
	COMMIT;';
//	echo nl2br($return);

// On enregistre maintenant le script SQL dans un fichier compressé
	$savedFile = 'BKP-' . date('d-m-Y_H-i-s').'-'.$Nom_bdd.'.sql.gz';
	$gz = gzopen($path . $savedFile, 'w9');
	gzwrite($gz, $return);
	gzclose($gz);
	

	
	$log .= "Le fichier $savedFile a été correctement généré<br>";

	// On écrit le log dans le fichier de logs de la journée
	fwrite($f, $log);
	fclose($f);
	echo $log;


?>