Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen


<?PHP

if (!isset($argv[0])) {
if (strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false ) {
 print '<div><center><h1>Es liegt keine Berechtigung vor!</h1></center></div>'; exit; }
}

/*
 * CSV-Export des Event-Kalenders - csv_event-kalender_export.php (utf-8)
 * © RaHa

 * Teile des Scripts ggf. übernommen aus - https://werner-zenk.de

 * !!!!!!!!!!     
 * 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

  Sie können diese Datei unter den Bedingungen der GNU General Public License frei verwenden und weiter verbreiten.

 *
 * Sie können Änderungen vornehmen oder individuell anpassen.
 * Achtung: Fehlerhafte Angaben können Probleme verursachen!
 * Testen Sie einzelne Änderungen immer gleich bevor weitere vorgenommen werden.
 *
 
 * URL-Aufrufe:
 * https://event-kalender.checkip.net/tools/csv_event-kalender_export.php
 * zusätzliche Parameter:
 * &Suche=Feldname:Wert exportiert nur die Daten, die der Suche entsprechen 
 * &Print gibt die Daten zusätzlich auf dem Bildschirm aus 

 * Script-Aufrufe:
 * Feld:Wert exportiert nur die Daten, die der Suche entsprechen 
 * /var/www/vhosts/event-kalender.checkip.net/tools/csv_event-kalender_export.php
 * /var/www/vhosts/event-kalender.checkip.net/tools/csv_event-kalender_export.php Feldname:Wert
*/

function returnto() {
     global $eol;
     if (!isset($argv[0])) {
     print $eol.$eol.'<center><h2><a href="'.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'" target="_self">Zurück zum Event-Kalender</a></h2></center>'.$eol.$eol;
     }     
     exit;
}

// Pruefung ob Aufruf von zulaessiger IP/DYNDNS erfolgt
// ggf. 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; }
     }
     if ($doaction === false) { returnto(); }
}
*/

//  Sicherung der Kalender-Datenbank nach CSV

session_start();

$eol = "<br>";
// Suche
unset($Suche);
// Parameter via URL-Aufruf
if (isset($_REQUEST['Suche'])) { $Suche = explode(":", $_REQUEST['Suche']); }

// 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("/csv_event-kalender_export.php", "", $_SERVER['SCRIPT_FILENAME']); } else { $chdir = "";}
     if ($chdir !== "") { chdir($chdir); }
      if (isset($argv[1])) { $Suche = explode(":", $argv[1]); }
      $eol = chr(10);


// Ausgabe auf Bildschirm
$Print="NEIN";
// Parameter via URL-Aufruf
if (isset($_REQUEST['Print'])) { $Print="JA"; }
 
$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(); }

$DB_WORK_FILE = 'event-kalender.csv';
$DB_WORK_CSV_FILE = $DB_WORK_DIR.$DB_WORK_FILE;

if (!is_dir($DB_WORK_DIR)) { mkdir($DB_WORK_DIR, 0700); }

if (isset($Suche)) {
      $sql = "SELECT * FROM `" . $TABLE_PREFIX . "_kalender` WHERE `".$Suche[0]."` = '".$Suche[1]."' ORDER BY `start`";
} else{
     $sql = "SELECT * FROM `" . $TABLE_PREFIX . "_kalender` ORDER BY `start`";
}     
$statement = $db->prepare($sql);
if(!$statement->execute()) { 
     print $eol.$eol;
     print "SQL Error".$eol;
        print $statement->queryString.$eol;
        print $statement->errorInfo()[2];
     returnto();
}

$events= $statement->fetchall();
$csv = "";

if (count($events)>0) {

     $istKopf="NEIN";
     $csv="#";


     foreach ($events AS $event) {
          if ($istKopf =="NEIN") {
              foreach ($event AS $feld => $feld_value) {
                  if (!is_numeric($feld)) { $csv .= ',"'.$feld.'"'; }
              }
               $istKopf="JA";
               $csv .= chr(10)."#";
          }

         foreach ($event AS $feld => $feld_value) {
             if (!is_numeric($feld)) {
                  if ($feld == "beschreibung") { $csv .= ',"'.str_replace('"','""', $feld_value).'"'; } else {
                       if (is_numeric($feld_value)) { $csv .= ',"'.strval($feld_value).'"'; } else { $csv .= ',"'.$feld_value.'"'; }
                  }
             }
         }
          $csv .= chr(10)."#";
     }

     $csv = str_replace("#,", "", $csv).chr(10);

     if ($Print == "JA") { print str_replace(chr(10), $eol, $csv).$eol.$eol."---END---"; }

     if (!file_put_contents($DB_WORK_CSV_FILE, $csv)) {
           print 'Fehler beim Schreiben in die Datei: '.$DB_WORK_CSV_FILE.$eol;
     }
     print $eol.'Datei '.$DB_WORK_CSV_FILE.' wurde gespeichert.'.$eol;
}
if ($csv == "") { print $eol.'Nichts gespeichert.'.$eol; }

returnto();

?>



Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen


<?PHP

if (!isset($argv[0])) {
if (strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false ) {
 print '<div><center><h1>Es liegt keine Berechtigung vor!</h1></center></div>'; exit; }
}

/*
 * CSV-Import in den Event-Kalender - csv_event-kalender_import.php (utf-8)
 * © RaHa

 * Teile des Scripts ggf. übernommen aus - https://werner-zenk.de

 * !!!!!!!!!!     
 * 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

  Sie können diese Datei unter den Bedingungen der GNU General Public License frei verwenden und weiter verbreiten.

 *
 * Sie können Änderungen vornehmen oder individuell anpassen.
 * Achtung: Fehlerhafte Angaben können Probleme verursachen!
 * Testen Sie einzelne Änderungen immer gleich bevor weitere vorgenommen werden.
 *
 
 *
 * Die erste Zeile der CSV-Datei muss die Feldnamen enthalten, diese müssen in der Benamung denen
 * des Event-Kalenders entsprechen!
 *
 
 *
 * URL-Aufrufe:
 * https://event-kalender.checkip.net/csv_event-kalender_import.php
 * zusätzliche Parameter:
 * ?Dateiname der zu importiereten Datei
 * &Print gibt die Daten zusätzlich auf dem Bildschirm aus 
 * z.B.: https://event-kalender.checkip.net/tools/csv_event-kalender_import.php?Print

 * Script-Aufrufe:
 * /var/www/vhosts/event-kalender.checkip.net/tools/csv_event-kalender_import.php Dateiname
 *
  
*/

function returnto() {
     global $eol;
     if (!isset($argv[0])) {
     print $eol.$eol.'<center><h2><a href="'.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'" target="_self">Zurück zum Event-Kalender</a></h2></center>'.$eol.$eol;
     }     
     exit;
}

// Pruefung ob Aufruf von zulaessiger IP/DYNDNS erfolgt
// ggf. 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; }
     }
     if ($doaction === false) { returnto(); }
}
*/


// Einfügen der CSV-Daten in den Event-Kalender

session_start();

$eol = "<br>";
// Dateiname
$Dateiname="";
// Parameter via URL-Aufruf
if (isset($_REQUEST['Dateiname'])) { $Dateiname = $_REQUEST['Dateiname']; }
// Parameter via Scriptaufruf
// Achtung: bei Scriptaufruf 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("/csv_event-kalender_import.php", "", $_SERVER['SCRIPT_FILENAME']); } else { $chdir = "";}
      if (isset($argv[1])) { $Dateiname = $argv[1]; } if ($chdir !== "") { chdir($chdir); }
      $eol = chr(10);
}

// Ausgabe auf Bildschirm
$Print="NEIN";
// Parameter via URL-Aufruf
if (isset($_REQUEST['Print'])) { $Print="JA"; }

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

if ($Dateiname !== "") { $DB_WORK_FILE = $Dateiname; if ($Print == "JA") { print "Dateiname: ".$Dateiname.$eol.$eol; }
} else { $DB_WORK_FILE = 'event-kalender.csv'; }

$DB_WORK_CSV_FILE = $DB_WORK_DIR.$DB_WORK_FILE;

if (!is_file($DB_WORK_CSV_FILE)) { print "Datei ".$DB_WORK_CSV_FILE." nicht vorhanden!"; returnto(); }

$ok = 0;
$setFeldbezeichner="NEIN";
$gruppe = date("YmdHis") . mt_rand(100, 999);

if (($handle = fopen($DB_WORK_CSV_FILE, "r")) !== FALSE) {
     while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
          if ($data[0] == "#") { break; }
          // holen wir die Feldbezeichner
          if ($setFeldbezeichner == "NEIN") {
               $Feldbezeichner = $data; $setFeldbezeichner = "JA";
               if ($Print == "JA") { print_r($data); }
               $insertintofeld = "#";
                  foreach ($data AS $feld) {
                       if ($feld == "id") { continue; }
                  $insertintofeld .= ','.$feld;
              }
              $insertintofeld = str_replace("#,", "", $insertintofeld);
               continue;
          }     
          
          // jetzt die Daten
          $insertintovalue = "#";
             foreach ($data AS $feld => $feld_value) {
                  if ($Feldbezeichner[$feld] !== "id") { $insertintovalue .= ", '".$feld_value."'"; }
         }
         $insertintovalue = str_replace("#, '", "'", $insertintovalue);

          $sqlerror = false;

        $insertinto = "INSERT INTO `" . $TABLE_PREFIX . "_kalender` (".$insertintofeld.") ";
        $insertinto .= "VALUES (". $insertintovalue . ")";

          if ($Print == "JA") {
                  foreach ($data AS $feld => $feld_value) {
                   print $Feldbezeichner[$feld].': '.$feld_value.$eol;
              }
               //print $eol.$eol."insertintofeld: ".$insertintofeld.$eol;
               //print "insertintovalue: ".$insertintovalue.$eol;
             //print $eol.$eol.$insertinto;
               //print_r($data);
               print $eol.$eol;
          }

        if ($db->exec($insertinto)) { $ok++; } else { $sqlerror = true; $ok = 0; break; }

     }
    if ($ok > 0) { print $eol.$eol.'Die Daten aus '.$DB_WORK_CSV_FILE.' wurden in den Event-Kalender importiert.'.$eol; }
    if ($sqlerror) { print $eol.$eol.'SQL-Fehler bei Datenimport!'.$eol; }
    
} else {
print $eol.'Fehler beim Öffnen der Datei '.$DB_WORK_CSV_FILE.$eol;
}

returnto();

?>