Files
2026-03-24 14:45:06 +01:00

465 lines
14 KiB
PHP

<!DOCTYPE HTML>
<!--
Alpha by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<?php
include('header.php');
?>
<title>Praxis Creutzburg - Formulare</title>
<link rel="stylesheet" href="css/formulare.css" />
</head>
<body >
<!-- Header -->
<header id="header" class="../skel-layers-fixed">
<?php
include('menu.php');
include_once("inc/config.inc.php");
include_once("inc/functions.inc.php");
include_once('inc/functions.impfen.inc.php');
include_once('inc/functions.formulare.inc.php');
?>
</header>
<!-- Main -->
<section id="main" class="container">
<?php
echo showHeaderpraxis();
?>
<section class="box special">
<h2>Service anfordern</h2>
<?php
if(isset($_POST["aktion"])){
if($_POST["aktion"] == "1"){
echo '<h4>Kontrollieren Sie Ihre Angaben!</h4><br>';
echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
echo '<table border="0">';
// Schleife durch Clemens 15.10.2018 - aktualisiert 01.02.2026
foreach ($_POST as $key => $value) {
if ($value === "" || $key === "submit" || $key === "aktion") {
continue;
}
if ($key === "category") {
$stmt = $pdo->prepare("
SELECT artname
FROM anfrageart
WHERE artid = :artid
LIMIT 1
");
$stmt->execute([
':artid' => $value
]);
$rowimpf = $stmt->fetch(PDO::FETCH_ASSOC);
$anfragearttext = $rowimpf['artname'] ?? '';
echo "<tr>
<td width='100' valign='top' class='fett'>{$key}:</td>
<td>" . htmlspecialchars($anfragearttext, ENT_QUOTES, 'UTF-8') . "</td>
</tr>\n";
echo "<input type='hidden' name='{$key}' value='" . htmlspecialchars($value, ENT_QUOTES, 'UTF-8') . "'>\n";
} else {
echo "<tr>
<td width='100' valign='top' class='fett'>{$key}:</td>
<td>" . htmlspecialchars($value, ENT_QUOTES, 'UTF-8') . "</td>
</tr>\n";
echo "<input type='hidden' name='{$key}' value='" . htmlspecialchars($value, ENT_QUOTES, 'UTF-8') . "'>\n";
}
}
echo '</table>';
echo '<input type="hidden" name="aktion" value="2" />';
echo '<input type="submit" value="Anfrage abschicken" />';
echo '</form >';
}else if($_POST["aktion"] == "2"){
$vorname = trim($_POST["Vorname"] ?? "");
$nachname = trim($_POST["Name"] ?? "");
$geburtstag = trim($_POST["Geburtsjahr"] ?? ""); // muss später YYYY-MM-DD sein
$email = trim($_POST["Email"] ?? "");
$tele = trim($_POST["Tel"] ?? "");
$plz = trim($_POST["plz"] ?? "");
$ort = trim($_POST["ort"] ?? "");
$strasse = trim($_POST["strasse"] ?? "");
$medikament1 = trim($_POST["Medikament1"] ?? "");
$medikament2 = trim($_POST["Medikament2"] ?? "");
$nachricht = trim($_POST["message"] ?? "");
$anforderungart = trim($_POST["category"] ?? "");
$abholung = $_POST["abholung"] ?? "Praxis";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("Ungültige E-Mail");
}
if (!$geburtstag) {
die("Geburtsdatum fehlt");
}
$abholungnr = ($abholung === "Apotheke") ? "2" : "1";
$karte = $_POST["karte"] ?? "";
if ($karte === "Privat") {
$karte = "Privatrezept (Selbstzahler)";
}
$nachricht = "Karte eingelesen: " . $karte . "<br>" .
"Abholungsort: " . $abholung . "<br>" .
$nachricht;
$impfstofftext = null;
if (!empty($impfstoff)) {
$stmt = $pdo->prepare("SELECT impfname FROM impfstoff WHERE impfid = ?");
$stmt->execute([$impfstoff]);
$impfstofftext = $stmt->fetchColumn();
}
$sendmail = false;
$pdo->beginTransaction();
$stmt = $pdo->prepare("
INSERT INTO persons (vorname, nachname, email, geburtstag, tele, ort, plz, strasse)
VALUES (:vorname, :nachname, :email, :geburtstag, :tele, :ort, :plz, :strasse)
ON DUPLICATE KEY UPDATE
vorname = VALUES(vorname),
nachname = VALUES(nachname),
tele = VALUES(tele),
ort = VALUES(ort),
plz = VALUES(plz),
strasse = VALUES(strasse),
updated_at = CURRENT_TIMESTAMP
");
$stmt->execute([
':vorname' => $vorname,
':nachname' => $nachname,
':email' => $email,
':geburtstag' => $geburtstag,
':tele' => $tele,
':ort' => $ort,
':plz' => $plz,
':strasse' => $strasse
]);
// person_id holen (weil ON DUPLICATE nicht zuverlässig lastInsertId liefert)
$stmt = $pdo->prepare("SELECT person_id FROM persons WHERE email = ? AND geburtstag = ?");
$stmt->execute([$email, $geburtstag]);
$person_id = (int)$stmt->fetchColumn();
if (!$person_id) {
$pdo->rollBack();
die("Keine eindeutige Kennung (person_id)");
}else{
$hashvorher = $vorname . $nachname . $Email;
$hash = md5($hashvorher) . date("YmdHs");
$sendmail = true;
$stmt = $pdo->prepare("
SELECT 1
FROM anfragen
WHERE requester_person_id = ?
AND anforderungart = ?
AND medikament1 = ?
AND medikament2 = ?
AND nachricht = ?
AND create_time >= (NOW() - INTERVAL 7 DAY)
LIMIT 1
");
$stmt->execute([$person_id, $anforderungart, $medikament1, $medikament2, $nachricht]);
$exists = (bool)$stmt->fetchColumn();
if (!$exists) {
$stmt = $pdo->prepare("
INSERT INTO anfragen
(requester_person_id, anforderungart, medikament1, medikament2,
nachricht, hash, create_time, ordnungsid, abholort, sicherenachricht,
source, created_by_account_id)
VALUES
(?, ?, ?, ?, ?, ?, NOW(), '1', ?, '0', 'mail', NULL)
");
$stmt->execute([
$person_id,
$anforderungart,
$medikament1,
$medikament2,
$nachricht,
$hash,
$abholungnr
]);
$anfrageid = (int)$pdo->lastInsertId();
$pdo->commit();
// Achtung: deine Funktion erwartet $con (mysqli). Die musst du später auf PDO umbauen.
// Übergangsweise: Lass die Mailfunktion noch mit mysqli laufen oder baue sie um.
SendMailMessageVorlage($pdo, "3", $anfrageid , "18" );
echo "<h3>Nachricht abgeschickt!</h3><br>Sie bekommen eine Bestätigung per E-Mail!<br>Überprüfen Sie auch Ihren Spam-Filter!<br><br>Sie werden gleich weitergeleitet.<br>";
header("refresh:15;rezepte.php");
} else {
$pdo->rollBack();
echo "<h3>Doppelte Anfrage</h3><br>Ihre Anfrage wurde schon in unserem System gespeichert.<br>Sie haben die identische Anfrage schon in den letzten sieben Tagen eingereicht.<br>Bitte warten Sie auf die Verarbeitung Ihrer Anfrage.<br><br>";
header("refresh:15;rezepte.php");
}
}
}
}else{
?>
Formulare anfordern, nur nach ärztlicher Absprache und Kontakt. Kassenleistungen sind an die gesetzlichen Regelungen gebunden. Fragen Sie Ihre Krankenkasse.<br>
<br>Benutzen Sie eine Email-Adresse auf die Sie direkt zugreifen können. Bitte bestätigen Sie dann den Link in der Email. So können wir Ihnen im Verlauf den Stand der Bearbeitung Ihrer Anfrage sicher mitteilen.
<br><br><br>
Stellen Sie wiederholt Anfragen an die Praxis Creutzburg? <br>
Wollen Sie bis zu sechs Medikamente beantragen?<br>
Benötigen Sie ein längeres Textfeld?<br>
<br>Dann nutzen Sie auch unseren <a href="https://www.praxis-creutzburg.de/intern/">Internen Bereich</a> für Patienten.
<br><br>
<h4>Nutzen Sie unsere neue Datei-Upload-Funktion! </h4>
Sie können damit dem Praxis-Team Unterlagen per PDF zur Verfügung stellen.<br>
Den Upload finden Sie hier: <a href="https://praxis-creutzburg.de/dateiupload.php">Datei-Upload</a><br>
</header>
<div class="row">
<div class="12u">
<!-- Form -->
<section class="box">
<?php
// Urlaubsabfrage
$today = date("Y-m-d");
$stmt = $pdo->prepare("
SELECT urlaubid
FROM urlaub
WHERE start <= ?
AND ende >= ?
LIMIT 1
");
$stmt->execute([$today, $today]);
$urlaubid = $stmt->fetchColumn();
if (!$urlaubid) {
?>
<h2>ACHTUNG!</h2>
<h3>Fragen zu Corona?</h3>
Alle Informationen zur Corona-Impfung finden Sie hier:<br>
<a href="impfanmeldung.php".php" class="button alt" style="font-size: 18px;background-color: #4CAF50;color:white;">Corona-Informationen</a><br><br>
<h3>Sie benötigen einen Termin?</h3>
Schauen Sie in unserem Online-Kalender nach einem Termin. Dort sind meist auch kurzfristige Termine vorhanden.<br>
Untersuchungen wie Blutabnahmen, Blutbild oder Ultraschall auf Kassenleistung erfolgen ausschließlich nach direkter Rücksprache mit unserem Arzt und können nicht selbstständig online gebucht werden.<br>
<h4>Buchen Sie dafür zunächst einen Sprechstundentermin.</h4> Anschließend wird das weitere Vorgehen mit unserem Arzt besprochen.
<br>
<a href="termine.php".php" class="button alt" style="font-size: 18px;background-color: #4CAF50;color:white;">Online-Kalender</a><br><br>
<h3>Formular bitte ausfüllen und abschicken</h3>
<p>Gehen Sie nach unten zum Formular und füllen Sie es (wie gewohnt) aus.</p>
<?php echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
?>
<div class="row uniform 50%">
<?php
echo ShowFormularFragenBenutzer();
?>
<div class="12u">
<label for="category">Ich habe eine Anfrage für folgendes Thema:</label>
<div class="select-wrapper">
<select name="category" id="category" required >
<option value=""> Bitte wählen Sie aus</option>
<?php
$stmt = $pdo->prepare("
SELECT artid, artname
FROM anfrageart
WHERE allgemeinanforderung = 1
");
$stmt->execute();
while ($rowimpf = $stmt->fetch(PDO::FETCH_ASSOC)) {
$artname = $rowimpf["artname"];
$artid = $rowimpf["artid"];
?>
<option value="<?php echo htmlspecialchars($artid, ENT_QUOTES, 'UTF-8'); ?>">
<?php echo htmlspecialchars($artname, ENT_QUOTES, 'UTF-8'); ?>
</option>
<?php
}
?>
</select>
<div id="AstraInfobox"></div>
</div>
</div>
</div>
<div class="row uniform 50%">
<div class="12u">
<textarea name="message" id="message" placeholder="Ihre Nachricht/Bemerkung" rows="6" maxlength="150"></textarea>
</div>
</div>
<div class="row uniform">
<div class="12u">
<br>
Bedenken Sie bitte, dass wir einmal im Quartal Ihre Chipkarte benötigen. Ohne Chipkarte sind seit 1.1.2016 keine Kassendienstleistungen mehr möglich. Kassenleistungen sind an die gesetzlichen Regelungen gebunden. Fragen Sie Ihre Krankenkasse.<br>
Ihre Daten werden HTTPS-verschlüsselt an unser System übertragen. Sie erhalten die Antwort per E-Mail mit TLS-Verschlüsselung. Mit Absenden Ihrer Anfrage stimmen Sie diesen Bedingungen zu.<br>
</div>
</div>
<div class="row uniform">
<div class="12u">
<ul class="actions">
<li><input type="submit" value="Abschicken" /></li>
<li><input type="reset" value="Reset" class="alt" /></li>
</ul>
</div>
</div>
</form>
<hr />
<?php }else{
echo "<h2>Praxis im Urlaub</h2>";
echo "Wir befinden uns aktuell im Urlaub.<br>Wenden Sie sich an unsere Vertretung oder warten Sie bis nach unserem Urlaub mit Ihrer Anfrage.<br><br>";
$today = date("Y-m-d");
$stmt = $pdo->prepare("
SELECT ende, vertretung, vertretertelefon, vertreteradresse, vertreterurl
FROM urlaub
WHERE start <= :today
AND ende >= :today
ORDER BY ende DESC
LIMIT 1
");
$stmt->execute([':today' => $today]);
$row = $stmt->fetch(); // liefert Array oder false
if ($row) {
$vertreter = $row["vertretung"] ?? null;
$vertretertelefon = $row["vertretertelefon"] ?? null;
$vertreteradresse = $row["vertreteradresse"] ?? null;
$vertreterurl = $row["vertreterurl"] ?? null;
$ende = $row["ende"] ?? null;
if ($ende) {
$endeausgabe = date("d.m.Y", strtotime("+1 day", strtotime($ende)));
} else {
$endeausgabe = null;
}
if (!empty($vertreter)) {
echo "Unsere Vertretung: " . htmlspecialchars($vertreter, ENT_QUOTES, 'UTF-8') . "<br>";
}
if (!empty($vertreterurl)) {
// optional: URL escapen/validieren
echo "Webseite Vertretung: " . htmlspecialchars($vertreterurl, ENT_QUOTES, 'UTF-8') . "<br>";
}
if (!empty($vertretertelefon)) {
echo "Telefonischer Kontakt Vertretung: " . htmlspecialchars($vertretertelefon, ENT_QUOTES, 'UTF-8') . "<br>";
}
if (!empty($vertreteradresse)) {
echo "Adresse Vertretung: " . htmlspecialchars($vertreteradresse, ENT_QUOTES, 'UTF-8') . "<br>";
}
if ($endeausgabe) {
echo "<br>Wir stehen Ihnen ab dem " . htmlspecialchars($endeausgabe, ENT_QUOTES, 'UTF-8') . " wieder zur Verfügung.<br><br><br>";
}
}
?>
<form action="index.php" method=POST>
<input type=submit class=button value="Zurück">
</form>
<?php
}
}
?>
</div>
</div>
</section>
<?php
include_once('footer.php');
?>
</body>
</html>