Wochentag
// $dat -> Datum
// $ti -> Uhrzeit
// Return: Datuns/Zeit-String
function buildDate($wt,$dat,$ti) {
$dat = preg_replace('#^(\d{4})(\d{2})(\d{2})$#', '\3.\2.\1', $dat);
$r = substr($wt,0,2) . ", " . $dat . " " . $ti;
return $r;
}
// Aus der DB aus der Table 'fdatum' den Eintrag für $fid holen
// und als Datum/Zeit-String übergeben
// Parameter:
// $fid -> id des Führungsdatums in der Datenbank-Tabelle
// Return: Datum/zeit-String
function holDate($fid) {
global $db;
$sql_sel = "SELECT wtag, datum, uhrzeit FROM fdatum where id = '$fid'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error());
$data = mysqli_fetch_assoc($result);
$ret = array();
$ret[] = $data['wtag'];
$ret[] = $data['datum'];
$ret[] = $data['uhrzeit'];
$ret[] = buildDate($data['wtag'], $data['datum'], $data['uhrzeit']);
return $ret;
}
// die Daten der nächsten 30 Führungen in ein Array holen
// Parameter -
// Retunrn: Array mit allen Werte aus der Table
function getNextFuehrungen() {
global $db, $vorlauf;
$erg = array();
$toadd = '+' . $vorlauf . 'hour';
$dt = new DateTime($toadd);
$datum_heute = $dt->format('Ymd');
$sql_sel = "SELECT id, wtag, datum, uhrzeit FROM fdatum where datum >='$datum_heute' order by datum ASC LIMIT 30";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error());
while ($row = mysqli_fetch_row($result)) {
$entry = array();
$entry['fid'] = $row[0];
$entry['weekday'] = $row[1];
$entry['date'] = $row[2];
$entry['time'] = $row[3];
$erg[] = $entry;
}
return $erg;
}
// 'select'-Tag für die Führungen bauen
// Paramter:
// $fuehrungen -> Array mit den kommenden Führungen
// Return: Sring mit dem HTML-Code
function bauNextFuehrungen($fuehrungen, $maxP) {
$r = "
";
return $r;
}
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
// Parameter:
// $fid -> id des Führungsdatum
// Return: Anzahl der Personen
function getCountsPerDate($fid) {
global $db;
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fid='$fid'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error());
$data = mysqli_fetch_assoc($result);
return $data['count'];
}
?>
// Hier werden alle notwendigen Variablen eingesammelt ------------------------
if (isset($_POST['submit'])) {
$stern_name = $_REQUEST['name'];
$stern_vorname = $_REQUEST['vorname'];
$stern_strasse = $_REQUEST['strasse'];
$stern_ort = $_REQUEST['ort'];
$stern_plz = $_REQUEST['plz'];
$stern_tel = $_REQUEST['tel'];
$stern_mail = $_REQUEST['mail'];
$stern_teil = $_REQUEST['teil'];
$xxx = array();
$xxx[] = holDate($_REQUEST['fdlink']);
$stern_datum = $xxx[0][3];
$stern_fdlink = $_REQUEST['fdlink'];
$stern_submit = $_REQUEST['submit'];
$stern_actionstern = $_REQUEST['stern_actionstern'];
$stern_remarks = $_REQUEST['remarks'];
} else {
$stern_name = '';
$stern_vorname = '';
$stern_strasse = '';
$stern_ort = '';
$stern_tel = '';
$stern_mail = '';
$stern_teil = '';
$stern_datum = '';
$stern_submit = '';
$stern_fdlink = '';
$stern_actionstern = '';
$stern_remarks = '';
}
// Hier werden default Werte gesetzt ------------------------
$stern_error_msg = '';
$stern_meldung = '';
$stern_errors = 0;
$andererTermin = "bitte wählen Sie einen anderen Termin";
// ----------------------------------------------------------
switch ($stern_actionstern) {
case 'senden':
// Hier wir geprüft, ob alle Felder ausgefüllt sind ------------------------
if (trim($stern_name) == '') {
$stern_error_msg .= 'Bitte geben Sie Ihren Namen ein.
';
$stern_errors++;
}
/*
if (trim($stern_vorname) == '') {
$stern_error_msg .= 'Bitte geben Sie Ihren Vornamen ein.
';
$stern_errors ++;
}
*/
if (trim($stern_strasse) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Straße ein.
';
$stern_errors ++;
}
if (trim($stern_plz) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Postleitzahl ein.
';
$stern_errors ++;
}
if (! preg_match("/^[0-9]{5}$/", $stern_plz)) {
$stern_error_msg .= 'Bitte geben Sie bei der Postleitzahl mindestens fünf Ziffern und keine Buchstaben ein.
';
$stern_errors ++;
}
if (trim($stern_ort) == '') {
$stern_error_msg .= 'Bitte geben Sie einen Ort ein.
';
$stern_errors ++;
}
/*
if (trim($stern_tel) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Telefonnummer ein.
';
$stern_errors ++;
}
*/
if (!preg_match("/^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}/",
strtolower($stern_mail))) {
$stern_error_msg .= 'Bitte geben Sie eine gültige E-Mail-Adresse ein.
';
$stern_errors++;
}
$belegt = getCountsPerDate($stern_fdlink);
$rest = $maxPersonen-$belegt;
if((trim($stern_teil) + $belegt) > $maxPersonen) {
if ($rest <= 0) {
$stern_error_msg .= "Die Führung ist ausgebucht, $andererTermin
";
} else {
$stern_error_msg .= "Die Führung ist schon mit $belegt Personen belegt, es ";
if ($rest == 1) {
$stern_error_msg .= "kann nur noch 1 Person ";
} else {
$stern_error_msg .= "können höchstens noch $rest Personen ";
}
$stern_error_msg .= "angemeldet werden.
";
}
$stern_errors++;
}
$nun = strtotime("now");
list($w,$d,$t,$s) = holDate($stern_fdlink);
$fzt = substr($fzeit,0,2);
$fz = strtotime("$d" . "t" . substr($t,0,2) . "00");
$dauer = ($fz - $nun) / 3600;
if ($dauer <= $vorlauf) {
$stern_error_msg .= "Die Anmeldung muss
spätestens $vorlauf Stunden vor Beginn der Führung erfolgen - $andererTermin.
";
$stern_errors++;
}
if ($stern_errors == 0) {
$sql_stmt = "INSERT INTO anmeldungen (name, vorname, strasse, plz, stadt, telefon, email, anzahl, fid, remarks, angemeldet)" .
" values('$stern_name', '$stern_vorname', '$stern_strasse', '$stern_plz', '$stern_ort', '$stern_tel'," .
"'$stern_mail', '$stern_teil', '$stern_fdlink', '$stern_remarks', CURDATE())";
$ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$person = $stern_teil == 1 ? "Person" : "Personen";
$body = "\r\nName, Vorname: $stern_name, $stern_vorname \r\n" .
"Strasse: $stern_strasse \r\n" .
"Ort: $stern_plz $stern_ort \r\n" .
"Telefon: $stern_tel \r\n" .
"E-mail: $stern_mail \r\n" .
"Gewünschter Termin: $stern_datum \r\n" .
"Teilnehmerzahl: $stern_teil \r\n" .
"Bemerkungen: $stern_remarks \r\n";
$bodya = "Sehr geehrte Dame, sehr geehrter Herr, \r\n\r\n" .
"hiermit bestätigen wir Ihre Anmeldung zu einer Führung auf der Sternwarte Welzheim für\r\n\r\n" .
"$stern_vorname $stern_name am " . preg_replace("/(\d+) Uhr/","um $0",$stern_datum) . " für $stern_teil $person " .
// $stern_teil == 1 ? "Person" : "Personen" .
".\r\n\r\n" .
"Bitte bringen Sie diese Bestätigung als Ausdruck oder digital zur Führung mit. \r\n".
"Ohne diese Bestätigung erfolgt ausnahmslos k e i n Einlass.\r\n\r\n" .
"Die Führung findet NUR bei sternklarem Himmel statt. Falls der Himmel bedeckt ist \r\n" .
"und die Führung ausfällt, bitten wir Sie um eine neue Anmeldung.\r\n\r\n" .
"Die Hygienevorschriften sind zu beachten: Die Teilnehmer müssen Gesichtsmasken \r\n" .
"tragen und den vorgeschriebenen Abstand halten. " .
"Nicht teilnehmen dürfen Personen, \r\ndie in den letzten vierzehn Tagen Kontakt " .
"mit einem Coronavirus-Infizierten \r\nhatten oder Infektionssymptome zeigen.\r\n\r\n" .
"Mit freundlichen Grüßen\r\n\r\n" .
"Beobachterteam der Sternwarte Welzheim\r\n\r\n" .
"www.sternwarte-welzheim.de";
$betreff = "Anmeldung zu einer Führung auf der Sternwarte Welzheim";
$betreffBeo = "Anmeldung zur Führung in Welzheim am $stern_datum";
mb_internal_encoding('UTF-8');
$betreff = mb_encode_mimeheader($betreff, 'UTF-8', 'Q');
$absender = "noreply@sternwarte-welzheim.de";
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: {$absender}";
$headers[] = "X-Mailer: PHP/" . phpversion();
$headers[] = "Reply-To: {$absender}";
// Mail an den Anfragenden
mail($stern_mail, $betreff, $bodya, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
mail("rexfue@gmail.com", $betreff, $bodya, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
// Mail an einige BEOs und an die Liste
$beoliste = array(
//"andrea.ess@t-online.de",
//"sonderfuehrung@sternwarte-welzheim.de",
//"martin.gertz@gmx.de",
// "schittenhelm.klaus@gmx.de",
// "planetarium@stuttgart.de",
//"info@planetarium-stuttgart.de",
//"HUK@observatory-stuttgart.de",
"rexfue@gmail.com",
);
array_pop($headers);
foreach ($beoliste as $to) {
mail($to, $betreffBeo, $body, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
}
$stern_meldung = "
Vielen Dank für Ihre Anmeldung.
Wir freuen uns über Ihren Besuch auf der Sternwarte Welzheim am
" .
preg_replace('/(\d+) Uhr/','um $0',$stern_datum) .
" mit $stern_teil $person.
Wir haben Ihnen die Anmelde-Bestätigung per Email zugesandt.
Zurück
";
// Antwortseite
?>
' . $stern_error_msg . '
';
}
// Wenn ein Fehler aufgetreten ist ($errors != 0), folgt jetzt der default Teil
// d.h. das Eingabeformular wird nochmals angezeigt mit einer Fehlermeldung.
// ----------------------------------------------------------------------------
default:
?>
Wegen der Corona-Pandemie dürfen nur angemeldeten Personen an einer Führung in der
Sternwarte Welzheim teilnehmen. Bitte geben Sie unten Ihre Kontaktdaten an.
Nach Maßgabe der aktuellen Corona-Verordnung werden Ihre Daten vier Wochen gespeichert
und anschließend gelöscht.
An einer Führung dürfen nur maximal zehn Personen teilnehmen, damit der
vorgeschriebene Sicherheitsabstand eingehalten werden kann. Sollte die von
Ihnen ausgewählte Führung bereits ausgebucht sein, wählen Sie bitte einen anderen Termin.
Wenn Sie alle Felder ausgefüllt und abgeschickt haben (mit den "Anmeldung senden"-Knopf),
erhalten Sie eine Anmeldebestätigung per e-mail. Diese bitte unbedingt zur Führung
ausgedruckt oder in digitaler Form mitbringen!
Die Hygienevorschriften sind zu beachten: Jeder Teilnehmer muss eine
Gesichtsmaske tragen und den vorgeschriebenen Abstand einhalten.
Nicht teilnehmen dürfen Personen, die in den letzten vierzehn Tagen Kontakt
mit einem Coronavirus-Infizierten hatten oder Infektionssymptome zeigen.
Die Führungen auf der Sternwarte Welzheim finden nur bei
sternklarem Himmel statt. Sollte die Führung wegen des Wetters ausfallen, bitten wir
Sie, sich für einen neuen Termin nochmals anzumelden.
Die Fernrohre in den Beobachtungskuppeln sind nur über Treppen zu
erreichen. Es besteht leider keine Möglichkeit, Rollstühle in die
Kuppeln mitzunehmen. Für Kleinkinder sind Sternführungen nicht
geeignet.
Betrieb und Arbeit auf der Sternwarte erfolgen ehrenamtlich.
Unterhalt und Aktivitäten auf der Sternwarte sind nur durch
Ihre Unterstützung möglich. Wir bitten daher um eine ensprechende Spende.
// ----------------------------------------------------------------------------
} // Ende switch($page)
?>