Help'; } else { return 'Help'; } } function DeleteFilesM($dir, $pattern = "*.*") { $deleted = false; $pattern = str_replace(array("\*","\?"), array(".*","."), preg_quote($pattern)); if (substr($dir,-1) != "/") $dir.= "/"; if (is_dir($dir)) { $d = opendir($dir); while ($file = readdir($d)) { if (is_file($dir.$file) && ereg("^".$pattern."$", $file)) { if (unlink($dir.$file)) $deleted[] = $file; } } closedir($d); return $deleted; } else return 0; } function SetDefault($load_default=false) { global $config,$databases,$nl,$out,$lang,$preConfig; //Arrays löschen $i=0; $databases['Name']=Array(); $old_lang=isset($config['language']) && in_array($config['language'],$lang['languages']) ? $config['language'] : ''; if($load_default==true) { if(file_exists($config['files']['parameter'])) @unlink($config['files']['parameter']); include("./config.php"); if(is_array($preConfig)) { foreach($preConfig as $key=>$val) {$config[$key]=$val;} } if($old_lang!='') $config['language']=$old_lang; include("./language/".$config['language']."/lang.php"); } //DB-Liste holen MSD_mysql_connect(); $create_statement='CREATE TABLE `mysqldumper_test_abcxyvfgh` (`test` varchar(200) default NULL, `id` bigint(20) unsigned NOT NULL auto_increment,' .'PRIMARY KEY (`id`)) TYPE=MyISAM;'; $res = mysql_query("SHOW DATABASES ;",$config['dbconnection']); if (!$res===false) { $numrows=mysql_numrows($res); $a=0; for($i=0;$i<$numrows;$i++) { $row = mysql_fetch_row($res); $found_db=$row[0]; // Testverbindung - Tabelle erstellen, nachschauen, ob es geklappt hat und dann wieder löschen $use=@mysql_select_db($found_db); if ($use) { $res2=mysql_query("DROP TABLE IF EXISTS `mysqldumper_test_abcxyvfgh`",$config['dbconnection']); $res2=mysql_query($create_statement,$config['dbconnection']); if (!$res2===false) { $res2=mysql_query("DROP TABLE IF EXISTS `mysqldumper_test_abcxyvfgh`",$config['dbconnection']); if( isset($old_db) && $found_db==$old_db) $databases['db_selected_index']=$a; $databases['Name'][$a]=$found_db; $databases['praefix'][$a]=""; $databases['command_before_dump'][$a] = ""; $databases['command_after_dump'][$a] = ""; $out.=$lang['saving_db_form']." ".$found_db." ".$lang['added']."$nl"; $a++; } } } if(!isset($databases['db_selected_index'])) { $databases['db_selected_index']=0; $databases['db_actual']=$databases['Name'][0]; } $databases['db_actual_cronpraefix']=""; $databases['db_actual_cronindex']=0; } WriteParams(1); if($load_default===true) WriteLog("default settings loaded."); return $out; } function WriteParams($as=0) { global $config,$databases,$config_dontsave; $nl="\n"; FillMultiDBArrays(); check_manual_dbs(); //Parameter zusammensetzen $config['multipart_groesse']=$config['multipartgroesse1']*(($config['multipartgroesse2']==1) ? 1024 : 1024*1024); $param=$pars_all=' $val){ if (!in_array($var,$config_dontsave)) { if(is_array($val)) { foreach($val as $var2 => $val2){ if ($config['magic_quotes_gpc']==0 || $as==1) { $pars_all.='$config[\''.$var.'\']['.((is_int($var2)) ? $var2 : "'".$var2."'").'] = \''.addslashes($val2)."';$nl"; } else { $pars_all.='$config[\''.$var.'\']['.((is_int($var2)) ? $var2 : "'".$var2."'").'] = \''.$val2."';$nl"; } } } else { if ($config['magic_quotes_gpc']==0 || $as==1) { if(!in_array($var,$config_dontsave)) $pars_all.='$config[\''.$var.'\'] = \''.addslashes($val)."';$nl"; } else { if(!in_array($var,$config_dontsave)) $pars_all.='$config[\''.$var.'\'] = \''.$val."';$nl"; } } } } foreach($databases as $var => $val){ if(is_array($val)) { foreach($val as $var2 => $val2){ if ($config['magic_quotes_gpc']==0 || $as==1) { $pars_all.='$databases[\''.$var.'\']['.((is_int($var2)) ? $var2 : "'".$var2."'").'] = \''.addslashes($val2)."';$nl"; } else { $pars_all.='$databases[\''.$var.'\']['.((is_int($var2)) ? $var2 : "'".$var2."'").'] = \''.$val2."';$nl"; } } } else { if ($config['magic_quotes_gpc']==0 || $as==1) { $pars_all.='$databases[\''.$var.'\'] = \''.addslashes($val)."';$nl"; } else { $pars_all.='$databases[\''.$var.'\'] = \''.$val."';$nl"; } } } $param.='?>'; $pars_all.='?>'; //Datei öffnen und schreiben $ret=true; @chmod($config['files']['parameter'], 0777); if ($fp=fopen($config['files']['parameter'], "wb")) { if (!fwrite($fp,$pars_all)) $ret=false; if (!fclose($fp)) $ret=false; } else $ret=false; $ret=WriteCronScript(); return $ret; } function escape_specialchars($text) { // $tomask=Array('@'=>'\@','$'=>'\$','\\'=>'\\\\'); $suchen=ARRAY('@','$','\\\\'); $ersetzen=ARRAY('\@','\$','\\'); $text=str_replace($suchen,$ersetzen,$text); return $text; } function WriteCronScript() { global $nl, $config, $databases, $cron_save_all_dbs, $cron_db_array,$cron_dbpraefix_array,$cron_db_cbd_array,$cron_db_cad_array; if (!isset($databases['db_selected_index'])) $databases['db_selected_index']=0; if(!isset($databases['praefix'][$databases['db_selected_index']])) $databases['praefix'][$databases['db_selected_index']]=""; if(!isset($databases['db_actual_cronindex'])) $databases['db_actual_cronindex']=$databases['db_selected_index']; if(!isset($config['email_maxsize'])) $config['email_maxsize']=$config['email_maxsize1']*(($config['email_maxsize2']==1) ? 1024 : 1024*1024); if($config['cron_samedb']==0) { $cron_dbname=(isset($databases['db_actual'])) ? $databases['db_actual']:0; $cron_dbpraefix = $databases['praefix'][$databases['db_selected_index']]; } else { if($databases['db_actual_cronindex']>=0) { $cron_dbname=$databases['Name'][$databases['db_actual_cronindex']]; $cron_dbpraefix = $databases['db_actual_cronpraefix']; } else { $cron_dbname=$databases['db_actual']; $cron_dbpraefix = $databases['praefix'][$databases['db_selected_index']]; } } if($databases['db_actual_cronindex']=="-2") { $cron_save_all_dbs=1; $datenbanken=count($databases['Name']); $cron_db_array=str_replace(";","|",$databases['multisetting']); $cron_dbpraefix_array=str_replace(";","|",$databases['multisetting_praefix']); $cron_db_cbd_array=str_replace(";","|",$databases['multisetting_commandbeforedump']); $cron_db_cad_array=str_replace(";","|",$databases['multisetting_commandafterdump']); } if ($databases['db_actual_cronindex']=="-3") { $cron_save_all_dbs=1; $cron_db_array=implode("|",$databases['Name']); $cron_dbpraefix_array=implode("|",$databases['praefix']); $cron_db_cbd_array=implode("|",$databases['command_before_dump']); $cron_db_cad_array=implode("|",$databases['command_after_dump']); } if($databases['db_actual_cronindex']<0) { $csadb='$cron_save_all_dbs=1;'.$nl; $csadb.='$cron_db_array=qw('.$cron_db_array.');'.$nl; $csadb.='$cron_dbpraefix_array=qw('.$cron_dbpraefix_array.');'.$nl; $csadb.='$dbpraefix="";'.$nl; $csadb.='$command_beforedump_array="'.$cron_db_cbd_array.'";'.$nl; $csadb.='$command_afterdump_array="'.$cron_db_cad_array.'";'.$nl; } else { $csadb='$cron_save_all_dbs=0;'.$nl; $csadb.='$cron_db_array="";'.$nl; $csadb.='$cron_dbpraefix_array="";'.$nl; $csadb.='$dbpraefix="'.$cron_dbpraefix.'";'.$nl; if (!isset($databases['command_before_dump'][$databases['db_selected_index']])) $databases['command_before_dump'][$databases['db_selected_index']]=''; $csadb.='$command_beforedump_array="'.$databases['command_before_dump'][$databases['db_selected_index']].'";'.$nl; if (!isset($databases['command_after_dump'][$databases['db_selected_index']])) $databases['command_after_dump'][$databases['db_selected_index']]=''; $csadb.='$command_afterdump_array="'.$databases['command_after_dump'][$databases['db_selected_index']].'";'.$nl; } $r=str_replace("\\\\","/",$config['paths']['root']); $r=str_replace("@","\@",$r); $p1=$r.$config['paths']['backup']; $p2=$r.$config['files']['perllog'].(($config['logcompression']==1) ? '.gz':''); $p3=$r.$config['files']['perllogcomplete'].(($config['logcompression']==1) ? '.gz':''); // auf manchen Server wird statt 0 ein leerer String gespeichert -> fuehrt zu einem Syntax-Fehler // hier die entsprechenden Ja/Nein-Variablen sicherheitshalber in intvalues aendern $int_array=array('dbport','cron_compression','cron_printout','cron_mail','cron_mail_dump','multi_part', 'multipart_groesse','email_maxsize','auto_delete','del_files_after_days', 'del_files_after_days','max_backup_files','perlspeed','optimize_tables_beforedump', 'logcompression','log_maxsize','backup_complete_inserts','backup_extended_inserts', 'backup_delayed_inserts','backup_ignore_inserts','backup_lock_tables','cron_completelog'); foreach ($int_array as $i) { $config[$i]=intval($config[$i]); } if ($config['dbport']==0) $config['dbport']=3306; $cronscript=""; //Datei öffnen und schreiben $ret=true; $ext=($config['cron_extender']==0) ? "pl" : "cgi"; $sfile=$config['paths']['config'].$config['cron_configurationfile']; if(substr($sfile,-5)=='.conf') { @unlink($sfile); $sfile.='.php'; } if(file_exists($sfile)) @chmod("$sfile",0777); if ($fp=fopen($sfile, "wb")) { if (!fwrite($fp,$cronscript)) $ret=false; if (!fclose($fp)) $ret=false; } else $ret=false; if(file_exists($config['paths']['config']."mysqldumper.conf")) @unlink($config['paths']['config']."mysqldumper.conf"); if(!file_exists($config['paths']['config']."mysqldumper.conf.php")) { $sfile=$config['paths']['config']."mysqldumper.conf.php"; if ($fp=fopen($sfile, "wb")) { if (!fwrite($fp,$cronscript)) $ret=false; if (!fclose($fp)) $ret=false; //chmod("$sfile",0755); } else $ret=false; } return $ret; } function LogFileInfo($logcompression) { global $config; $l=Array();$sum=$s=$l['log_size']=$l['perllog_size']=$l['perllogcomplete_size']=$l['errorlog_size']=$l['log_totalsize']=0; if($logcompression==1) { $l['log']=$config['files']['log'].".gz"; $l['perllog']=$config['files']['perllog'].".gz"; $l['perllogcomplete']=$config['files']['perllogcomplete'].".gz"; $l['errorlog']=$config['paths']['log']."error.log.gz"; } else { $l['log']=$config['files']['log']; $l['perllog']=$config['files']['perllog']; $l['perllogcomplete']=$config['files']['perllogcomplete']; $l['errorlog']=$config['paths']['log']."error.log"; } $l['log_size']+=@filesize($l['log']);$sum+=$l['log_size']; $l['perllog_size']+=@filesize($l['perllog']);$sum+=$l['perllog_size']; $l['perllogcomplete_size']+=@filesize($l['perllogcomplete']);$sum+=$l['perllogcomplete_size']; $l['errorlog_size']+=@filesize($l['errorlog']);$sum+=$l['errorlog_size']; $l['log_totalsize']+=$sum; return $l; } function DeleteLog() { global $config; //Datei öffnen und schreiben $log=date('d.m.Y H:i:s')." Log created.\n"; if($config['logcompression']==1) { $fp = @gzopen($config['files']['log'].'.gz', "wb"); @gzwrite ($fp,$log); @gzclose ($fp); @chmod($config['files']['log'].'.gz',0755); } else { $fp = @fopen($config['files']['log'], "wb"); @fwrite ($fp,$log); @fclose ($fp); @chmod($config['files']['log'],0755); } } function SwitchLogfileFormat() { global $config; $del=DeleteFilesM($config['paths']['log'],"*"); DeleteLog(); } function CreateDirsFTP() { global $config,$lang,$install_ftp_server,$install_ftp_port,$install_ftp_user_name,$install_ftp_user_pass,$install_ftp_path; // Herstellen der Basis-Verbindung echo '
'.$lang['connect_to'].' `'.$install_ftp_server.'` Port '.$install_ftp_port.' ...
'; $conn_id = ftp_connect($install_ftp_server); // Einloggen mit Benutzername und Kennwort $login_result = ftp_login($conn_id, $install_ftp_user_name, $install_ftp_user_pass); // Verbindung überprüfen if ((!$conn_id) || (!$login_result)) { echo $lang['ftp_notconnected']; echo $lang['connwith']." $tinstall_ftp_server ".$lang['asuser']." $install_ftp_user_name ".$lang['notpossible']; return 0; } else { if ($config['ftp_mode']==1) ftp_pasv($conn_id,true); //Wechsel in betroffenes Verzeichnis echo $lang['changedir'].' `'.$install_ftp_path.'` ...
'; ftp_chdir($conn_id,$install_ftp_path); // Erstellen der Verzeichnisse echo $lang['dircr1'].' ...
'; ftp_mkdir($conn_id,"work"); ftp_site($conn_id, "CHMOD 0777 work"); echo $lang['changedir'].' `work` ...
'; ftp_chdir($conn_id,"work"); echo $lang['indir'].' `'.ftp_pwd($conn_id).'`
'; echo $lang['dircr5'].' ...
'; ftp_mkdir($conn_id,"config"); ftp_site($conn_id, "CHMOD 0777 config"); echo $lang['dircr2'].' ...
'; ftp_mkdir($conn_id,"backup"); ftp_site($conn_id, "CHMOD 0777 backup"); echo $lang['dircr3'].' ...
'; ftp_mkdir($conn_id,"structure"); ftp_site($conn_id, "CHMOD 0777 structure"); echo $lang['dircr4'].' ...
'; ftp_mkdir($conn_id,"log"); ftp_site($conn_id, "CHMOD 0777 log"); // Schließen des FTP-Streams ftp_quit($conn_id); return 1; } } function ftp_mkdirs($config,$dirname) { $dir=split("/", $dirname); for ($i=0;$i'; } } if (isset($databases['Name'][0])) $databases['db_actual']=$databases['Name'][0]; } // removes tags from inputs recursivly function my_strip_tags($value) { $ret=''; if (is_array($value)) { foreach ($value as $key=>$val) { $$key=my_strip_tags($val); } } else $ret=trim(strip_tags($value)); return $ret; } ?>