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