Leitgedanken/msd/filemanagement.php
2023-02-11 15:24:36 +01:00

551 lines
27 KiB
PHP

<?php
error_reporting(E_ALL & ~E_STRICT);
ini_set('display_errors', true);
/* ----------------------------------------------------------------------
MyOOS [Dumper]
http://www.oos-shop.de/
Copyright (c) 2013 - 2022 by the MyOOS Development Team.
----------------------------------------------------------------------
Based on:
MySqlDumper
http://www.mysqldumper.de
Copyright (C)2004-2011 Daniel Schlichtholz (admin@mysqldumper.de)
----------------------------------------------------------------------
Released under the GNU General Public License
---------------------------------------------------------------------- */
define('OOS_VALID_MOD', true);
if (isset($_GET['action']) && 'dl' == $_GET['action']) {
$download = true;
}
include './inc/header.php';
include_once './language/'.$config['language'].'/lang.php';
include_once './language/'.$config['language'].'/lang_dump.php';
include_once './language/'.$config['language'].'/lang_filemanagement.php';
include_once './language/'.$config['language'].'/lang_config_overview.php';
include_once './language/'.$config['language'].'/lang_main.php';
include_once './inc/functions_files.php';
include_once './inc/functions_sql.php';
$msg = '';
$dump = [];
if (isset($config['auto_delete']) && (1 == $config['auto_delete'])) {
$msg = AutoDelete();
}
get_sql_encodings(); // get possible sql charsets and also get default charset
//0=Datenbank 1=Struktur
$action = (isset($_GET['action'])) ? $_GET['action'] : 'files';
$kind = (isset($_GET['kind'])) ? $_GET['kind'] : 0;
$expand = (isset($_GET['expand'])) ? $_GET['expand'] : -1;
$selectfile = (isset($_POST['selectfile'])) ? $_POST['selectfile'] : '';
$destfile = (isset($_POST['destfile'])) ? $_POST['destfile'] : '';
$compressed = (isset($_POST['compressed'])) ? $_POST['compressed'] : '';
$dk = (isset($_POST['dumpKommentar'])) ? $_POST['dumpKommentar'] : '';
$dk = str_replace(':', '|', $dk); // remove : because of statusline
$dump['sel_dump_encoding'] = (isset($_POST['sel_dump_encoding'])) ? $_POST['sel_dump_encoding'] : get_index($config['mysql_possible_character_sets'], $config['mysql_standard_character_set']);
$dump['dump_encoding'] = isset($config['mysql_possible_character_sets'][$dump['sel_dump_encoding']]) ? $config['mysql_possible_character_sets'][$dump['sel_dump_encoding']] : 0;
if ('dl' == $action) {
// Download of a backup file wanted
$file = './'.$config['paths']['backup'].urldecode($_GET['f']);
if (is_readable($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: '.(string) filesize($file));
flush();
$file = fopen($file, 'rb');
while (!feof($file)) {
echo fread($file, round(100 * 1024));
flush();
}
fclose($file);
}
//readfile($file);
exit();
}
if (!@ob_start('ob_gzhandler')) {
@ob_start();
}
echo MODHeader();
$toolboxstring = '';
$fpath = $config['paths']['backup'];
$dbactiv = (isset($_GET['dbactiv'])) ? $_GET['dbactiv'] : $databases['db_actual'];
$databases['multi'] = [];
if ('' == $databases['multisetting']) {
$databases['multi'][0] = $databases['db_actual'];
} else {
$databases['multi'] = explode(';', $databases['multisetting']);
$multi_praefixe = [];
$multi_praefixe = explode(';', $databases['multisetting_praefix']);
$toolboxstring = '<br>';
if (is_array($databases['multi'])) {
for ($i = 0; $i < sizeof($databases['multi']); ++$i) {
if ($i > 0) {
$toolboxstring .= ', ';
}
$toolboxstring .= $databases['multi'][$i];
if ($multi_praefixe[$i] > '') {
$toolboxstring .= ' (<i>\''.$multi_praefixe[$i].'\'</i>)';
}
}
}
}
//*** Abfrage ob Dump nach Tabellenaufruf ***
if (isset($_POST['dump_tbl'])) {
$check_dirs = TestWorkDir();
if (true === !$check_dirs) {
exit($check_dirs);
}
$databases['db_actual_tableselected'] = substr($_POST['tbl_array'], 0, strlen($_POST['tbl_array']) - 1);
WriteParams();
$dump['fileoperations'] = 0;
echo '<script>parent.MyOOS_Dumper_content.location.href="dump.php?comment='.urlencode($dk).'&sel_dump_encoding='.$dump['sel_dump_encoding'].'&config='.urlencode($config['config_file']).'";</script></body></html>';
exit();
}
//*** Abfrage ob Dump ***
if (isset($_POST['dump'])) {
if (isset($_POST['tblfrage']) && 1 == $_POST['tblfrage']) {
//Tabellenabfrage
$tblfrage_refer = 'dump';
include 'inc/table_query.php';
exit();
} else {
@$check_dir = TestWorkDir();
if (true === !$check_dir) {
exit($check_dir);
}
$databases['db_actual_tableselected'] = '';
WriteParams();
$dump['fileoperations'] = 0;
$sUrl = 'dump.php?comment='.urlencode($dk).'&sel_dump_encoding='.$dump['sel_dump_encoding'].'&config='.urlencode($config['config_file']);
if ((isset($config['optimize_tables_beforedump']) && (1 == $config['optimize_tables_beforedump']))) {
echo '<div id="pagetitle">'.$lang['L_DUMP_HEADLINE'].'</div><div id="content"><p>';
echo '<br><br><p>'.sprintf($lang['L_DUMP_INFO'], $sUrl).'</p></div>';
}
echo '<script>parent.MyOOS_Dumper_content.location.href="dump.php?comment='.urlencode($dk).'&sel_dump_encoding='.$dump['sel_dump_encoding'].'&config='.urlencode($config['config_file']).'";</script></body></html>';
exit();
}
}
//*** Abfrage ob Restore nach Tabellenaufruf ***
if (isset($_POST['restore_tbl'])) {
$databases['db_actual_tableselected'] = substr($_POST['tbl_array'], 0, strlen($_POST['tbl_array']) - 1);
WriteParams();
echo '<script>parent.MyOOS_Dumper_content.location.href="restore.php?filename='.urlencode($_POST['filename']).'";</script></body></html>';
exit();
}
//*** Abfrage ob Restore ***
if (isset($_POST['restore'])) {
if (isset($_POST['file'])) {
if (isset($_POST['tblfrage']) && 1 == $_POST['tblfrage']) {
//Tabellenabfrage
$tblfrage_refer = 'restore';
$filename = urldecode($_POST['file'][0]);
include 'inc/table_query.php';
exit();
} else {
$file = $_POST['file'][0];
$statusline = read_statusline_from_file($file);
if (isset($_POST['sel_dump_encoding_restore'])) {
$encodingstring = $config['mysql_possible_character_sets'][$_POST['sel_dump_encoding_restore']];
$encoding = explode(' ', $encodingstring);
$dump_encoding = $encoding[0];
} else {
if (!isset($statusline['charset']) || '?' == trim($statusline['charset'])) {
echo headline($lang['L_FM_RESTORE'].': '.$file);
// if we can't detect encoding ask user
echo '<br>'.$lang['L_CHOOSE_CHARSET'].'<br><br>';
echo '<form action="filemanagement.php?action=restore&amp;kind=0" method="POST">';
echo '<table><tr><td>'.$lang['L_FM_CHOOSE_ENCODING'].':</td><td>';
echo '<select name="sel_dump_encoding_restore">';
echo make_options($config['mysql_possible_character_sets'], $dump['sel_dump_encoding']);
echo '</select></td></tr><tr><td>';
echo $lang['L_MYSQL_CONNECTION_ENCODING'].':</td><td><strong>'.$config['mysql_standard_character_set'].'</strong></td></tr>';
echo '<tr><td colspan="2"><br><input type="submit" name="restore" class="Formbutton" value="'.$lang['L_FM_RESTORE'].'">';
echo '<input type="hidden" name="file[0]" value="'.$file.'">';
echo '</td></tr></table></form></body></html>';
exit();
} else {
$dump_encoding = $statusline['charset'];
}
}
$databases['db_actual_tableselected'] = '';
WriteParams();
echo '<script>parent.MyOOS_Dumper_content.location.href="restore.php?filename='.$file.'&dump_encoding='.$dump_encoding.'&kind='.$kind.'";</script></body></html>';
exit();
}
} else {
$msg .= '<p class="error">'.$lang['L_FM_NOFILE'].'</p>';
}
}
//*** Abfrage ob Delete ***
$del = [];
if (isset($_POST['delete'])) {
if (isset($_POST['file'])) {
$delfiles = [];
for ($i = 0; $i < count($_POST['file']); ++$i) {
if (false === !strpos($_POST['file'][$i], '_part_')) {
$delfiles[] = substr($_POST['file'][$i], 0, strpos($_POST['file'][$i], '_part_') + 6).'*';
} else {
$delfiles[] = $_POST['file'][$i];
}
}
for ($i = 0; $i < count($delfiles); ++$i) {
$del = array_merge($del, DeleteFilesM($fpath, $delfiles[$i]));
}
} else {
$msg .= '<p class="error">'.$lang['L_FM_NOFILE'].'</p>';
}
}
if (isset($_POST['deleteauto'])) {
$delete_result = AutoDelete();
if ($delete_result > '') {
$msg .= '<p class="small">'.$delete_result.'</p>';
}
}
if (isset($_POST['deleteall']) || isset($_POST['deleteallfilter'])) {
if (isset($_POST['deleteall'])) {
$del = DeleteFilesM($fpath, '*.sql');
$del = array_merge($del, DeleteFilesM($fpath, '*.gz'));
} else {
$del = DeleteFilesM($fpath, $databases['db_actual'].'*');
}
}
// print file-delete-messages
if (is_array($del) && sizeof($del) > 0) {
foreach ($del as $filename => $success) {
if ($success) {
$msg .= '<span class="small">';
$msg .= $lang['L_FM_DELETE1'].' \''.$filename.'\' '.$lang['L_FM_DELETE2'];
WriteLog("deleted '$filename'.");
$msg .= '</span><br>';
} else {
$msg .= '<span class="small error">';
$msg .= $lang['L_FM_DELETE1'].' \''.$filename.'\' '.$lang['L_FM_DELETE3'];
WriteLog("deleted '$filename'.");
$msg .= '</span><br>';
}
}
}
// Upload
if (isset($_POST['upload'])) {
$error = false;
if (!isset($_FILES['upfile']['name'])) {
echo '<span class="error">'.$lang['L_FM_UPLOADFILEREQUEST'].'</span><br><br>';
} else {
if (!file_exists($fpath.$_FILES['upfile']['name'])) {
// Extension ermitteln -strrpos f&auml;ngt hinten an und ermittelt somit den letzten Punkt
$endung = strrchr($_FILES['upfile']['name'], '.');
$erlaubt = [
'.gz', '.sql', ];
if (!in_array($endung, $erlaubt)) {
$msg .= '<font color="red">'.$lang['L_FM_UPLOADNOTALLOWED1'].'<br>';
$msg .= $lang['L_FM_UPLOADNOTALLOWED2'].'</font>';
} else {
if (!$error) {
if (move_uploaded_file($_FILES['upfile']['tmp_name'], $fpath.$_FILES['upfile']['name'])) {
@chmod($fpath.$upfile_name, 0777);
} else {
$error .= '<font color="red">'.$lang['L_FM_UPLOADMOVEERROR'].'<br>';
}
}
if ($error) {
$msg .= $error.'<font color="red">'.$lang['L_FM_UPLOADFAILED'].'</font><br>';
}
}
} else {
$msg .= '<font color="red">'.$lang['L_FM_UPLOADFILEEXISTS'].'</font><br>';
}
}
}
//Seitenteile vordefinieren
$href = 'filemanagement.php?action='.$action.'&amp;kind='.$kind;
$tbl_abfrage = '';
if (isset($config['multi_dump']) && (0 == $config['multi_dump'])) {
$tbl_abfrage = '<tr><td>'.$lang['L_FM_SELECTTABLES'].'</td><td><input type="checkbox" class="checkbox" name="tblfrage" value="1"></td></tr>';
}
$dk = (isset($_POST['dumpKommentar'])) ? htmlentities($_POST['dumpKommentar']) : '';
$tbl_abfrage .= '<tr><td>'.$lang['L_FM_COMMENT'].':</td><td><input type="text" class="text" style="width:260px;" name="dumpKommentar" value="'.$dk.'"></td></tr>';
$autodel = '<p class="autodel">'.$lang['L_AUTODELETE'].': ';
$autodel .= (isset($config['auto_delete']) && (0 == $config['auto_delete'])) ? $lang['L_NOT_ACTIVATED'] : $lang['L_ACTIVATED'];
if (isset($config['max_backup_files'])) {
$autodel .= ' ('.$config['max_backup_files'].' '.$lang['L_MAX_BACKUP_FILES_EACH2'].')';
}
$autodel .= '</p>';
//Fallunterscheidung
switch ($action) {
case 'dump':
$dbName = $databases['Name'][$databases['db_selected_index']];
if ((isset($config['multi_dump']) && (0 == $config['multi_dump'])) && in_array($dbName, $dontBackupDatabases)) {
echo headline($lang['L_FM_DUMP_HEADER'].' <span class="small">("'.$lang['L_CONFIG_HEADLINE'].': '.$config['config_file'].'")</span>');
echo '<span class="error">'.sprintf($lang['L_BACKUP_NOT_POSSIBLE'], $dbName).'</span>';
break;
}
if (isset($config['multi_dump']) && (0 == $config['multi_dump'])) {
DBDetailInfo($databases['db_selected_index']);
}
$cext = (isset($config['cron_extender']) && (0 == $config['cron_extender'])) ? 'pl' : 'cgi';
$actualUrl = substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/') + 1);
if ('/' != substr($actualUrl, -1)) {
$actualUrl .= '/';
}
if ('/' != substr($actualUrl, 0, 1)) {
$actualUrl = "/$actualUrl";
}
$refdir = ('/' == substr($config['cron_execution_path'], 0, 1)) ? '' : $actualUrl;
$scriptdir = $config['cron_execution_path'].'crondump.'.$cext;
$sfile = $config['cron_execution_path']."perltest.$cext";
$simplefile = $config['cron_execution_path']."simpletest.$cext";
$scriptentry = Realpfad('./').$config['paths']['config'];
$cronabsolute = ('/' == substr($config['cron_execution_path'], 0, 1)) ? $_SERVER['DOCUMENT_ROOT'].$scriptdir : Realpfad('./').$scriptdir;
$confabsolute = $config['config_file'];
$scriptref = getServerProtocol().$_SERVER['SERVER_NAME'].$refdir.$config['cron_execution_path'].'crondump.'.$cext.'?config='.$confabsolute;
$cronref = 'perl '.$cronabsolute.' -config='.$confabsolute.' -html_output=0';
//Ausgabe
echo headline($lang['L_FM_DUMP_HEADER'].' <span class="small">("'.$lang['L_CONFIG_HEADLINE'].': '.$config['config_file'].'")</span>');
if (!is_writable($config['paths']['backup'])) {
exit('<span class="error">'.sprintf($lang['L_WRONG_RIGHTS'], 'work/backup', '777').'</span>');
}
echo ($msg > '') ? $msg.'<br>' : '';
echo $autodel;
//Auswahl
echo '<div>
<input type="button" value=" '.$lang['L_DUMP'].' PHP " class="Formbutton" onclick="document.getElementById(\'buperl\').style.display=\'none\';document.getElementById(\'buphp\').style.display=\'block\';">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value=" '.$lang['L_DUMP'].' PERL " class="Formbutton" onclick="document.getElementById(\'buphp\').style.display=\'none\';document.getElementById(\'buperl\').style.display=\'block\';">
</div>';
echo '<div id="buphp">';
//Dumpsettings
echo '<h6>'.$lang['L_DUMP'].' (PHP)</h6>';
echo '<div><form name="fm" id="fm" method="post" action="'.$href.'">';
echo '<input class="Formbutton" name="dump" type="submit" value="';
echo $lang['L_FM_STARTDUMP'].'"><br>';
echo '<br><table>';
echo $tbl_abfrage;
echo '<tr><td><label for="sel_dump_encoding">'.$lang['L_FM_CHOOSE_ENCODING'].'</label></td>';
echo '<td><select name="sel_dump_encoding" id="sel_dump_encoding">';
echo make_options($config['mysql_possible_character_sets'], $dump['sel_dump_encoding']);
echo '</select></td></tr>';
echo '<tr><td>'.$lang['L_MYSQL_CONNECTION_ENCODING'].':</td><td><strong>'.$config['mysql_standard_character_set'].'</strong></td></tr>';
echo '</table>';
echo '</form><br></div>';
echo '<h6>'.$lang['L_FM_DUMPSETTINGS'].' (PHP)</h6>';
echo '<table>';
echo '<tr><td>'.$lang['L_DB'].':</td><td><strong>';
if (isset($config['multi_dump']) && (1 == $config['multi_dump'])) {
echo 'Multidump ('.count($databases['multi']).' '.$lang['L_DBS'].')</strong>';
echo '<span class="small">'.$toolboxstring.'</span>';
} else {
echo $databases['db_actual'];
if (isset($databases['Detailinfo'])) {
echo '&nbsp;&nbsp;<span> ('.$databases['Detailinfo']['tables'].' Tables, '.$databases['Detailinfo']['records'].' Records, '.byte_output($databases['Detailinfo']['size']).')</span>';
}
echo '</strong>';
}
echo '</td></tr>';
if ((isset($config['multi_dump']) && (0 == $config['multi_dump'])) && $databases['praefix'][$databases['db_selected_index']] > '') {
echo '<tr><td>'.$lang['L_PRAEFIX'].':</td><td><strong>';
echo $databases['praefix'][$databases['db_selected_index']];
echo '</strong></td></tr>';
}
echo '<tr><td>'.$lang['L_GZIP'].':</td><td><strong>'.((isset($config['compression']) && (1 == $config['compression'])) ? $lang['L_ACTIVATED'] : $lang['L_NOT_ACTIVATED']);
echo '</strong></td></tr>';
echo '<tr><td>'.$lang['L_MULTI_PART'].':</td><td><strong>'.((isset($config['multi_part']) && (1 == $config['multi_part'])) ? $lang['L_YES'] : $lang['L_NO']);
echo '</strong></td></tr>';
if (isset($config['multi_part']) && (1 == $config['multi_part'])) {
echo '<tr><td>'.$lang['L_MULTI_PART_GROESSE'].':</td><td><strong>'.byte_output($config['multipart_groesse']).'</strong></td></tr>';
}
if (isset($config['send_mail']) && (1 == $config['send_mail'])) {
$t = $config['email_recipient'].((1 == $config['send_mail_dump']) ? $lang['L_WITHATTACH'] : $lang['L_WITHOUTATTACH']);
}
echo '<tr><td>'.$lang['L_SEND_MAIL_FORM'].':</td><td><strong>'.((isset($config['send_mail']) && (1 == $config['send_mail'])) ? $t : $lang['L_NOT_ACTIVATED']);
echo '</strong></td></tr>';
for ($x = 0; $x < 3; ++$x) {
if (isset($config['ftp_transfer'][$x]) && $config['ftp_transfer'][$x] > 0) {
echo table_output($lang['L_FTP_TRANSFER'], sprintf(str_replace('<br>', ' ', $lang['L_FTP_SEND_TO']), $config['ftp_server'][$x], $config['ftp_dir'][$x]), 1, 2);
}
if (isset($config['sftp_transfer'][$x]) && $config['sftp_transfer'][$x] > 0) {
echo table_output($lang['L_SFTP_TRANSFER'], sprintf(str_replace('<br>', ' ', $lang['L_SFTP_SEND_TO']), $config['sftp_server'][$x], $config['sftp_dir'][$x]), 1, 2);
}
}
//echo '</td></tr>';
echo '</table>';
echo '<div style="display:none"><img src="'.$config['files']['iconpath'].'progressbar_dump.gif" alt=""><br><img src="'.$config['files']['iconpath'].'progressbar_speed.gif" alt=""></div>';
echo '</div><div id="buperl" style="display:none;">';
//crondumpsettings
echo '<h6>'.$lang['L_DUMP'].' (PERL)</h6>';
echo '<p><input class="Formbutton" type="Button" name="DoCronscript" value="'.$lang['L_DOCRONBUTTON'].'" onclick="self.location.href=\''.$scriptref.'\'">&nbsp;&nbsp;';
echo '<input class="Formbutton" type="Button" name="DoPerlTest" value="'.$lang['L_DOPERLTEST'].'" onclick="self.location.href=\''.$sfile.'\'">&nbsp;&nbsp;';
echo '<input class="Formbutton" type="Button" name="DoSimpleTest" value="'.$lang['L_DOSIMPLETEST'].'" onclick="self.location.href=\''.$simplefile.'\'"></p>';
echo '<h6>'.$lang['L_FM_DUMPSETTINGS'].' (PERL)</h6>';
if (-3 == $config['cron_dbindex']) {
$cron_dbname = $lang['L_MULTIDUMPALL'];
$cron_dbpraefix = '';
} elseif (-2 == $config['cron_dbindex']) {
//$cron_dbname='Multidump ('.count($databases['multi']).' '.$lang['L_DBS'].')';
$cron_dbname = 'Multidump ('.count($databases['multi']).' '.$lang['L_DBS'].')</strong>';
$cron_dbname .= '<span class="small">'.$toolboxstring.'</span>';
$cron_dbpraefix = '';
} else {
$cron_dbname = $databases['Name'][$config['cron_dbindex']];
$cron_dbpraefix = $databases['praefix'][$config['cron_dbindex']];
}
echo '<table>';
echo '<tr><td>'.$lang['L_DB'].':</td><td><strong>'.$cron_dbname.'</strong></td></tr>';
if ($cron_dbpraefix > '') {
echo '<tr><td>'.$lang['L_PRAEFIX'].':</td><td><strong>';
echo $cron_dbpraefix.'</strong></td></tr>';
}
echo '<tr><td>'.$lang['L_GZIP'].':</td><td><strong>'.((isset($config['cron_compression']) && (1 == $config['cron_compression'])) ? $lang['L_ACTIVATED'] : $lang['L_NOT_ACTIVATED']);
echo '</strong></td></tr>';
echo '<tr><td>'.$lang['L_MULTI_PART'].':</td><td><strong>'.((isset($config['multi_part']) && (1 == $config['multi_part'])) ? $lang['L_YES'] : $lang['L_NO']);
echo '</strong></td></tr>';
if (isset($config['multi_part']) && (1 == $config['multi_part'])) {
echo '<tr><td>'.$lang['L_MULTI_PART_GROESSE'].':</td><td><strong>'.byte_output($config['multipart_groesse']).'</td></tr>';
}
echo '<tr><td>'.$lang['L_CRON_PRINTOUT'].':</td><td><strong>'.((isset($config['cron_printout']) && (1 == $config['cron_printout'])) ? $lang['L_ACTIVATED'] : $lang['L_NOT_ACTIVATED']).'</strong></td></tr>';
if (isset($config['send_mail']) && (1 == $config['send_mail'])) {
$t = $config['email_recipient'].((1 == $config['send_mail_dump']) ? $lang['L_WITHATTACH'] : $lang['L_WITHOUTATTACH']);
}
echo '<tr><td>'.$lang['L_SEND_MAIL_FORM'].':</td><td><strong>'.((isset($config['send_mail']) && (1 == $config['send_mail'])) ? $t : $lang['L_NOT_ACTIVATED']).'</strong></td></tr>';
for ($x = 0; $x < 3; ++$x) {
if (isset($config['ftp_transfer'][$x]) && $config['ftp_transfer'][$x] > 0) {
echo table_output($lang['L_FTP_TRANSFER'], sprintf(str_replace('<br>', ' ', $lang['L_FTP_SEND_TO']), $config['ftp_server'][$x], $config['ftp_dir'][$x]), 1, 2);
}
if (isset($config['sftp_transfer'][$x]) && $config['sftp_transfer'][$x] > 0) {
echo table_output($lang['L_SFTP_TRANSFER'], sprintf(str_replace('<br>', ' ', $lang['L_SFTP_SEND_TO']), $config['sftp_server'][$x], $config['sftp_dir'][$x]), 1, 2);
}
}
//echo '</td></tr>';
echo '</table>';
// Eintraege fuer Perl
echo '<br><p class="small">'.$lang['L_PERLOUTPUT1'].':<br>&nbsp;&nbsp;&nbsp;&nbsp;<strong>'.$scriptentry.'</strong><br>';
echo $lang['L_PERLOUTPUT2'].':<br>&nbsp;&nbsp;&nbsp;&nbsp;<strong>'.$scriptref.'</strong><br>';
echo $lang['L_PERLOUTPUT3'].':<br>&nbsp;&nbsp;&nbsp;&nbsp;<strong>'.$cronref.'</strong></p>';
echo '</div>';
break;
case 'restore':
echo headline(sprintf($lang['L_FM_RESTORE_HEADER'], $databases['db_actual']));
echo ($msg > '') ? $msg : '';
echo $autodel;
echo '<form name="fm" id="fm" method="post" action="'.$href.'">';
echo '<div>';
echo '<input class="Formbutton" name="restore" type="submit" value="'.$lang['L_FM_RESTORE'].'" onclick="if (!confirm(\''.$lang['L_FM_ALERTRESTORE1'].' `'.$databases['db_actual'].'` '.$lang['L_FM_ALERTRESTORE2'].' `\' + GetSelectedFilename() + \'` '.$lang['L_FM_ALERTRESTORE3'].'\')) return false;">';
echo '<input class="Formbutton" name="restore" type="submit" value="'.$lang['L_RESTORE_OF_TABLES'].'" onclick="document.forms[0].tblfrage.value=1;">';
echo FileList();
echo '<input type="hidden" name="tblfrage" value="0">';
echo '</div></form>';
break;
case 'files':
$sysfedit = (isset($_POST['sysfedit'])) ? 1 : 0;
$sysfedit = (isset($_GET['sysfedit'])) ? $_GET['sysfedit'] : $sysfedit;
echo headline($lang['L_FILE_MANAGE']);
echo ($msg > '') ? $msg.'<br>' : '';
echo $autodel;
echo '<form name="fm" id="fm" method="post" action="'.$href.'">';
echo '<input class="Formbutton" name="delete" type="submit" value="'.$lang['L_FM_DELETE'].'" onclick="if (!confirm(\''.$lang['L_FM_ASKDELETE1'].'\n\' + GetSelectedFilename() + \'\n\n'.$lang['L_FM_ASKDELETE2'].'\')) return false;">';
echo '<input class="Formbutton" name="deleteauto" type="submit" value="'.$lang['L_FM_DELETEAUTO'].'" onclick="if (!confirm(\''.$lang['L_FM_ASKDELETE3'].'\')) return false;">';
echo '<input class="Formbutton" name="deleteall" type="submit" value="'.$lang['L_FM_DELETEALL'].'" onclick="if (!confirm(\''.$lang['L_FM_ASKDELETE4'].'\')) return false;">';
echo '<input class="Formbutton" name="deleteallfilter" type="submit" value="'.$lang['L_FM_DELETEALLFILTER'].$databases['db_actual'].$lang['L_FM_DELETEALLFILTER2'].'" onclick="if (!confirm(\''.$lang['L_FM_ASKDELETE5'].$databases['db_actual'].$lang['L_FM_ASKDELETE5_2'].'\')) return false;">';
echo FileList().'</form>';
echo '<h6>'.$lang['L_FM_FILEUPLOAD'].'</h6>';
echo '<div align="left"><form action="'.$href.'" method="POST" enctype="multipart/form-data">';
echo '<input type="file" name="upfile" class="Formtext" size="60">';
echo '<input type="submit" name="upload" value="'.$lang['L_FM_FILEUPLOAD'].'" class="Formbutton">';
echo '<br>'.$lang['L_MAX_UPLOAD_SIZE'].': <strong>'.$config['upload_max_filesize'].'</strong>';
echo '<br>'.$lang['L_MAX_UPLOAD_SIZE_INFO'];
echo '</form></div>';
echo '<h6>Tools</h6><div align="left">';
echo '<input type="Button" onclick="document.location=\'filemanagement.php?action=convert\'" class="Formbutton" value="'.$lang['L_CONVERTER'].'">';
echo '</div>';
break;
case 'convert':
// Konverter
echo headline($lang['L_CONVERTER']);
echo '<br><br><form action="filemanagement.php?action=convert" method="post">';
echo '<table class="bdr"><tr><th colspan="2">'.$lang['L_CONVERT_TITLE'].'</th></tr>';
echo '<tr><td>'.$lang['L_CONVERT_FILE'].'</td><td>'.FilelisteCombo($config['paths']['backup'], $selectfile).'</td></tr>';
echo '<tr><td>'.$lang['L_CONVERT_FILENAME'].':</td><td><input type="text" name="destfile" size="50" value="'.$destfile.'"></td></tr>';
echo '<tr><td><input type="checkbox" name="compressed" value="1" '.((1 == $compressed) ? 'checked' : '').'>&nbsp;'.$lang['L_COMPRESSED'].'</td>';
echo '<td><input type="submit" name="startconvert" value=" '.$lang['L_CONVERT_START'].' " class="Formbutton"></td></tr>';
echo '</table></form><br>';
if (isset($_POST['startconvert'])) {
//$destfile.=($compressed==1) ? ".sql.gz" : ".sql";
echo $lang['L_CONVERTING']." $selectfile ==&gt; $destfile<br>";
if ('' != $selectfile && file_exists($config['paths']['backup'].$selectfile) && strlen($destfile) > 2) {
Converter($selectfile, $destfile, $compressed);
} else {
echo $lang['L_CONVERT_WRONG_PARAMETERS'];
}
}
}
echo MODFooter();
ob_end_flush();
exit();