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();

?>