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) 2021 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 ->
require_once "verbindung_myfunctions.inc.php";
// <- 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
/* Adressdatenbank einbinden (ja/nein)
Im Formularfeld: "Adresse" werden die Adressen zur Auswahl angezeigt.
*/
$ADRESSDATENBANK = "ja"; // nein
/*
* Kalender
*/
/* Kalender Beschriftung
Eine Beschriftung, ein Bild eintragen oder leer lassen. */
$KALENDER_BESCHRIFTUNG = '<img src="ev-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) */
$WOCHENTAGSNAMEN = "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
*/
// modify RaHa ->
require_once "verbindung_darformate.inc.php";
// <- modify RaHa
/* 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 = 365;
/* Datumsformat
1 = "20 Dezember 2021 (So.)"
2 = "20 Dezember 2021 Sonntag"
3 = "Sonntag, 20 Dezember 2021"
4 = "20.12.2021 So."
5 = "20.12.2021" */
$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@checkip.net"; // user@example.com
// Empfänger der Nachricht
$EMPFAENGER = "mail@checkip.net"; // 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, Max.: 1000 Tage
/* Pflichtfelder im Formular
Die Kommentarzeichen (#) bei Pflichtfeldern entfernen. */
$PLICHTFELDER = [
# 'beschreibung',
# 'adresse',
# '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!) */
$TABLE_PREFIX = "mai20"; // mai20 - Letzte Änderung an der DB-Tabelle: Mai 2020
/* 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>');
}
// modify RaHa ->
require_once "dbinfo.inc.php";
require_once "verbindung_myfunctions2.inc.php";
require_once "verbindung_autoinstaller.inc.php";
// <- modify RaHa
?>
verbindung_myfunctions.inc.php – Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
function mydecrypt($string) {
$pass2=strtr( $string, '-_', '+/') . str_repeat('=', 3 - ( 3 + strlen( $string )) % 4 );
list($pass, $iv) = explode('::', base64_decode($pass2), 2);
$key="😀😀😀😀😀😀😀😀😀😀";
$method="aes-128-cbc";
return openssl_decrypt($pass, $method, $key, 0, $iv);
}
$ISACCESSLINK=false;
if (isset($_SERVER['HTTP_REFERER'])) {
$accesslink=trim($_SERVER['HTTP_REFERER']);
$pos=strpos($accesslink, "access=");
if ($pos!==false) {
$accesslink=substr($accesslink, $pos+7, strlen($accesslink)-$pos+7);
$accesslink=mydecrypt($accesslink);
$pos=strpos($accesslink, "|");
$benutzername=substr($accesslink, 0, $pos);
$dateiname=substr($accesslink, $pos+1, strlen($accesslink)-$pos+1);
if ($benutzername=="ACESSLINK") {
echo '<h1>Generie bitte einen <a href="https://event-kalender.checkip.net/generateaccesslink.php?name=">ACCESSLINK</a>!</h1>';
exit;
}
$filepass="/var/www/vhosts/checkip.net/event-kalender.checkip.net/accesslink/verified/".$dateiname;
if (!is_file($filepass)){
echo 'Sie sind nicht berechtigt!';
exit;
}
unset($_SESSION["name"]);
$_SESSION["name"] = $benutzername;
$NAME = $_SESSION["name"]; // wenn der Admin sein soll
$ISACCESSLINK=true;
} else {
$dynsallow['1']="eins.dyndns.checkip.net";
$dynsallow['2']="zwei.dyndns.checkip.net";
$dynsallow['3']="drei.dyndns.checkip.net";
$dynsallow['4']="vier.dyndns.checkip.net";
$dynsadmin['1']="RaHa";
$dynsadmin['2']="RaHa";
$dynsadmin['3']="WeZe";
$dynsadmin['4']="WeZe";
$i = 0;
unset($_SESSION["name"]);
foreach ($dynsallow as $dynallow) {
$i++;
$ipremote=$_SERVER["REMOTE_ADDR"];
$hostip=gethostbyname($dynallow);
if ( $ipremote == $hostip) {
// Name (Administrator)
$NAME = $dynsadmin[$i]; // Admin
$_SESSION["name"] = $dynsadmin[$i];
break;
} else{
$_SESSION["name"] = str_replace(".", "-", $ipremote);
$NAME = $_SESSION["name"];
}
}
}
}
if (!isset($NAME)) { $NAME="RaHa"; }
/* Passwort (Administrator) - Bitte das Standard-Passwort ändern!
Aus Sicherheitsgründen sollte das Passwort mind. 8 Zeichen enthalten mit Groß- und Kleinschreibung und Sonderzeichen. */
//$NAME_PASS[$NAME] = "raha"; // 0000
//$NAME_PASS["user"] = "2222"; // 0000
//$NAME_PASS["GESCHAEFTSSTELLE"] = "2222"; // 0000
/* Zusätzliche Benutzer (Namen und Passwörter) hinzufügen
Jeder Name und jedes Passwort müssen einmalig sein!
Zur Aktivierung das Kommentarzeichen (#) entfernen.*/
# $NAME_PASS["test"] = "1234";
# $NAME_PASS["Ka Lauer"] = "hihi";
# $NAME_PASS["Rosi Nenkuchen"] = "lecker";
?>
verbindung_darformate.inc.php – Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
/* Priorität - Zahlen und Hintergrundfarben (evtl. anpassen). */
$PRIORITAET = [
0 => "Transparent", // Transparent (für Events ohne Priorität)
1 => "#FF5B5B", // #FF5B5B (Rot)
2 => "#FBD600", // #FBD600 (Gold)
3 => "#9DDF24", // #9DDF24 (Grün)
4 => "#5BADFF", // #5BADFF (Blau)
5 => "#FF9224", // #FF9224 (Orange)
6 => "#FF97FF", // #FF97FF (Violet)
7 => "#28E4FF", // #28E4FF (Himmelblau)
8 => "#FF71AA", // #FF71AA (Rosa)
9 => "#73B9B9", // #73B9B9 (Cyan)
10 => "#D9A36C", // #D9A36C (Braun)
11 => "#ACACAC", // #ACACAC (Grau)
12 => "#73AAD2", // #73AAD2 (Stahlblau)
13 => "#45C07C", // #45C07C (Seegrün)
14 => "#FB9B91", // #FB9B91 (Salomon)
15 => "#E083A2", // #E083A2 (Violetrot)
16 => "#B089D8", // #B089D8 (Purple)
17 => "#B4B46B", // #B4B46B (Khaki)
18 => "#36B663", // #36B663 (Waldgrün)
19 => "#00C4C4", // #00C4C4 (Türkis)
20 => "#94B5DD", // #94B5DD (Blaugrau)
21 => "#FFC28C", // #FFC28C (Terracotta)
22 => "#488CEC", // #488CEC (Mittelblau)
23 => "#7DA628", // #7DA628 (Olive)
24 => "#DDCF53", // #DDCF53 (Altgold)
25 => "#C199C1", // #C199C1 (Blassviolet)
26 => "#5EB3CE", // #5EB3CE (Lichtblau)
27 => "#FFD0D0", // #FFD0D0 (Hellrot)
28 => "#CEE7FF", // #CEE7FF (Hellblau)
29 => "#DFFFBF", // #DFFFBF (Hellgrün)
30 => "#FFFFC1", // #FFFFC1 (Hellgelb)
31 => "#DFDFDF", // #DFDFDF (Hellgrau)
32 => "#FFE7D7", // #FFE7D7 (Seashell)
33 => "#DFFFFF", // #DFFFFF (Azure)
34 => "#F8F8FF", // #F8F8FF (Ghostwhite)
];
/* 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.:
#$KATEGORIEN[$PRIORITAET[1]] = "Abteilung";
*/
$KATEGORIEN[$PRIORITAET[6]] = "GESCHAEFTSSTELLE";
$KATEGORIEN[$PRIORITAET[5]] = "SPONSOREN";
$KATEGORIEN[$PRIORITAET[12]]= "STIFTER";
$KATEGORIEN[$PRIORITAET[1]] = "WICHTIG";
$KATEGORIEN[$PRIORITAET[25]]= "WEBMASTER";
$KATEGORIEN[$PRIORITAET[15]]= "GEBURTSTAG";
$KATEGORIEN[$PRIORITAET[18]]= "SCHULFERIEN";
$KATEGORIEN[$PRIORITAET[2]] = "IPUSER";
$KATEGORIEN[$PRIORITAET[22]]= "ACCESSLINK";
$KATEGORIEN[$PRIORITAET[24]]= "CORONA KATWARN";
$KATEGORIEN[$PRIORITAET[26]]= "CORONA RKI";
$KATEGORIEN[$PRIORITAET[21]]= "ICH";
$KATEGORIEN[$PRIORITAET[16]]= "GOOGLE";
// modify RaHa ->
// Modifikation SENDE-EVENT-MAIL
$KATEGORIE_EMAIL[$PRIORITAET[6]] = "mailer_geschaeftsstelle@checkip.net";
$KATEGORIE_EMAIL[$PRIORITAET[5]] = "mailer_sponsoren@checkip.net";
$KATEGORIE_EMAIL[$PRIORITAET[12]]= "mailer_stifter@checkip.net";
$KATEGORIE_EMAIL[$PRIORITAET[25]]= "mail@checkip.net";
$KATEGORIE_EMAIL[$PRIORITAET[21]]= "test@checkip.net";
// <- 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 $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 ->
/* wird nach Sortierung der Definitionen und Umdefinierung von $KATEGORIEN nicht mehr benötogt
// 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 = 12;
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
/* Benutzer-Details - Status Auswahl */
$BENUTZER_STATUS = [
"Auftrag erledigt",
"Event gelesen",
"Teilnahme am Event",
"Bewertung: 1 Stern",
"Bewertung: 2 Sterne",
"Bewertung: 3 Sterne",
"Bewertung: Gut",
"Bewertung: Neutral",
"Bewertung: Schlecht",
];
?>
dbinfo.inc.php – Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
verbindung_myfunctions2.inc.php – Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?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
?>
verbindung_autoinstaller.inc.php – Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
// modify RaHa ->
// Versionsüberprüfung wenn der User Admin ist
// Voraussetzung ist, dass lies_micht.txt nicht verändert wurde
echo "Leider hat Werner Zenk seine Webseite eingestellt. Schade für den kompletten Verlust seiner hervorrageden Arbeit!! Gerne hätte ich weiterhin auf werner-zenk.de nachgelesen und nach Scripten geschaut. Nochmals Danke für all die Arbeit.";
/*
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");
if($webinput!==False) {
$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);
}
} else { echo "FILE https://werner-zenk.de/archiv/event-kalender.php kann nicht gelesen werden!!"; }
}
}
}
}
*/
// <- modify RaHa
?>