';
include("inc/functions_restore.php");
include($config_file);
$end=false; // Ende des Files erreicht?
$actual_table= (!empty($_GET['actual_table'])) ? $_GET['actual_table'] : "unbekannt";
$offset= (!empty($_GET['offset'])) ? $_GET['offset'] : 0;
$aufruf= (!empty($_GET['aufruf'])) ? $_GET['aufruf'] : 0;
$table_ready= (!empty($_GET['table_ready'])) ? $_GET['table_ready'] : 0;
if (isset($_POST["filename"])) $filename=$_POST["filename"];
if (isset($_GET["filename"])) $filename=$_GET["filename"];
//$gz=$compression;
// Tipp von pus234
$ext = strrchr($filename,'.');
if ($ext==".gz") $gz=1; ELSE $gz=0;
echo "\nMySql - DB-Restore\n";
echo "\n\n";
echo "\n";
echo "\n\n";
// Datei oeffnen
$f = ($gz) ? gzopen($backup_path.$filename,"r") : fopen($backup_path.$filename,"r");
if ($f)
{
//nur am Anfang Logeintrag
if($offset==0) WriteLog("Start Restore '$filename'");
// Wenn GZ-Komprimierung aus ist, koennen wir mit Hilfe der Filegroesse
// ausrechnen, wieviel Prozent der Datei fertig sind.
// Bei GZ=1 geht es nicht, weil sich der Offset auf die ungepackte Groesse
// bezieht und somit nicht ins Verhältnis zur Dateigroesse gestellt werden kann.
if ($gz==0) $filegroesse=filesize($backup_path.$filename);
$sql_command=array();
// Dateizeiger an die richtige Stelle setzen
($gz) ? gzseek($f,$offset) : fseek($f,$offset);
// Jetzt basteln wir uns mal unsere Befehle zusammen...
$a=0;
WHILE ( ($a<$anzahl_zeilen_restore) && (!$end) )
{
$befehl="";
// Einen MySQL-Befehl holen. Solange, bis wir wirklich etwas sinnvolles haben...
WHILE ( ($befehl=="") && (!$end) ) { $befehl=get_sqlbefehl();}
if ($befehl=="end of file")
{
// Am Ende der Datei angekommen - Schleife verlassen
$end=true;
break;
}
else
{
$sql_command[$a]=$befehl;
$a++;
}
}
// Offset merken, um beim naechsten Seitenaufruf an die richtige Stelle zu springen
$offset= ($gz) ? gztell($f) : ftell($f);
if ($gz) gzclose($f); else fclose($f);
// Und jetzt koennen wir unsere MySQL-Befehle an die Datenbank schicken
$link = mysql_connect($dbhost, $dbuser, $dbpass) or die($l["db_no_connection"]);
mysql_select_db($dbname) or die($l["db_select_error"]);
for ($i=0;$i";
echo $l["restore_entryerror"]."
".$sql_command[$i];
die();
}
}
}
if (!$end)
{
// Noch nicht fertig? - Dann Anzeige der Infos und Selbstaufruf durch Javascript
$aufruf=$aufruf+1;
if (!$gz) $prozent=($offset*100)/$filegroesse;
echo ''.$l["restore"].'
';
echo $l["restore_db"];
echo "
";
if ($table_ready>0) echo $table_ready-1; else echo "0";
echo $l["restore_complete"];
echo $l["restore_run1"];
echo number_format(($aufruf*$anzahl_zeilen_restore)-$table_ready,0,",",".").$l["restore_run2"];
echo $l["restore_run3"].$actual_table.$l["restore_run4"];
if (!$gz) echo "
".number_format(sprintf("%.4f",$prozent),4,",",".")." % ".$l["restore_run5"];
echo "";
}
else
{
// Uff, geschafft! Jetzt darf die Leitung wieder abkuehlen. :-)
WriteLog("Restore '$filename' finished.");
echo ''.$l["restore"].'
';
echo $l["restore_db"];
echo $l["restore_total_complete"];
}
}
else echo $backup_path.$filename." : ".$l["file_open_error"];
echo "\n\n\n";
?>