Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
/*
* Event-Kalender - Einstellungen - verbindung.php (utf-8)
* - https://werner-zenk.de
*
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 und der gesamte "Event-Kalender" ist urheberrechtlich geschützt (c) 2020 Werner Zenk 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 den Event-Kalender individuell anpassen.
* Achtung: Fehlerhafte Angaben können Probleme verursachen!
* Testen Sie einzelne Änderungen immer gleich bevor weitere vorgenommen werden.
*/
// modify RaHa ->
// --- verlegt nach unten --->
/*
* Verbindung zur Datenbank
*/
// <--- verlegt nach unten ---
function get_wpcookieuser($siteurl) {
$hashurl=md5($siteurl);
$usercookiename='wordpress_logged_in_'.$hashurl;
$usercookiename=$_COOKIE[$usercookiename];
$pos=strpos($usercookiename, '|');
$usercookiename=substr($usercookiename, 0, $pos);
return $usercookiename;
}
$WP_URL = 'https://diedomainwowordpressliegt.de';
$cookiewpuser=get_wpcookieuser($WP_URL);
// Gruppe Webmaster
if ($cookiewpuser=="WEBMASTER") {$cookiewpuser="WEBMASTER";}
if ($cookiewpuser=="WEBMASTERCO") {$cookiewpuser="WEBMASTER";}
// Gruppe Geschaeftsstelle
if ($cookiewpuser=="PC") {$cookiewpuser="GESCHAEFTSSTELLE";}
if ($cookiewpuser=="GES") {$cookiewpuser="GESCHAEFTSSTELLE";}
// WP-Benutzer direkt anmelden
unset($_SESSION["name"]);
$_SESSION["name"] = $cookiewpuser;
$_SESSION["wordpress"] = true;
// Name (Administrator)
$NAME = "WEBMASTER"; // user
// Passwort (Administrator) - Bitte das Standard-Passwort ändern!
// Aus Sicherheitsgründen sollte das Passwort min. 8 Zeichen enthalten
$NAME_PASS[$NAME] = chr(9).chr(10).chr(13); // 0000
// wird unten erweitert
// <- modify RaHa
/* Jedem angemeldeten Benutzer nur seine Events anzeigen (ja/nein)
Die Events müssen vom Benutzer als "Privat" markiert werden! */
$EINZELPERSON_ANZEIGE = "nein"; // nein
/* Den Namen des Benutzers beim Event anzeigen (ja/nein) */
$BENUTZER = "ja"; // nein
// Den Namen des Benutzers im Formular (durch den Admin.) anpassen (ja/nein)
$BENUTZER_EDIT = "nein"; // nein
/* Die Beschreibung nur den angemeldeten Benutzern anzeigen (ja/nein) */
$BESCHREIBUNG_ANZEIGE = "nein"; // nein
/*
* Kalender
*/
/* Kalender Beschriftung
Eine Beschriftung, ein Bild eintragen oder leer lassen. */
$KALENDER_BESCHRIFTUNG = '<img src="ical-header.png">'; // leer!
/* Zur Aktivierung das Kommentarzeichen (#) entfernen */
# $KALENDER_BESCHRIFTUNG = '<img src="bild.jpg">'; // Bild
/* Monatsbilder - Jeden Monat ein anderes Bild anzeigen */
# $KALENDER_BESCHRIFTUNG = '<div id="monatsbilder"></div>'; // <div id="monatsbilder"></div>
/* Feiertage anzeigen (ja/nein) */
$FEIERTAGE = "ja"; // ja
/* Kalenderblatt anzeigen (ja/nein) */
$KALENDERBLATT = "ja"; // ja
/* Die Namen der Wochentage ausschreiben (ja/nein) */
$WOCHENTAGSNANEN = "nein"; // nein
/* Vorschau-Button (und BB-Code Button) im Formular anzeigen (ja/nein)
Für weitere Details, siehe Datei: "lies_mich.txt" */
$VORSCHAU_BUTTON = "ja"; // nein
/* Anzahl der aktuellen Events der nächsten Tage (Minimale Angabe) */
$AKTUELLE_EVENTS_TAGE = 14; // 14
/* Event mit einem Permalink (https://de.wikipedia.org/wiki/Permalink) anzeigen (ja/nein) */
$PERMALINK = "ja"; // ja
/*
* Darstellung und Formate
*/
/* Priorität - Zahlen und Hintergrundfarben (evtl. anpassen). */
$PRIORITAET = [
0 => "Transparent", // Transparent (für Events ohne Priorität)
1 => "#FF5B5B", // Rot
2 => "#FBD600", // Gold
3 => "#9DDF24", // Grün
4 => "#FF9900", // ORANGE STIFTUNG
5 => "#FFE600", // GELB STIFTUNG
6 => "#FF97FF", // Violet
7 => "#B4B46B", // Khaki
8 => "#73B9B9", // Cyan
9 => "#FF71AA", // Rosa
10 => "#D9A36C", // Braun
11 => "#ACACAC", // Grau
12 => "#73AAD2", // Stahlblau
13 => "#45C07C", // Seegrün
14 => "#FB9B91", // Salomon
15 => "#E083A2", // Violetrot
16 => "#B089D8", // Purple
17 => "#55EAFF", // Himmelblau
18 => "#36B663", // Waldgrün
19 => "#00C4C4", // Türkis
20 => "#94B5DD", // Blaugrau
21 => "#FFC28C", // Terracotta
22 => "#488CEC", // Mittelblau
23 => "#7DA628", // Olive
24 => "#DDCF53", // Blassgold
25 => "#C199C1", // Blassviolet
26 => "#5EB3CE", // Lichtblau
];
/* Kategorien im Kalender farbig markieren (ja/nein) */
$KATEGORIE_FARBE = "ja"; // ja
/* Kategorien und Farben für die Events festlegen
Jede Kategorie muss eine andere Farbe haben!
Nicht verwendete Kategorien sollten kommentiert (#) werden, z.B.:
# "#5BADFF" => "Abteilung",
*/
$KATEGORIEN[$PRIORITAET[4]] = "STIFTUNG"; // 4
$KATEGORIEN[$PRIORITAET[5]] = "SITZUNG"; // 5
$KATEGORIEN[$PRIORITAET[6]] = "GESCHAEFTSSTELLE"; // 6
$KATEGORIEN[$PRIORITAET[7]] = "ABSCHLUSSFAHRT"; // 7
$KATEGORIEN[$PRIORITAET[8]] = "BALL"; // 8
$KATEGORIEN[$PRIORITAET[9]] = "FINANZ"; // 9
$KATEGORIEN[$PRIORITAET[10]]= "KALENDER"; // 10
$KATEGORIEN[$PRIORITAET[11]]= "LESEPATEN"; // 11
$KATEGORIEN[$PRIORITAET[12]]= "THALER"; //12
$KATEGORIEN[$PRIORITAET[13]]= "WOHNBRUECKE"; // 13
$KATEGORIEN[$PRIORITAET[14]]= "SPONSOREN"; // 12
$KATEGORIEN[$PRIORITAET[15]]= "STIFTER"; // 13
$KATEGORIEN[$PRIORITAET[16]]= "WEB"; // 16
$KATEGORIEN[$PRIORITAET[17]]= "PROJEKTE"; //12
$KATEGORIEN[$PRIORITAET[18]]= "SCHULFERIEN"; // 18
$KATEGORIEN[$PRIORITAET[19]]= "URLAUB"; // 19
$KATEGORIEN[$PRIORITAET[20]]= "GEBURTSTAG"; // 20
$KATEGORIEN[$PRIORITAET[21]]= "LERNLESEN"; // 20
// modify RaHa ->
// Modifikation SENDE-EVENT-MAIL
$KATEGORIE_EMAIL[$PRIORITAET[6]] = "geschaeftsstelle@meinedomain.de";
$KATEGORIE_EMAIL[$PRIORITAET[5]] = "stiftungsorga@meinedomain.de";
$KATEGORIE_EMAIL[$PRIORITAET[4]] = "stiftungsorga@meinedomain.de";
$KATEGORIE_EMAIL[$PRIORITAET[16]]= "webmaster@meinedomain.de";
$KATEGORIE_EMAIL[$PRIORITAET[19]]= "geschaeftsstelle@meinedomain.de";
$KATEGORIE_EMAIL[$PRIORITAET[21]]= "geschaeftsstelle@meinedomain.de";
// <- modify RaHa
// modify RaHa ->
/*
$i=0;
$PRIORITAET[$i]="Transparent"; $i++;
foreach ($KATEGORIEN AS $key => $value) { $PRIORITAET[$i]=$key; $i++; }
*/
// <- modify RaHa
/* Die Kategorie-Farbe anstatt der Priorität-Farbe anzeigen (ja/nein)
Sollte $PRIORITAET_KATEGORIE_FARBE = ja gesetzt werden,
muss die Anzahl der Elemente von $PRIORITAET mindestens der von $KATEGORIEN entsprechen
und $PRIORITAET die Keys von $KATEGORIEN als Farbe enthalten! */
$PRIORITAET_KATEGORIE_FARBE = "ja"; // nein
// modify RaHa ->
// Nach Prüfungsdurchlauf kann diese Modifikation ggf. ausdokumentiert oder gelöscht werden
// Test auf doppele Farben/Keys
// Zeilen mit Zuweisung von $KATEGORIEN zählen und $zahl ändern!
// wer zu faul zum Zählen ist! Nach Durchlauf steht die Zahl dort, diese dann eintragen ;-)
$zahl = 18;
if (count($KATEGORIEN) !== $zahl) {
echo count($KATEGORIEN)."<br><br>";
foreach ($KATEGORIEN AS $key => $value) { echo $key . " " . $value."<br>";}
echo "<h1>Anzahl KATEGORIEN stimmt nicht, vermutlich doppelte Keys!</h1>";
exit;
}
// Prüfen ob Key von $KATEGORIEN in $PRIORITAET vorhanden
if ($PRIORITAET_KATEGORIE_FARBE == "ja") {
foreach ($KATEGORIEN AS $key => $value) {
$farbe = array_keys($PRIORITAET, $key);
if (!isset($farbe[0])) { echo "<br>".$key." von ".$value." ist nicht in PRIORITAET vorhanden<br><br>"; exit; }
}
}
// Prüfen ob Key von $KATEGORIE_EMAIL in $KATEGORIE vorhanden
if (isset($KATEGORIE_EMAIL)) {
foreach ($KATEGORIE_EMAIL AS $key => $value) {
if (!isset($KATEGORIEN[$key])) { echo "<br>".$key." von ".$value." ist nicht in KATEGORIEN vorhanden<br><br>"; exit; }
}
}
// <- modify RaHa
/* Einen farbigen Hintergrund je nach Priorität anzeigen (ja/nein) */
$FARBVERLAUF = "nein"; // ja
// Einen farbigen Hintergrund je nach Priorität anzeigen (ja/nein)
$FARBIGE_EVENTS = "ja"; // ja
/* Standortbestimmung für die Anzeige von Sonnenauf.- und Sonnenuntergang (im Kalenderblatt)
Die geografische Länge und Breite des Standorts ermitteln Sie z.B. im Programm "Google Earth" oder
unter: https://werner-zenk.de/javascript/geolocation_api_bei_knopfdruck_koordianten_ausgeben.php */
$GEO_BREITE = "49.95"; // 49.95
$GEO_LAENGE = "10.95"; // 10.95
$REGION = ""; // Stadt, Ort, Region, Bezirk, ... (oder leer lassen!)
/* Anzahl der Serienevents (aufeinander folgende Tage)
die der Benutzer maximal eingeben kann. */
$SERIENEVENTS = 100;
/* Datumsformat
1 = "20 Dezember 2020 (So.)"
2 = "20 Dezember 2020 Sonntag"
3 = "Sonntag, 20 Dezember 2020"
4 = "20.12.2020 So."
5 = "20.12.2020" */
$DATUMSFORMAT = 1; // 1
/* Stundenformat (zur Auswahl im Kalendertag)
1 = 10:10, 10:20, 10:30, 10:40, 10:50
2 = 10:05, 10:10, 10:15, 10:20, 10:25, 10:30, 10:35, 10:40, 10:45, 10:50, 10:55
3 = 10:15, 10:30, 10:45 */
$STUNDENFORMAT = 1; // 1
/* Events können nur eintragen werden, wenn sich
das Jahr zwischen den folgenden Angaben befindet: */
$JAHR_MIN = 1900; // 1900 oder z.B.: date("Y") für das aktuelle Jahr
$JAHR_MAX = 2100; // 2100 oder z.B.: date("Y")+10 für das aktuelle Jahr + 10 Jahre
/*
* E-Mail Benachrichtigung (Beta2!)
* Für weitere Details, siehe Datei: "lies_mich.txt"
*/
// modify RaHa -> muss für SENDE-EVENT-MAIL gesetzt werden!
// E-Mail Adresse (eine beim Provider registrierte E-Mail Adresse).
// Leer lassen, wenn die Option nicht angezeigt werden soll.
$ABSENDER = "automail@meinedomain.de"; // user@example.com
// Empfänger der Nachricht
$EMPFAENGER = "mail@meinedomain.de"; // user2@example2.com
// <- modify RaHa
// Wie viele Tage soll vor dem Event eine Benachrichtigung
// versendet werden (Werte von 0 bis 30)
$TAGE_DAVOR = 1; // 1
/*
* Experten Einstellungen
*/
/* Alte Events löschen (ja/nein) */
$DEL_EVENTS = "nein"; // nein
/* Löschen nach X-Tagen */
$DEL_TAGE = 365; // 365, Minimum: 1
/* Pflichtfelder im Formular
Die Kommentarzeichen (#) bei Pflichtfeldern entfernen. */
$PLICHTFELDER = [
# 'beschreibung',
# 'ort',
# 'prioritaet',
# 'kategorie',
# 'aufgabe',
];
/* Folgende HTML-Tags können vom Benutzer verwendet werden.
Aus Sicherheitsgründen wird empfohlen diese Option nicht zu verwenden! */
$HTML_TAGS = ""; // z.B: <img><b><u><ol><li><del><mark>
/* Wie lange sollen Cookies gespeichert werden, Anzahl in Tagen. */
$COOKIE_TAGE = 10; // 10
/* Name der Datenbank-Tabelle (Vorzeichen)
Ändern wenn z.B.: eine Tabelle mit dem Namen: "mai20_kalender" bereits existiert!
(Nach der Installation bitte nicht mehr ändern!) */
// modify RaHa ->
// $TABLE_PREFIX = "jan20"; // jan20
// $TABLE_PREFIX kommt aus dbinfo.inc.php
// <- modify RaHa
/* Zeitzone setzen
Infos unter: http://php.net/manual/de/timezones.europe.php */
date_default_timezone_set("Europe/Berlin");
/* PHP-Meldungen zum testen anzeigen (0/E_ALL) */
$error = E_ALL; // E_ALL = anzeigen
if (isset($_SERVER["SERVER_NAME"])) { error_reporting($_SERVER["SERVER_NAME"] == 'localhost' ? E_ALL : $error); }
/* Bei einer fehlerhaften Verbindung zur Datenbank eine Nachricht ausgeben (ja/nein) */
$FEHLER_VERBINDUNG = "ja"; // ja
/* Beginn der Woche (Kalenderwoche)
Damit lässt sich die Woche im Kalender nicht ändern,
es wird nur der Modus bei der MySQL - Anweisung: "WEEK(datetime, Modus)" verändert!
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_week */
$KW_MODUS = 3; // 3
/* PHP-Version überprüfen */
if (version_compare(PHP_VERSION, '7.3') < 0) {
die('<p><strong>Event-Kalender</strong><br>✘ Aktuelle PHP-Version: ' . PHP_VERSION . '<br>✔ Voraussetzung mind.: 7.3</p>');
}
/* Zeichenkodierung der aktuellen Datei überprüfen */
if (bin2hex('ä') !== 'c3a4') {
die('<p><strong>Event-Kalender</strong><br>✘ Die Datei: "<em>' . basename(__FILE__) . '</em>" muss unbedingt mit der Zeichenkodierung "<em>UTF-8</em> (ohne Signatur (BOM))" gespeichert werden!<br>
Siehe: <a href="https://werner-zenk.de/tipps/schriftzeichen_richtig_darstellen.php" target="_blank">Schriftzeichen richtig darstellen</a></p>');
}
require_once "dbinfo.inc.php";
// modify RaHa ->
// wir müssen noch wegen ACCESSLINK das Array NAME_PASS erweitern
// dazu nehmen wir die eingetragenen Namen aus der Datenbank
$select = $db->query("SELECT `name` FROM `" . $TABLE_PREFIX . "_kalender` GROUP BY `name` ASC");
$names = $select->fetchAll(PDO::FETCH_COLUMN);
foreach ($names as $benutzer) { $NAME_PASS[$benutzer] = chr(9).chr(10).chr(13); }
// <- modify RaHa
// modify RaHa ->
// Versionsüberprüfung wenn der User Admin ist
// Voraussetzung ist, dass lies_micht.txt nicht verändert wurde
if (!isset($_COOKIE["auto-installer"])) {
if (isset($_SESSION["name"])) {
if ($_SESSION["name"] == $NAME) {
$webinput = file_get_contents("https://werner-zenk.de/archiv/event-kalender.php");
$webinput=html_entity_decode($webinput);
$version_pos = strpos($webinput, "Version vom:") + 13;
$_SESSION["version"] = trim(substr($webinput, $version_pos, 10));
$version_nr_pos = $version_pos + 10;
$_SESSION["version_nr"] = intval(trim(str_replace([chr(10), "Da", "#"], ["", "", ""], substr($webinput, $version_nr_pos, 3))));
$fileinput = file_get_contents("lies_mich.txt", FALSE, NULL, 0, 100);
$version_inst_pos = strpos($fileinput, "Version vom:") + 13;
$_SESSION["version_inst"] = trim(substr($fileinput, $version_inst_pos, 10));
if ($_SESSION["version_nr"] > 0) { $_SESSION["version"] = $_SESSION["version"]."-".$_SESSION["version_nr"]; }
unset($webinput, $version_pos, $version_nr_pos, $fileinput, $version_inst_pos);
if (isset($_SESSION["version"]) AND isset($_SESSION["version_inst"])) {
if ($_SESSION["version"] !== $_SESSION["version_inst"]) { echo '<br />Neue Version vom '.$_SESSION["version"].' vorhanden! <br />Installierte Version ist vom '.$_SESSION["version_inst"].'.<br /><br />';
// hier startet der automatische Update-Prozess mit Backup und Import.
$_SESSION["dir"] = getcwd();
if (is_file($_SESSION["dir"]."/tools/auto-installer.php")) {
echo '[ <a href="'.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/tools/auto-installer.php" target="_self">Neue Version installieren</a> ]    [ <a href="'.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/tools/auto-installer.php?NO" target="_self">Jetzt nicht!</a> ]<br /><br />';
}
} else {
$options = ["expires" => strtotime(date("Y-m-d", (time()+(3600*24)))." 00:00:00"),"path" => '/',"secure" => true,"httponly" => false,"samesite" => "Strict"];
setcookie("auto-installer","true",$options);
unset($options);
}
}
}
}
}
// <- modify RaHa
?>
Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
// dbinfo.inc.php
// Keine Ausführung via URL
if (strpos($_SERVER["SCRIPT_FILENAME"], "dbinfo.inc") > 0 ) { echo "NO"; exit; }
// Verbindungsdaten zur Datenbank
$DB_HOST = "localhost:3306"; // Host-Adresse
$DB_NAME = "event-kalender_"; // Datenbankname
$DB_BENUTZER = "benutzer"; // Benutzername
$DB_PASSWORT = "xyxyxyxyxy"; // Passwort
$TABLE_PREFIX = "mai20"; // mai20 - Letzte Änderung an der DB-Tabelle: Mai 2020
// Attribute für das Datenbankhandle festlegen (UTF-8 (utf8mb4) setzen)
$OPTION = [
PDO::MYSQL_ATTR_INIT_COMMAND => "SET sql_mode='TRADITIONAL'",
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci",
// PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
];
// Verbindung zur Datenbank aufbauen
try {
$db = new PDO("mysql:host=" . $DB_HOST . ";dbname=" . $DB_NAME,
$DB_BENUTZER, $DB_PASSWORT, $OPTION);
}
// Bei einer fehlerhaften Verbindung
catch (PDOException $e) {
if ($FEHLER_VERBINDUNG == "ja") {
echo '<h3>Event-Kalender</h3>' .
'<p>Die Verbindung zur Datenbank ist fehlgeschlagen!';
$fehler = ["2002" => 'Die Host-Adresse ist',
"1049" => 'Der Datenbankname ist',
"1045" => 'Der Benutzername oder das Passwort sind'];
$code = $e->getCode();
if (in_array($code, array_keys($fehler))) {
echo '<br>' . $fehler[$code] . ' unbekannt!</p>';
}
}
exit;
}
?>