Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
session_start();
/*
* Datenbankexport (mysqldump) für Event-Kalender - dbexport.php (utf-8)
* © RaHa
*
* !!!!!!!!!!
* Speichern im Ordner tools!
* !!!!!!!!!!
Dieses Script wird in der Hoffnung verteilt, dass es nützlich sein wird, aber ohne irgendeine Garantie;
ohne auch nur die implizierte Gewährleistung der Marktgängigkeit oder Eignung für einen bestimmten Zweck.
Weitere Informationen finden Sie in der GNU General Public License.
Siehe Datei: license.txt - http://www.gnu.org/licenses/gpl.html
Diese Datei ist urheberrechtlich geschützt (c) 2020 RaHa alle Rechte vorbehalten.
Sie können diese Datei unter den Bedingungen der GNU General Public License frei verwenden und weiter verbreiten.
*
* Hier können Sie die Datei individuell anpassen.
* Achtung: Fehlerhafte Angaben können Probleme verursachen!
* Testen Sie einzelne Änderungen immer gleich bevor weitere vorgenommen werden.
*/
function returnto() {
global $eol;
if (!isset($argv[0])) {
print $eol.$eol.'<center><h2><a href="'.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'" targat="_self">Zurück zum Event-Kalender</a></h2></center>'.$eol.$eol;
}
exit;
}
// Pruefung ob Aufruf von zulaessiger IP/DYNDNS erfolgt
// ggf. die Zeilen auskommentieren!
if (!isset($argv[0])) {
$dynsallow['1']="remote-xxx.dyndns.checkip.net";
$dynsallow['2']="mobile-xxx.dyndns.checkip.net";
$i = 0;
$doaction=false;
foreach ($dynsallow as $dynallow) {
$i++;
$ipremote=$_SERVER["REMOTE_ADDR"];
$hostip=gethostbyname($dynallow);
if ($ipremote==$hostip) { $doaction=true; break; }
}
if ($doaction === false) { print "NO"; returnto(); }
}
$eol = "<br>";
// Achtung: bei Scriptaufruf via cron befindet man sich im Hauptroot. Der Ort muss in chdir ergänzt/geändert werden!
if (isset($argv[0])) {
if (isset($_SERVER['SCRIPT_FILENAME'])) { $chdir = str_replace("/dbexport.php", "", $_SERVER['SCRIPT_FILENAME']); } else { $chdir = "";}
if ($chdir !== "") { chdir($chdir); }
$eol = chr(10);
}
// Sicherung der Kalender-Datenbank
$DB_WORK_DIR = str_replace('tools', 'export/', getcwd());
$DB_HOME_DIR = str_replace('tools', '', getcwd());
if (is_file($DB_HOME_DIR."/verbindung.php")) {
if (is_file($DB_HOME_DIR."/dbinfo.inc.php")) {
require_once $DB_HOME_DIR."/dbinfo.inc.php";
} else {
require_once $DB_HOME_DIR."/verbindung.php";
}
} else { print "Fehler include verbindung.php".$eol; returnto(); }
$flag = 0;
$output=array();
// Parameter erstellen
$pos=strpos($DB_HOST, ":");
if ($pos > 0) { $DB_HOST = substr($DB_HOST, 0, $pos); };
$LAST_DATUM = date("YmdHms").'_';
$DB_WORK_SQL_FILE_KALENDER = $DB_WORK_DIR.'/'.$LAST_DATUM.'event-kalender_kalender.sql';
$DB_WORK_SQL_FILE_DETAILS = $DB_WORK_DIR.'/'.$LAST_DATUM.'event-kalender_details.sql';
$DB_WORK_LAST_FILE = $DB_WORK_DIR.'/lastexport.inc.php';
if (!is_dir($DB_WORK_DIR)) { mkdir($DB_WORK_DIR, 0700); }
// Export der Datenbank Tabelle _kalender
$flag = 0;
$output=array();
$command='mysqldump --user='.$DB_BENUTZER.' --password='.$DB_PASSWORT.' --skip-add-drop-table --no-create-info --complete-insert --host='.$DB_HOST.' '.$DB_NAME.' '.$TABLE_PREFIX.'_kalender > '.$DB_WORK_SQL_FILE_KALENDER;
exec($command,$output,$flag);
switch($flag){
case 0:
// Sichern PHP-Variablen
$IntFileOpenHandle = fopen($DB_WORK_LAST_FILE, "w");
$StrOutput = '<?php $TABLE_PREFIX_ALT = "'.$TABLE_PREFIX.'"; $LAST_DATUM = "'.$LAST_DATUM.'"; ?>';
fputs($IntFileOpenHandle, $StrOutput);
fclose($IntFileOpenHandle);
break;
case 1:
print 'Es ist ein Fehler aufgetreten beim Exportieren von '.$DB_NAME .' nach '.$DB_WORK_SQL_FILE_KALENDER.$eol; break;
case 2:
print 'Es ist ein Fehler beim Exportieren aufgetreten von '.$DB_NAME .' nach '.$DB_WORK_SQL_FILE_KALENDER.$eol; break;
}
// Export der Datenbank Tabelle _details
$flag = 0;
$output=array();
$command='mysqldump --user='.$DB_BENUTZER.' --password='.$DB_PASSWORT.' --skip-add-drop-table --no-create-info --complete-insert --host='.$DB_HOST.' '.$DB_NAME.' '.$TABLE_PREFIX.'_details > '.$DB_WORK_SQL_FILE_DETAILS;
exec($command,$output,$flag);
switch($flag){
case 0:
break;
case 1:
print 'Es ist ein Fehler aufgetreten beim Exportieren von '.$DB_NAME .' nach '.$DB_WORK_SQL_FILE_DETAILS.$eol; break;
case 2:
print 'Es ist ein Fehler beim Exportieren aufgetreten von '.$DB_NAME .' nach '.$$DB_WORK_SQL_FILE_DETAILS.$eol; break;
}
returnto();
?>
Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
session_start();
/*
* Datenbankimport (mysqldump) für Event-Kalender - dbimport.php (utf-8)
* © RaHa
*
* !!!!!!!!!!
* Speichern im Ordner tools!
* !!!!!!!!!!
Dieses Script wird in der Hoffnung verteilt, dass es nützlich sein wird, aber ohne irgendeine Garantie;
ohne auch nur die implizierte Gewährleistung der Marktgängigkeit oder Eignung für einen bestimmten Zweck.
Weitere Informationen finden Sie in der GNU General Public License.
Siehe Datei: license.txt - http://www.gnu.org/licenses/gpl.html
Diese Datei ist urheberrechtlich geschützt (c) 2020 RaHa alle Rechte vorbehalten.
Sie können diese Datei unter den Bedingungen der GNU General Public License frei verwenden und weiter verbreiten.
*
* Hier können Sie die Datei individuell anpassen.
* Achtung: Fehlerhafte Angaben können Probleme verursachen!
* Testen Sie einzelne Änderungen immer gleich bevor weitere vorgenommen werden.
*/
function returnto() {
global $eol;
if (!isset($argv[0])) {
print $eol.$eol.'<center><h2><a href="'.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'" targat="_self">Zurück zum Event-Kalender</a></h2></center>'.$eol.$eol;
}
exit;
}
// Pruefung ob Aufruf von zulaessiger IP/DYNDNS erfolgt
// ggf. die Zeilen auskommentieren!
if (!isset($argv[0])) {
$dynsallow['1']="remote-xxx.dyndns.checkip.net";
$dynsallow['2']="mobile-xxx.dyndns.checkip.net";
$i = 0;
$doaction=false;
foreach ($dynsallow as $dynallow) {
$i++;
$ipremote=$_SERVER["REMOTE_ADDR"];
$hostip=gethostbyname($dynallow);
if ($ipremote==$hostip) { $doaction=true; break; }
}
if ($doaction === false) { print "NO"; returnto(); }
}
$eol = "<br>";
// Achtung: bei Scriptaufruf via cron befindet man sich im Hauptroot. Der Ort muss in chdir ergänzt/geändert werden!
if (isset($argv[0])) {
if (isset($_SERVER['SCRIPT_FILENAME'])) { $chdir = str_replace("/dbimport.php", "", $_SERVER['SCRIPT_FILENAME']); } else { $chdir = "";}
if ($chdir !== "") { chdir($chdir); }
$eol = chr(10);
}
// Sicherung der Kalender-Datenbank importieren
$DB_WORK_DIR = str_replace('tools', 'export/', getcwd());
$DB_HOME_DIR = str_replace('tools', '', getcwd());
if (is_file($DB_HOME_DIR."/verbindung.php")) {
if (is_file($DB_HOME_DIR."/dbinfo.inc.php")) {
require_once $DB_HOME_DIR."/dbinfo.inc.php";
} else {
require_once $DB_HOME_DIR."/verbindung.php";
}
} else { print "Fehler include verbindung.php"; returnto(); }
$flag = 0;
$output=array();
$pos=strpos($DB_HOST, ":");
if ($pos > 0) { $DB_HOST = substr($DB_HOST, 0, $pos); }
$DB_WORK_SQL_FILE_KALENDER = $DB_WORK_DIR.'/'.$LAST_DATUM.'event-kalender_kalender.sql';
$DB_WORK_SQL_FILE_DETAILS = $DB_WORK_DIR.'/'.$LAST_DATUM.'event-kalender_details.sql';
$DB_WORK_LAST_FILE = $DB_WORK_DIR.'/lastexport.inc.php';
if (!is_file($DB_WORK_LAST_FILE)) { print 'Importdatei '.$DB_WORK_LAST_FILE,' nicht vorhanden'; returnto(); }
// PHP-Variablen includen
include $DB_WORK_LAST_FILE;
// Import Datenbank Tabelle _kalender
if (!is_file($DB_WORK_SQL_FILE_KALENDER)) { print 'Importdatei '.$DB_WORK_SQL_FILE_KALENDER,' nicht vorhanden'; returnto(); }
$DB_WORK_TMP_FILE = $DB_WORK_DIR.'/tmp_import_'.TIME();
$command='cp -f '.$DB_WORK_SQL_FILE_KALENDER.' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Kopieren der Datei '.$DB_WORK_SQL_FILE_KALENDER.' aufgetreten'; returnto(); }
if (!is_file($DB_WORK_TMP_FILE)) { print 'Temporäre-Importdatei '.$DB_WORK_TMP_FILE,' nicht vorhanden'; returnto(); }
if ($TABLE_PREFIX_ALT !== $TABLE_PREFIX) {
// Ersetzen Table-Prefix
$command='sed -i \'s/'.$TABLE_PREFIX_ALT.'_kalender/'.$TABLE_PREFIX.'_kalender/g\' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Verändern der Datei '.$DB_WORK_TMP_FILE.' aufgetreten'; returnto(); }
}
// Hinzufuegen Tabelle leeren
$finde = 'WRITE;';
$ersetze = 'WRITE;\nDELETE FROM `'.$TABLE_PREFIX.'_kalender`;';
$command = 'sed -i \'s/'.$finde.'/'.$ersetze.'/g\' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Verändern der Datei '.$DB_WORK_TMP_FILE.' aufgetreten'; returnto(); }
if ($TABLE_PREFIX_ALT !== $TABLE_PREFIX) {
// Ersetzen Table-Prefix
$command='sed -i \'s/'.$TABLE_PREFIX_ALT.'_kalender/'.$TABLE_PREFIX.'_kalender/g\' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Verändern der Datei '.$DB_WORK_TMP_FILE.' aufgetreten (TABLEPREFIX)'; returnto(); }
}
// import der Tabelle _kalender
$command='mysql --user='.$DB_BENUTZER.' --password='.$DB_PASSWORT.' --host='.$DB_HOST.' '.$DB_NAME.' < '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Import der Datei '.$DB_WORK_TMP_FILE.' aufgetreten (IMPORT)';
$command='rm -f '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Fehler beim Löschen der TMP-Dateien'; }
// Import Datenbank Tabelle _details
if (!is_file($DB_WORK_SQL_FILE_DETAILS)) { print 'Importdatei '.$DB_WORK_SQL_FILE_DETAILS,' nicht vorhanden'; returnto(); }
$DB_WORK_TMP_FILE = $DB_WORK_DIR.'/tmp_import_'.TIME();
$command='cp -f '.$DB_WORK_SQL_FILE_DETAILS.' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Kopieren der Datei '.$DB_WORK_SQL_FILE_DETAILS.' aufgetreten'; returnto(); }
if (!is_file($DB_WORK_TMP_FILE)) { print 'Temporäre-Importdatei '.$DB_WORK_TMP_FILE,' nicht vorhanden'; returnto(); }
if ($TABLE_PREFIX_ALT !== $TABLE_PREFIX) {
// Ersetzen Table-Prefix
$command='sed -i \'s/'.$TABLE_PREFIX_ALT.'_kalender/'.$TABLE_PREFIX.'_kalender/g\' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Verändern der Datei '.$DB_WORK_TMP_FILE.' aufgetreten'; returnto(); }
}
// Hinzufuegen Tabelle leeren
$finde = 'WRITE;';
$ersetze = 'WRITE;\nDELETE FROM `'.$TABLE_PREFIX.'_details`;';
$command = 'sed -i \'s/'.$finde.'/'.$ersetze.'/g\' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Verändern der Datei '.$DB_WORK_TMP_FILE.' aufgetreten'; returnto(); }
if ($TABLE_PREFIX_ALT !== $TABLE_PREFIX) {
// Ersetzen Table-Prefix
$command='sed -i \'s/'.$TABLE_PREFIX_ALT.'_details/'.$TABLE_PREFIX.'_details/g\' '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Verändern der Datei '.$DB_WORK_TMP_FILE.' aufgetreten (TABLEPREFIX)'; returnto(); }
}
// import der Tabelle _kalender
$command='mysql --user='.$DB_BENUTZER.' --password='.$DB_PASSWORT.' --host='.$DB_HOST.' '.$DB_NAME.' < '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Es ist ein Fehler beim Import der Datei '.$DB_WORK_TMP_FILE.' aufgetreten (IMPORT)';
$command='rm -f '.$DB_WORK_TMP_FILE;
exec($command,$output,$flag);
if ($flag > 0) { print 'Fehler beim Löschen der TMP-Dateien'; }
returnto();
?>