Abgleich mit Live-Daten
This commit is contained in:
+30
-30
@@ -1,30 +1,30 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_admin_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
|
||||
if(check_admin()){
|
||||
echo "Admin";
|
||||
}else{
|
||||
echo "nicht Admin";
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_admin_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
|
||||
if(check_admin()){
|
||||
echo "Admin";
|
||||
}else{
|
||||
echo "nicht Admin";
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
|
||||
+58
-58
@@ -1,58 +1,58 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_admin_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
?>
|
||||
<script src="/admin/js/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<div class="container main-container">
|
||||
<?php
|
||||
##test2
|
||||
echo '<div style="float: right; width: 200px; ">';
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' id='formbenutzersuche' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" value="benutzersuche" />';
|
||||
echo '<input type="hidden" name="userid_input" id="userid_input" />';
|
||||
echo '<label>Benutzersuche Anfragen:</label>
|
||||
<input type="text" id="user_input" name="skill_input" width="48"/>';
|
||||
//echo '<input type="submit" class="btn btn-primary" id="submitbox" value="" />';
|
||||
echo "</form>";
|
||||
echo '</div>';
|
||||
?>
|
||||
<h2>Administration - Anrufantworter</h2>
|
||||
|
||||
Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich!<br><br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
if(!check_worker()){
|
||||
echo "Dieser Bereich ist nur für Bearbeiter freigeschaltet!<br><br><br>";
|
||||
}else{
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<a href="file:///P:\Telefonanlage\telefonanlage.html" target="_blank">Übersicht der Anruf auf dem Anrufbeantworter</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_admin_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
?>
|
||||
<script src="/admin/js/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<div class="container main-container">
|
||||
<?php
|
||||
##test2
|
||||
echo '<div style="float: right; width: 200px; ">';
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' id='formbenutzersuche' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" value="benutzersuche" />';
|
||||
echo '<input type="hidden" name="userid_input" id="userid_input" />';
|
||||
echo '<label>Benutzersuche Anfragen:</label>
|
||||
<input type="text" id="user_input" name="skill_input" width="48"/>';
|
||||
//echo '<input type="submit" class="btn btn-primary" id="submitbox" value="" />';
|
||||
echo "</form>";
|
||||
echo '</div>';
|
||||
?>
|
||||
<h2>Administration - Anrufantworter</h2>
|
||||
|
||||
Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich!<br><br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
if(!check_worker()){
|
||||
echo "Dieser Bereich ist nur für Bearbeiter freigeschaltet!<br><br><br>";
|
||||
}else{
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<a href="file:///P:\Telefonanlage\telefonanlage.html" target="_blank">Übersicht der Anruf auf dem Anrufbeantworter</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
|
||||
+39
-39
@@ -1,40 +1,40 @@
|
||||
/* Popup box BEGIN */
|
||||
.infofenster {
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
right: 100px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
min-height: 100px;
|
||||
min-width: 400px;
|
||||
padding-left: 50px;
|
||||
padding-right: 50px;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
border-radius: 15px 15px 15px 15px;
|
||||
text-align: center;
|
||||
|
||||
z-index: 1000;
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
animation:signup-response 0.5s 1;
|
||||
-webkit-animation:signup-response 0.5s 1;
|
||||
animation-fill-mode: forwards;
|
||||
|
||||
animation-delay:5s;
|
||||
-webkit-animation-delay:5s; /* Safari and Chrome */
|
||||
-webkit-animation-fill-mode: forwards;
|
||||
|
||||
}
|
||||
|
||||
@keyframes signup-response{
|
||||
from {opacity :1;}
|
||||
to {opacity :0;}
|
||||
}
|
||||
|
||||
@-webkit-keyframes signup-response{
|
||||
from {opacity :1;}
|
||||
to {opacity :0;}
|
||||
}
|
||||
|
||||
/* Popup box BEGIN */
|
||||
.infofenster {
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
right: 100px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
min-height: 100px;
|
||||
min-width: 400px;
|
||||
padding-left: 50px;
|
||||
padding-right: 50px;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
border-radius: 15px 15px 15px 15px;
|
||||
text-align: center;
|
||||
|
||||
z-index: 1000;
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
animation:signup-response 0.5s 1;
|
||||
-webkit-animation:signup-response 0.5s 1;
|
||||
animation-fill-mode: forwards;
|
||||
|
||||
animation-delay:5s;
|
||||
-webkit-animation-delay:5s; /* Safari and Chrome */
|
||||
-webkit-animation-fill-mode: forwards;
|
||||
|
||||
}
|
||||
|
||||
@keyframes signup-response{
|
||||
from {opacity :1;}
|
||||
to {opacity :0;}
|
||||
}
|
||||
|
||||
@-webkit-keyframes signup-response{
|
||||
from {opacity :1;}
|
||||
to {opacity :0;}
|
||||
}
|
||||
|
||||
/* Popup box BEGIN */
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/impfworkflow_stammdaten.php';
|
||||
|
||||
<?php
|
||||
require_once __DIR__ . '/impfworkflow_stammdaten.php';
|
||||
|
||||
|
||||
@@ -1179,5 +1179,5 @@ try {
|
||||
</div>
|
||||
|
||||
<?php include __DIR__ . "/templates/footer.inc.php"; ?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?php
|
||||
$_GET['view'] = 'event-create';
|
||||
require_once __DIR__ . '/impfworkflow.php';
|
||||
require_once __DIR__ . '/impfworkflow.php';
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?php
|
||||
$_GET['view'] = 'event-teilnehmer';
|
||||
require_once __DIR__ . '/impfworkflow.php';
|
||||
require_once __DIR__ . '/impfworkflow.php';
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?php
|
||||
$_GET['view'] = 'teilnehmer';
|
||||
require_once __DIR__ . '/impfworkflow.php';
|
||||
require_once __DIR__ . '/impfworkflow.php';
|
||||
|
||||
+118
-118
@@ -1,119 +1,119 @@
|
||||
<?php
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
$user = check_admin_user();
|
||||
$internUserId = (int)$_SESSION['auth']['id'];
|
||||
include("templates/header.inc.php");
|
||||
if (!$user) { echo "<div class='container main-container'><h3>Erst anmelden: <a href=login.php>Login</a></h3><br>";
|
||||
|
||||
include("templates/footer.inc.php");
|
||||
exit; }
|
||||
?>
|
||||
<meta http-equiv="refresh" content = "0;url=anfragen.php">
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<div class="container main-container">
|
||||
|
||||
<?php
|
||||
|
||||
/*
|
||||
global $pdo;
|
||||
|
||||
$identifier = $_COOKIE['identifier'];
|
||||
$securitytoken = $_COOKIE['securitytoken'];
|
||||
|
||||
$statement = $pdo->prepare("SELECT * FROM securitytokens WHERE identifier = :identifier");
|
||||
$result = $statement->execute(array('identifier' => $identifier));
|
||||
$securitytoken_row = $statement->fetch();
|
||||
echo $securitytoken_row['securitytoken'];
|
||||
echo "<br>";
|
||||
echo sha1($securitytoken);
|
||||
*/
|
||||
?>
|
||||
<h1>Administration</h1>
|
||||
|
||||
Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich!<br>
|
||||
|
||||
<!--
|
||||
<p>Hier finden Sie die weiteren Bearbeitungsschritte:<br><br></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="anfragen.php" role="button">Bearbeitung der Anfragen</a>  
|
||||
<a class="btn btn-primary btn-lg" role="button" href="anfragen.php">Anfragen</a></p>
|
||||
<br>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="../zeiterfassung">Zeiterfassung</a></p>
|
||||
<br>
|
||||
<p><a class="btn btn-primary btn-lg" href="impfadmin.php" role="button">Impf-Administration</a>   
|
||||
<a class="btn btn-primary btn-lg" role="button" href="impfadmin.php">Impfung</a>   
|
||||
<a class="btn btn-primary btn-lg" role="button" href="togoadmin.php">togo-Impfung</a></p>
|
||||
<br>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="webseitenadmin.php">Webseiteninhalt ändern</a></p>
|
||||
<br><br><br>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="settings.php">Einstellungen</a></p>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="logout.php">Logout</a></p>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
echo '<h4>Welche Aktion möchtest du durchführen?</h4>
|
||||
<table width=100%><tr><td width=40%>
|
||||
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=1>
|
||||
<input type=submit class="btn btn-primary btn-lg" value="Formular-Anfragen bearbeiten">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=18>
|
||||
<input type=submit class="btn btn-primary" value="Mailvorlagen anlegen">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=12>
|
||||
<input type=submit class="btn btn-primary" value="Formular Auswertung">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=16>
|
||||
<input type=submit class="btn btn-primary" value="Mailvorlagen anpassen">
|
||||
</form>
|
||||
</td></tr><br><br><br><br>
|
||||
<tr></tr>
|
||||
<tr><td><h3>Urlaub / Hinweis planen</h3></td><td></td></tr>
|
||||
<tr><td>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=4>
|
||||
<input type=submit class="btn btn-primary btn-lg" value="Urlaub eintragen">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=6>
|
||||
<input type=submit class="btn btn-primary" value="Notfallsprechstunde eintragen">
|
||||
</form>
|
||||
</tr>
|
||||
</table>
|
||||
<br><br>
|
||||
';
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
<?php
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
$user = check_admin_user();
|
||||
$internUserId = (int)$_SESSION['auth']['id'];
|
||||
include("templates/header.inc.php");
|
||||
if (!$user) { echo "<div class='container main-container'><h3>Erst anmelden: <a href=login.php>Login</a></h3><br>";
|
||||
|
||||
include("templates/footer.inc.php");
|
||||
exit; }
|
||||
?>
|
||||
<meta http-equiv="refresh" content = "0;url=anfragen.php">
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<div class="container main-container">
|
||||
|
||||
<?php
|
||||
|
||||
/*
|
||||
global $pdo;
|
||||
|
||||
$identifier = $_COOKIE['identifier'];
|
||||
$securitytoken = $_COOKIE['securitytoken'];
|
||||
|
||||
$statement = $pdo->prepare("SELECT * FROM securitytokens WHERE identifier = :identifier");
|
||||
$result = $statement->execute(array('identifier' => $identifier));
|
||||
$securitytoken_row = $statement->fetch();
|
||||
echo $securitytoken_row['securitytoken'];
|
||||
echo "<br>";
|
||||
echo sha1($securitytoken);
|
||||
*/
|
||||
?>
|
||||
<h1>Administration</h1>
|
||||
|
||||
Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich!<br>
|
||||
|
||||
<!--
|
||||
<p>Hier finden Sie die weiteren Bearbeitungsschritte:<br><br></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="anfragen.php" role="button">Bearbeitung der Anfragen</a>  
|
||||
<a class="btn btn-primary btn-lg" role="button" href="anfragen.php">Anfragen</a></p>
|
||||
<br>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="../zeiterfassung">Zeiterfassung</a></p>
|
||||
<br>
|
||||
<p><a class="btn btn-primary btn-lg" href="impfadmin.php" role="button">Impf-Administration</a>   
|
||||
<a class="btn btn-primary btn-lg" role="button" href="impfadmin.php">Impfung</a>   
|
||||
<a class="btn btn-primary btn-lg" role="button" href="togoadmin.php">togo-Impfung</a></p>
|
||||
<br>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="webseitenadmin.php">Webseiteninhalt ändern</a></p>
|
||||
<br><br><br>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="settings.php">Einstellungen</a></p>
|
||||
<p><a class="btn btn-primary btn-lg" role="button" href="logout.php">Logout</a></p>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
echo '<h4>Welche Aktion möchtest du durchführen?</h4>
|
||||
<table width=100%><tr><td width=40%>
|
||||
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=1>
|
||||
<input type=submit class="btn btn-primary btn-lg" value="Formular-Anfragen bearbeiten">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=18>
|
||||
<input type=submit class="btn btn-primary" value="Mailvorlagen anlegen">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=12>
|
||||
<input type=submit class="btn btn-primary" value="Formular Auswertung">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=16>
|
||||
<input type=submit class="btn btn-primary" value="Mailvorlagen anpassen">
|
||||
</form>
|
||||
</td></tr><br><br><br><br>
|
||||
<tr></tr>
|
||||
<tr><td><h3>Urlaub / Hinweis planen</h3></td><td></td></tr>
|
||||
<tr><td>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=4>
|
||||
<input type=submit class="btn btn-primary btn-lg" value="Urlaub eintragen">
|
||||
</form>
|
||||
</td></tr>
|
||||
<tr><td><br><br>
|
||||
<form action="'. $_SERVER["PHP_SELF"] .'" method=POST>
|
||||
<input type=hidden name=aktion value=6>
|
||||
<input type=submit class="btn btn-primary" value="Notfallsprechstunde eintragen">
|
||||
</form>
|
||||
</tr>
|
||||
</table>
|
||||
<br><br>
|
||||
';
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
+46
-46
@@ -1,47 +1,47 @@
|
||||
var http = createRequestObject();
|
||||
var objectId = '';
|
||||
|
||||
|
||||
function createRequestObject(htmlObjectId){
|
||||
var obj;
|
||||
var browser = navigator.appName;
|
||||
|
||||
objectId = htmlObjectId;
|
||||
|
||||
if(browser == "Microsoft Internet Explorer"){
|
||||
obj = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
else{
|
||||
obj = new XMLHttpRequest();
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
function sendReq(serverFileName, variableNames, variableValues) {
|
||||
var paramString = '';
|
||||
|
||||
variableNames = variableNames.split(',');
|
||||
variableValues = variableValues.split(',');
|
||||
|
||||
for(i=0; i<variableNames.length; i++) {
|
||||
paramString += variableNames[i]+'='+variableValues[i]+'&';
|
||||
}
|
||||
paramString = paramString.substring(0, (paramString.length-1));
|
||||
|
||||
if (paramString.length == 0) {
|
||||
http.open('get', serverFileName);
|
||||
}
|
||||
else {
|
||||
http.open('get', serverFileName+'?'+paramString);
|
||||
}
|
||||
http.onreadystatechange = handleResponse;
|
||||
http.send(null);
|
||||
}
|
||||
|
||||
function handleResponse() {
|
||||
|
||||
if(http.readyState == 4){
|
||||
responseText = http.responseText;
|
||||
document.getElementById(objectId).innerHTML = responseText;
|
||||
}
|
||||
var http = createRequestObject();
|
||||
var objectId = '';
|
||||
|
||||
|
||||
function createRequestObject(htmlObjectId){
|
||||
var obj;
|
||||
var browser = navigator.appName;
|
||||
|
||||
objectId = htmlObjectId;
|
||||
|
||||
if(browser == "Microsoft Internet Explorer"){
|
||||
obj = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
else{
|
||||
obj = new XMLHttpRequest();
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
function sendReq(serverFileName, variableNames, variableValues) {
|
||||
var paramString = '';
|
||||
|
||||
variableNames = variableNames.split(',');
|
||||
variableValues = variableValues.split(',');
|
||||
|
||||
for(i=0; i<variableNames.length; i++) {
|
||||
paramString += variableNames[i]+'='+variableValues[i]+'&';
|
||||
}
|
||||
paramString = paramString.substring(0, (paramString.length-1));
|
||||
|
||||
if (paramString.length == 0) {
|
||||
http.open('get', serverFileName);
|
||||
}
|
||||
else {
|
||||
http.open('get', serverFileName+'?'+paramString);
|
||||
}
|
||||
http.onreadystatechange = handleResponse;
|
||||
http.send(null);
|
||||
}
|
||||
|
||||
function handleResponse() {
|
||||
|
||||
if(http.readyState == 4){
|
||||
responseText = http.responseText;
|
||||
document.getElementById(objectId).innerHTML = responseText;
|
||||
}
|
||||
}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+45
-45
@@ -1,46 +1,46 @@
|
||||
|
||||
$(function() {
|
||||
$("#user_input").autocomplete({
|
||||
source: "inc/suchepatient.php",
|
||||
minLength: 3,
|
||||
select: function( event, ui ) {
|
||||
event.preventDefault();
|
||||
$("#userid_input").val(ui.item.id);
|
||||
$("#user_input").val(ui.item.value);
|
||||
$("#formbenutzersuche").submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function behandelt(str) {
|
||||
|
||||
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/behandelt.php',
|
||||
data: ({
|
||||
terminid: str
|
||||
})
|
||||
}).responseText;
|
||||
document.getElementById(str).style.display = 'none';
|
||||
//window.location.reload(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function submitForm(sub) {
|
||||
e.preventDefault();
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'impfadmin.php',
|
||||
data: ({
|
||||
aktion: 4,
|
||||
searchdate: sub
|
||||
})
|
||||
}).responseText;
|
||||
//window.location.reload(false);
|
||||
document.body.innerHTML = result;
|
||||
|
||||
$(function() {
|
||||
$("#user_input").autocomplete({
|
||||
source: "inc/suchepatient.php",
|
||||
minLength: 3,
|
||||
select: function( event, ui ) {
|
||||
event.preventDefault();
|
||||
$("#userid_input").val(ui.item.id);
|
||||
$("#user_input").val(ui.item.value);
|
||||
$("#formbenutzersuche").submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function behandelt(str) {
|
||||
|
||||
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/behandelt.php',
|
||||
data: ({
|
||||
terminid: str
|
||||
})
|
||||
}).responseText;
|
||||
document.getElementById(str).style.display = 'none';
|
||||
//window.location.reload(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function submitForm(sub) {
|
||||
e.preventDefault();
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'impfadmin.php',
|
||||
data: ({
|
||||
aktion: 4,
|
||||
searchdate: sub
|
||||
})
|
||||
}).responseText;
|
||||
//window.location.reload(false);
|
||||
document.body.innerHTML = result;
|
||||
}
|
||||
+110
-110
@@ -1,111 +1,111 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_admin_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
echo '<div class="container main-container">';
|
||||
|
||||
function build_calendar($month, $year) {
|
||||
$daysOfWeek = array('M','T','W','T','F','S','S');
|
||||
$firstDayOfMonth = mktime(0,0,0,$month,1,$year);
|
||||
$numberDays = date('t',$firstDayOfMonth);
|
||||
$dateComponents = getdate($firstDayOfMonth);
|
||||
$monthName = $dateComponents['month'];
|
||||
$dayOfWeek = $dateComponents['wday'] -1;
|
||||
$calendar = "<table class='calendar table table-condensed table-bordered' >";
|
||||
$calendar .= "<caption><h3>$monthName $year</h3></caption>";
|
||||
$calendar .= "<tr>";
|
||||
foreach($daysOfWeek as $day) {
|
||||
$calendar .= "<th class='header'>$day</th>";
|
||||
}
|
||||
$currentDay = 1;
|
||||
$calendar .= "</tr><tr>";
|
||||
if ($dayOfWeek > 0) {
|
||||
$calendar .= "<td colspan='$dayOfWeek'> </td>";
|
||||
}
|
||||
$month = str_pad($month, 2, "0", STR_PAD_LEFT);
|
||||
while($currentDay <= $numberDays){
|
||||
if($dayOfWeek == 7){
|
||||
$dayOfWeek = 0;
|
||||
$calendar .= "</tr><tr>";
|
||||
}
|
||||
$currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
|
||||
$date = "$year-$month-$currentDayRel";
|
||||
|
||||
// Is this today?
|
||||
if(date('Y-m-d') == $date) {
|
||||
$calendar .= "<td class='day success' rel='$date' onClick='submitForm('".$date ."')'><b>$currentDay</b>";
|
||||
|
||||
} else {
|
||||
$calendar .= "<td class='day' rel='$date' onClick='submitForm(\"".$date ."\")'>$currentDay";
|
||||
|
||||
}
|
||||
$calendar .= "<form action='". $_SERVER['PHP_SELF'] . "' name='".$date ."' method=POST><input type=hidden name=searchdate value='". $date. "'><input type=hidden name=aktion value='4'></form>";
|
||||
$calendar .= AuswertungImpfungdailycalendar($date);
|
||||
$calendar .= "</td>";
|
||||
|
||||
$currentDay++;
|
||||
$dayOfWeek++;
|
||||
}
|
||||
if($dayOfWeek != 7){
|
||||
$remainingDays = 7 - $dayOfWeek;
|
||||
$calendar .= "<td colspan='$remainingDays'> </td>";
|
||||
}
|
||||
$calendar .= "</tr>";
|
||||
$calendar .= "</table>";
|
||||
return $calendar;
|
||||
}
|
||||
|
||||
$calendar = build_calendar(7, 2021);
|
||||
|
||||
//$calendar = '<div style="width:200px">' . $calendar . '</div>';
|
||||
|
||||
$calendar .= '<style type="text/css">table tbody tr td, table tbody tr th { text-align: center; }</style>';
|
||||
|
||||
|
||||
$calendar .= '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>';
|
||||
$calendar .= "<script>function submitForm(sub) {
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'impfadmin.php',
|
||||
data: ({
|
||||
aktion: 4,
|
||||
searchdate: sub
|
||||
})
|
||||
}).responseText;
|
||||
//window.location.reload(false);
|
||||
document.body.innerHTML = result;
|
||||
}</script>";
|
||||
|
||||
/*
|
||||
$calendar .= "<script>function submitForm(sub) {
|
||||
// Form fields, see IDs above
|
||||
const params = {
|
||||
aktion: 4
|
||||
}
|
||||
|
||||
const http = new XMLHttpRequest()
|
||||
http.open('POST', 'impfadmin.php')
|
||||
http.setRequestHeader('Content-type', 'application/json')
|
||||
http.send(JSON.stringify(params)) // Make sure to stringify
|
||||
http.onload = function() {
|
||||
// Do whatever with response
|
||||
//alert(sub)
|
||||
document.body.innerHTML = http.responseText;
|
||||
}
|
||||
}</script>";
|
||||
*/
|
||||
print $calendar;
|
||||
|
||||
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_admin_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
echo '<div class="container main-container">';
|
||||
|
||||
function build_calendar($month, $year) {
|
||||
$daysOfWeek = array('M','T','W','T','F','S','S');
|
||||
$firstDayOfMonth = mktime(0,0,0,$month,1,$year);
|
||||
$numberDays = date('t',$firstDayOfMonth);
|
||||
$dateComponents = getdate($firstDayOfMonth);
|
||||
$monthName = $dateComponents['month'];
|
||||
$dayOfWeek = $dateComponents['wday'] -1;
|
||||
$calendar = "<table class='calendar table table-condensed table-bordered' >";
|
||||
$calendar .= "<caption><h3>$monthName $year</h3></caption>";
|
||||
$calendar .= "<tr>";
|
||||
foreach($daysOfWeek as $day) {
|
||||
$calendar .= "<th class='header'>$day</th>";
|
||||
}
|
||||
$currentDay = 1;
|
||||
$calendar .= "</tr><tr>";
|
||||
if ($dayOfWeek > 0) {
|
||||
$calendar .= "<td colspan='$dayOfWeek'> </td>";
|
||||
}
|
||||
$month = str_pad($month, 2, "0", STR_PAD_LEFT);
|
||||
while($currentDay <= $numberDays){
|
||||
if($dayOfWeek == 7){
|
||||
$dayOfWeek = 0;
|
||||
$calendar .= "</tr><tr>";
|
||||
}
|
||||
$currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
|
||||
$date = "$year-$month-$currentDayRel";
|
||||
|
||||
// Is this today?
|
||||
if(date('Y-m-d') == $date) {
|
||||
$calendar .= "<td class='day success' rel='$date' onClick='submitForm('".$date ."')'><b>$currentDay</b>";
|
||||
|
||||
} else {
|
||||
$calendar .= "<td class='day' rel='$date' onClick='submitForm(\"".$date ."\")'>$currentDay";
|
||||
|
||||
}
|
||||
$calendar .= "<form action='". $_SERVER['PHP_SELF'] . "' name='".$date ."' method=POST><input type=hidden name=searchdate value='". $date. "'><input type=hidden name=aktion value='4'></form>";
|
||||
$calendar .= AuswertungImpfungdailycalendar($date);
|
||||
$calendar .= "</td>";
|
||||
|
||||
$currentDay++;
|
||||
$dayOfWeek++;
|
||||
}
|
||||
if($dayOfWeek != 7){
|
||||
$remainingDays = 7 - $dayOfWeek;
|
||||
$calendar .= "<td colspan='$remainingDays'> </td>";
|
||||
}
|
||||
$calendar .= "</tr>";
|
||||
$calendar .= "</table>";
|
||||
return $calendar;
|
||||
}
|
||||
|
||||
$calendar = build_calendar(7, 2021);
|
||||
|
||||
//$calendar = '<div style="width:200px">' . $calendar . '</div>';
|
||||
|
||||
$calendar .= '<style type="text/css">table tbody tr td, table tbody tr th { text-align: center; }</style>';
|
||||
|
||||
|
||||
$calendar .= '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>';
|
||||
$calendar .= "<script>function submitForm(sub) {
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'impfadmin.php',
|
||||
data: ({
|
||||
aktion: 4,
|
||||
searchdate: sub
|
||||
})
|
||||
}).responseText;
|
||||
//window.location.reload(false);
|
||||
document.body.innerHTML = result;
|
||||
}</script>";
|
||||
|
||||
/*
|
||||
$calendar .= "<script>function submitForm(sub) {
|
||||
// Form fields, see IDs above
|
||||
const params = {
|
||||
aktion: 4
|
||||
}
|
||||
|
||||
const http = new XMLHttpRequest()
|
||||
http.open('POST', 'impfadmin.php')
|
||||
http.setRequestHeader('Content-type', 'application/json')
|
||||
http.send(JSON.stringify(params)) // Make sure to stringify
|
||||
http.onload = function() {
|
||||
// Do whatever with response
|
||||
//alert(sub)
|
||||
document.body.innerHTML = http.responseText;
|
||||
}
|
||||
}</script>";
|
||||
*/
|
||||
print $calendar;
|
||||
|
||||
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
+95
-95
@@ -1,96 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="favicon.png">
|
||||
|
||||
<title>Sticky Footer Navbar Template for Bootstrap</title>
|
||||
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Wrap all page content here -->
|
||||
<div id="wrap">
|
||||
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin page content -->
|
||||
<div class="container">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>PHP Calendar</h1>
|
||||
</div>
|
||||
|
||||
<?php print $calendar; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="container">
|
||||
<p class="text-muted">Place sticky footer content here.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
||||
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
|
||||
<!--
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.syphon/0.4.1/backbone.syphon.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.modelbinder/1.0.4/Backbone.ModelBinder.min.js"></script>
|
||||
-->
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="favicon.png">
|
||||
|
||||
<title>Sticky Footer Navbar Template for Bootstrap</title>
|
||||
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Wrap all page content here -->
|
||||
<div id="wrap">
|
||||
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin page content -->
|
||||
<div class="container">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>PHP Calendar</h1>
|
||||
</div>
|
||||
|
||||
<?php print $calendar; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="container">
|
||||
<p class="text-muted">Place sticky footer content here.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
||||
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
|
||||
<!--
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.syphon/0.4.1/backbone.syphon.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.modelbinder/1.0.4/Backbone.ModelBinder.min.js"></script>
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
+44
-44
@@ -1,45 +1,45 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/../inc/config.inc.php';
|
||||
require_once __DIR__ . '/../inc/functions.inc.php';
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
try {
|
||||
$templetid = $_POST['templetid'] ?? '';
|
||||
$anfrageid = (int)($_POST['anfrageid'] ?? 0);
|
||||
|
||||
if ($templetid === '' || $anfrageid <= 0) {
|
||||
throw new RuntimeException('Fehlende Parameter');
|
||||
}
|
||||
|
||||
// URL aus config-Tabelle holen (sicher, unabhängig von globalen Variablen)
|
||||
$stmt = $pdo->query("SELECT anfragebestaetigung FROM config LIMIT 1");
|
||||
$anfragebestaetigung = (string)$stmt->fetchColumn();
|
||||
|
||||
if ($anfragebestaetigung === '') {
|
||||
throw new RuntimeException('Config anfragebestaetigung ist leer');
|
||||
}
|
||||
|
||||
$result = renderTemplateForAnfrage(
|
||||
$pdo,
|
||||
$anfrageid,
|
||||
$templetid,
|
||||
$anfragebestaetigung, // aus config
|
||||
[
|
||||
// optional:
|
||||
// '%TERMINZEITVORGABE%' => $Zeitanzeige,
|
||||
],
|
||||
false // CP1252 nur wenn nötig
|
||||
);
|
||||
|
||||
echo json_encode([
|
||||
'betreff' => $result['betreff'],
|
||||
'body' => $result['body']
|
||||
]);
|
||||
|
||||
} catch (Throwable $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'error' => $e->getMessage()
|
||||
]);
|
||||
<?php
|
||||
require_once __DIR__ . '/../inc/config.inc.php';
|
||||
require_once __DIR__ . '/../inc/functions.inc.php';
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
try {
|
||||
$templetid = $_POST['templetid'] ?? '';
|
||||
$anfrageid = (int)($_POST['anfrageid'] ?? 0);
|
||||
|
||||
if ($templetid === '' || $anfrageid <= 0) {
|
||||
throw new RuntimeException('Fehlende Parameter');
|
||||
}
|
||||
|
||||
// URL aus config-Tabelle holen (sicher, unabhängig von globalen Variablen)
|
||||
$stmt = $pdo->query("SELECT anfragebestaetigung FROM config LIMIT 1");
|
||||
$anfragebestaetigung = (string)$stmt->fetchColumn();
|
||||
|
||||
if ($anfragebestaetigung === '') {
|
||||
throw new RuntimeException('Config anfragebestaetigung ist leer');
|
||||
}
|
||||
|
||||
$result = renderTemplateForAnfrage(
|
||||
$pdo,
|
||||
$anfrageid,
|
||||
$templetid,
|
||||
$anfragebestaetigung, // aus config
|
||||
[
|
||||
// optional:
|
||||
// '%TERMINZEITVORGABE%' => $Zeitanzeige,
|
||||
],
|
||||
false // CP1252 nur wenn nötig
|
||||
);
|
||||
|
||||
echo json_encode([
|
||||
'betreff' => $result['betreff'],
|
||||
'body' => $result['body']
|
||||
]);
|
||||
|
||||
} catch (Throwable $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'error' => $e->getMessage()
|
||||
]);
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
<?php
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $betreff;
|
||||
|
||||
<?php
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $betreff;
|
||||
|
||||
?>
|
||||
+59
-59
@@ -1,60 +1,60 @@
|
||||
<?php
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
$sqlstring = "SELECT * FROM anfragen INNER JOIN user ON anfragen.personid = user.userid WHERE anfrageid ='" . $anfrageid . "'";
|
||||
$query = mysqli_query($con,$sqlstring);
|
||||
$rowtime = mysqli_fetch_assoc($query);
|
||||
$vorname = $rowtime["vorname"];
|
||||
$nachname = $rowtime["nachname"];
|
||||
$geburtstag = $rowtime["geburtstag"];
|
||||
$tele = $rowtime["tele"];
|
||||
$plz = $rowtime["plz"];
|
||||
$ort = $rowtime["ort"];
|
||||
$strasse = $rowtime["strasse"];
|
||||
$adresse = "$ort $plz, $stasse";
|
||||
$empfaenger = $rowtime["mail"];
|
||||
$hash = $rowtime["hash"];
|
||||
$timeid = $rowtime["timeid"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$anfragenlogin = $anfragebestaetigung . "?id=" . $hash ;
|
||||
|
||||
$nachricht = $rowtime["nachricht"];
|
||||
$medikamenteins = $rowtime["medikament1"];
|
||||
$medikamentzwei = $rowtime["medikament2"];
|
||||
$anforderungart = $rowtime["anforderungart"];
|
||||
|
||||
$sqlimpfstoffstring = "SELECT artname FROM anfrageart WHERE artid ='" . $anforderungart . "'";
|
||||
$queryimpfstoff = mysqli_query($con,$sqlimpfstoffstring);
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpfstoff);
|
||||
$rezeptart = $rowimpf["artname"];
|
||||
$body = str_replace("%BENUTZERVORNAME%", $vorname, $body);
|
||||
$body = str_replace("%BENUTZERNACHNAME%", $nachname, $body);
|
||||
$body = str_replace("%BENUTZERGEBURTSTAG%", $geburtstag, $body);
|
||||
$body = str_replace("%BENUTZERADRESSE%", $adresse, $body);
|
||||
$body = str_replace("%TERMINZEITVORGABE%", $Zeitanzeige, $body);
|
||||
$body = str_replace("%TERMINIMPFSTOFF%", $impfstofftext, $body);
|
||||
$body = str_replace("%TERMINLOGIN%", $terminlogin, $body);
|
||||
$body = str_replace("%WARTELISTELOGIN%", $wartelistelogin, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFSTOFF%", $impfstofftextwarte, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFANGEBOT%", $impfangebottext, $body);
|
||||
$body = str_replace("%REZEPTART%", $rezeptart, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMEREINS%", $medikamenteins, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMERZWEI%", $medikamentzwei, $body);
|
||||
$body = str_replace("%ANFRAGENACHRICHT%", $nachricht, $body);
|
||||
$body = str_replace("%ANFRAGENLOGIN%", $anfragenlogin, $body);
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $body;
|
||||
|
||||
<?php
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
$sqlstring = "SELECT * FROM anfragen INNER JOIN user ON anfragen.personid = user.userid WHERE anfrageid ='" . $anfrageid . "'";
|
||||
$query = mysqli_query($con,$sqlstring);
|
||||
$rowtime = mysqli_fetch_assoc($query);
|
||||
$vorname = $rowtime["vorname"];
|
||||
$nachname = $rowtime["nachname"];
|
||||
$geburtstag = $rowtime["geburtstag"];
|
||||
$tele = $rowtime["tele"];
|
||||
$plz = $rowtime["plz"];
|
||||
$ort = $rowtime["ort"];
|
||||
$strasse = $rowtime["strasse"];
|
||||
$adresse = "$ort $plz, $stasse";
|
||||
$empfaenger = $rowtime["mail"];
|
||||
$hash = $rowtime["hash"];
|
||||
$timeid = $rowtime["timeid"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$anfragenlogin = $anfragebestaetigung . "?id=" . $hash ;
|
||||
|
||||
$nachricht = $rowtime["nachricht"];
|
||||
$medikamenteins = $rowtime["medikament1"];
|
||||
$medikamentzwei = $rowtime["medikament2"];
|
||||
$anforderungart = $rowtime["anforderungart"];
|
||||
|
||||
$sqlimpfstoffstring = "SELECT artname FROM anfrageart WHERE artid ='" . $anforderungart . "'";
|
||||
$queryimpfstoff = mysqli_query($con,$sqlimpfstoffstring);
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpfstoff);
|
||||
$rezeptart = $rowimpf["artname"];
|
||||
$body = str_replace("%BENUTZERVORNAME%", $vorname, $body);
|
||||
$body = str_replace("%BENUTZERNACHNAME%", $nachname, $body);
|
||||
$body = str_replace("%BENUTZERGEBURTSTAG%", $geburtstag, $body);
|
||||
$body = str_replace("%BENUTZERADRESSE%", $adresse, $body);
|
||||
$body = str_replace("%TERMINZEITVORGABE%", $Zeitanzeige, $body);
|
||||
$body = str_replace("%TERMINIMPFSTOFF%", $impfstofftext, $body);
|
||||
$body = str_replace("%TERMINLOGIN%", $terminlogin, $body);
|
||||
$body = str_replace("%WARTELISTELOGIN%", $wartelistelogin, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFSTOFF%", $impfstofftextwarte, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFANGEBOT%", $impfangebottext, $body);
|
||||
$body = str_replace("%REZEPTART%", $rezeptart, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMEREINS%", $medikamenteins, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMERZWEI%", $medikamentzwei, $body);
|
||||
$body = str_replace("%ANFRAGENACHRICHT%", $nachricht, $body);
|
||||
$body = str_replace("%ANFRAGENLOGIN%", $anfragenlogin, $body);
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $body;
|
||||
|
||||
?>
|
||||
+5
-5
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
// Zeigt alle Informationen (Standardwert ist INFO_ALL)
|
||||
phpinfo();
|
||||
|
||||
<?php
|
||||
|
||||
// Zeigt alle Informationen (Standardwert ist INFO_ALL)
|
||||
phpinfo();
|
||||
|
||||
?>
|
||||
@@ -87,4 +87,4 @@
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
+856
-856
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,3 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/impfworkflow_warteliste.php';
|
||||
|
||||
|
||||
|
||||
+169
-169
@@ -1,169 +1,169 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// WICHTIG: Pfade aus /admin heraus korrekt auflösen
|
||||
require_once __DIR__ . "/../inc/config.inc.php";
|
||||
require_once __DIR__ . "/../inc/functions.inc.php";
|
||||
|
||||
// Login prüfen
|
||||
$user = check_admin_user();
|
||||
|
||||
include __DIR__ . "/templates/header.inc.php";
|
||||
|
||||
$user = check_admin_user();
|
||||
$internUserId = (int)$_SESSION['auth']['id'];
|
||||
|
||||
if (!$user) { echo "<div class='container main-container'><h3>Erst anmelden: <a href=login.php>Login</a></h3><br>";
|
||||
|
||||
include("templates/footer.inc.php");
|
||||
exit; }
|
||||
?>
|
||||
<script src="js/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
|
||||
<div class="container main-container">
|
||||
<?php
|
||||
|
||||
echo '<div style="float: right; width: 200px; ">';
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' id='formbenutzersuche' method='POST'>";
|
||||
echo '<input type="hidden" name="aktion" value="benutzersuche" />';
|
||||
echo '<input type="hidden" name="userid_input" id="userid_input" />';
|
||||
echo '<label>Benutzersuche Impfen:</label>
|
||||
<input type="text" id="user_input" name="skill_input" width="48"/>';
|
||||
echo "</form>";
|
||||
echo '</div>';
|
||||
|
||||
?>
|
||||
<h2>Administration - webseiteninhalt anpassen</h2>
|
||||
|
||||
Hallo <?php echo htmlspecialchars($user['vorname'] ?? '', ENT_QUOTES, 'UTF-8'); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich!<br><br>
|
||||
|
||||
<?php
|
||||
|
||||
$aktion = $_POST["aktion"] ?? null;
|
||||
$subaktion = $_POST["subaktion"] ?? null;
|
||||
|
||||
if (!check_worker()) {
|
||||
echo "Dieser Bereich ist nur für Bearbeiter freigeschaltet!<br><br><br>";
|
||||
} else {
|
||||
|
||||
// =========================
|
||||
// EDIT-MODUS
|
||||
// =========================
|
||||
if ($aktion === "edit") {
|
||||
|
||||
// ------- Speichern -------
|
||||
if ($subaktion === "save") {
|
||||
|
||||
$inhaltid = (int)($_POST["inhaltid"] ?? 0);
|
||||
$inhalt = $_POST["inhalt"] ?? "";
|
||||
$webseitentitel = $_POST["webseitentitel"] ?? "";
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE webseiteninhalt
|
||||
SET inhalt = :inhalt,
|
||||
webseitentitel = :webseitentitel
|
||||
WHERE inhaltid = :inhaltid
|
||||
");
|
||||
$stmt->execute([
|
||||
':inhalt' => $inhalt,
|
||||
':webseitentitel' => $webseitentitel,
|
||||
':inhaltid' => $inhaltid,
|
||||
]);
|
||||
|
||||
echo "<div class='infofenster'><h4>Speicherung der Vorlage erfolgreich!</h4></div>";
|
||||
} catch (Throwable $e) {
|
||||
echo "<div class='infofenster'><h4>Fehler bei der Speicherung der Vorlage!</h4></div>";
|
||||
// Optional debug:
|
||||
// echo "<pre>" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</pre>";
|
||||
}
|
||||
}
|
||||
|
||||
// ------- Vorlage laden -------
|
||||
$inhaltid = (int)($_POST["inhaltid"] ?? 0);
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT webseitentitel, inhalt
|
||||
FROM webseiteninhalt
|
||||
WHERE inhaltid = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$inhaltid]);
|
||||
$rowconfig = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$rowconfig) {
|
||||
echo "<div class='infofenster'><h4>Vorlage nicht gefunden.</h4></div>";
|
||||
} else {
|
||||
$webseitentitel = $rowconfig["webseitentitel"] ?? "";
|
||||
$inhalt = $rowconfig["inhalt"] ?? "";
|
||||
|
||||
echo "<h1>Webseiteninhalt bearbeiten</h1><br>";
|
||||
echo "<h4>Vorlage: " . htmlspecialchars($webseitentitel, ENT_QUOTES, 'UTF-8') . "</h4>";
|
||||
echo "<br><br>";
|
||||
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' method='POST'>";
|
||||
echo "<input name='webseitentitel' type='hidden' value='" . htmlspecialchars($webseitentitel, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
echo "<div id='my-editor'></div>";
|
||||
// Inhalt ist HTML -> bewusst NICHT escapen, sonst zerstörst du HTML im Editor
|
||||
echo "<textarea height='200' name='inhalt' id='trumbowyg-demo'>" . $inhalt . "</textarea>";
|
||||
echo "<input name='aktion' type='hidden' value='edit'>";
|
||||
echo "<input name='subaktion' type='hidden' value='save'>";
|
||||
echo "<input name='inhaltid' type='hidden' value='" . (int)$inhaltid . "'><br><br>";
|
||||
echo "<input type='submit' value='Speichern'><br>";
|
||||
echo "</form>";
|
||||
|
||||
echo "<br><br>";
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' method='POST'>";
|
||||
echo "<input type='submit' class='btn btn-primary btn-sm' value='zurück'>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
} catch (Throwable $e) {
|
||||
echo "<div class='infofenster'><h4>Fehler beim Laden der Vorlage.</h4></div>";
|
||||
// Optional debug:
|
||||
// echo "<pre>" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</pre>";
|
||||
}
|
||||
|
||||
// =========================
|
||||
// LISTE (Auswahl)
|
||||
// =========================
|
||||
} else {
|
||||
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' method='POST'>";
|
||||
echo "Wählen Sie die zu bearbeitenden Webseiteninhalt aus:<br><br>";
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT webseitentitel, inhaltid
|
||||
FROM webseiteninhalt
|
||||
ORDER BY webseitentitel
|
||||
");
|
||||
$stmt->execute();
|
||||
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo "<input name='aktion' type='hidden' value='edit'>";
|
||||
echo "<select name='inhaltid' class='form-control'>";
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$id = (int)$row["inhaltid"];
|
||||
$titel = (string)($row["webseitentitel"] ?? "");
|
||||
echo "<option value='" . $id . "'>" . htmlspecialchars($titel, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') . "</option>";
|
||||
}
|
||||
|
||||
echo "</select><br><br>";
|
||||
echo "<input type='submit' value='Bearbeiten' class='btn btn-primary btn'><br><br><br>";
|
||||
echo "</form>";
|
||||
|
||||
} catch (Throwable $e) {
|
||||
echo "<div class='infofenster'><h4>Fehler beim Laden der Liste.</h4></div>";
|
||||
// Optional debug:
|
||||
// echo "<pre>" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</pre>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . "/templates/footer.inc.php";
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// WICHTIG: Pfade aus /admin heraus korrekt auflösen
|
||||
require_once __DIR__ . "/../inc/config.inc.php";
|
||||
require_once __DIR__ . "/../inc/functions.inc.php";
|
||||
|
||||
// Login prüfen
|
||||
$user = check_admin_user();
|
||||
|
||||
include __DIR__ . "/templates/header.inc.php";
|
||||
|
||||
$user = check_admin_user();
|
||||
$internUserId = (int)$_SESSION['auth']['id'];
|
||||
|
||||
if (!$user) { echo "<div class='container main-container'><h3>Erst anmelden: <a href=login.php>Login</a></h3><br>";
|
||||
|
||||
include("templates/footer.inc.php");
|
||||
exit; }
|
||||
?>
|
||||
<script src="js/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
|
||||
<div class="container main-container">
|
||||
<?php
|
||||
|
||||
echo '<div style="float: right; width: 200px; ">';
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' id='formbenutzersuche' method='POST'>";
|
||||
echo '<input type="hidden" name="aktion" value="benutzersuche" />';
|
||||
echo '<input type="hidden" name="userid_input" id="userid_input" />';
|
||||
echo '<label>Benutzersuche Impfen:</label>
|
||||
<input type="text" id="user_input" name="skill_input" width="48"/>';
|
||||
echo "</form>";
|
||||
echo '</div>';
|
||||
|
||||
?>
|
||||
<h2>Administration - webseiteninhalt anpassen</h2>
|
||||
|
||||
Hallo <?php echo htmlspecialchars($user['vorname'] ?? '', ENT_QUOTES, 'UTF-8'); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich!<br><br>
|
||||
|
||||
<?php
|
||||
|
||||
$aktion = $_POST["aktion"] ?? null;
|
||||
$subaktion = $_POST["subaktion"] ?? null;
|
||||
|
||||
if (!check_worker()) {
|
||||
echo "Dieser Bereich ist nur für Bearbeiter freigeschaltet!<br><br><br>";
|
||||
} else {
|
||||
|
||||
// =========================
|
||||
// EDIT-MODUS
|
||||
// =========================
|
||||
if ($aktion === "edit") {
|
||||
|
||||
// ------- Speichern -------
|
||||
if ($subaktion === "save") {
|
||||
|
||||
$inhaltid = (int)($_POST["inhaltid"] ?? 0);
|
||||
$inhalt = $_POST["inhalt"] ?? "";
|
||||
$webseitentitel = $_POST["webseitentitel"] ?? "";
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE webseiteninhalt
|
||||
SET inhalt = :inhalt,
|
||||
webseitentitel = :webseitentitel
|
||||
WHERE inhaltid = :inhaltid
|
||||
");
|
||||
$stmt->execute([
|
||||
':inhalt' => $inhalt,
|
||||
':webseitentitel' => $webseitentitel,
|
||||
':inhaltid' => $inhaltid,
|
||||
]);
|
||||
|
||||
echo "<div class='infofenster'><h4>Speicherung der Vorlage erfolgreich!</h4></div>";
|
||||
} catch (Throwable $e) {
|
||||
echo "<div class='infofenster'><h4>Fehler bei der Speicherung der Vorlage!</h4></div>";
|
||||
// Optional debug:
|
||||
// echo "<pre>" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</pre>";
|
||||
}
|
||||
}
|
||||
|
||||
// ------- Vorlage laden -------
|
||||
$inhaltid = (int)($_POST["inhaltid"] ?? 0);
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT webseitentitel, inhalt
|
||||
FROM webseiteninhalt
|
||||
WHERE inhaltid = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$inhaltid]);
|
||||
$rowconfig = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$rowconfig) {
|
||||
echo "<div class='infofenster'><h4>Vorlage nicht gefunden.</h4></div>";
|
||||
} else {
|
||||
$webseitentitel = $rowconfig["webseitentitel"] ?? "";
|
||||
$inhalt = $rowconfig["inhalt"] ?? "";
|
||||
|
||||
echo "<h1>Webseiteninhalt bearbeiten</h1><br>";
|
||||
echo "<h4>Vorlage: " . htmlspecialchars($webseitentitel, ENT_QUOTES, 'UTF-8') . "</h4>";
|
||||
echo "<br><br>";
|
||||
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' method='POST'>";
|
||||
echo "<input name='webseitentitel' type='hidden' value='" . htmlspecialchars($webseitentitel, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
echo "<div id='my-editor'></div>";
|
||||
// Inhalt ist HTML -> bewusst NICHT escapen, sonst zerstörst du HTML im Editor
|
||||
echo "<textarea height='200' name='inhalt' id='trumbowyg-demo'>" . $inhalt . "</textarea>";
|
||||
echo "<input name='aktion' type='hidden' value='edit'>";
|
||||
echo "<input name='subaktion' type='hidden' value='save'>";
|
||||
echo "<input name='inhaltid' type='hidden' value='" . (int)$inhaltid . "'><br><br>";
|
||||
echo "<input type='submit' value='Speichern'><br>";
|
||||
echo "</form>";
|
||||
|
||||
echo "<br><br>";
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' method='POST'>";
|
||||
echo "<input type='submit' class='btn btn-primary btn-sm' value='zurück'>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
} catch (Throwable $e) {
|
||||
echo "<div class='infofenster'><h4>Fehler beim Laden der Vorlage.</h4></div>";
|
||||
// Optional debug:
|
||||
// echo "<pre>" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</pre>";
|
||||
}
|
||||
|
||||
// =========================
|
||||
// LISTE (Auswahl)
|
||||
// =========================
|
||||
} else {
|
||||
|
||||
echo "<form action='" . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . "' method='POST'>";
|
||||
echo "Wählen Sie die zu bearbeitenden Webseiteninhalt aus:<br><br>";
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT webseitentitel, inhaltid
|
||||
FROM webseiteninhalt
|
||||
ORDER BY webseitentitel
|
||||
");
|
||||
$stmt->execute();
|
||||
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo "<input name='aktion' type='hidden' value='edit'>";
|
||||
echo "<select name='inhaltid' class='form-control'>";
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$id = (int)$row["inhaltid"];
|
||||
$titel = (string)($row["webseitentitel"] ?? "");
|
||||
echo "<option value='" . $id . "'>" . htmlspecialchars($titel, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') . "</option>";
|
||||
}
|
||||
|
||||
echo "</select><br><br>";
|
||||
echo "<input type='submit' value='Bearbeiten' class='btn btn-primary btn'><br><br><br>";
|
||||
echo "</form>";
|
||||
|
||||
} catch (Throwable $e) {
|
||||
echo "<div class='infofenster'><h4>Fehler beim Laden der Liste.</h4></div>";
|
||||
// Optional debug:
|
||||
// echo "<pre>" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</pre>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . "/templates/footer.inc.php";
|
||||
?>
|
||||
</div>
|
||||
|
||||
+335
-335
@@ -1,336 +1,336 @@
|
||||
<!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 - Anfragenbestätigung</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>Anfrage einsehen</h2>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
if(isset($_POST["id"]) || isset($_GET["id"])){
|
||||
|
||||
$id = $_POST["id"] ?? ($_GET["id"] ?? null);
|
||||
|
||||
if (!$id) {
|
||||
echo "<h4>Leider konnten wir Ihre Anforderung nicht verarbeiten.</h4><br>Bitte überprüfen Sie den aufgerufenden Link.<br><br>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Anfrage + Person laden (NEUES SCHEMA)
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
a.anfrageid,
|
||||
a.checked,
|
||||
a.nachricht,
|
||||
a.medikament1,
|
||||
a.medikament2,
|
||||
a.anforderungart,
|
||||
a.ordnungsid,
|
||||
p.vorname,
|
||||
p.nachname,
|
||||
p.email,
|
||||
p.tele,
|
||||
p.geburtstag
|
||||
FROM anfragen a
|
||||
INNER JOIN persons p ON a.requester_person_id = p.person_id
|
||||
WHERE a.hash = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$id]);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$row) {
|
||||
echo "<h4>Leider konnten wir Ihre Anforderung nicht verarbeiten.</h4><br>Bitte überprüfen Sie den aufgerufenden Link.<br><br>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Variablen aus DB
|
||||
$anfrageid = (int)$row["anfrageid"];
|
||||
$checked = (int)$row["checked"];
|
||||
|
||||
$vorname = $row["vorname"] ?? "";
|
||||
$nachname = $row["nachname"] ?? "";
|
||||
$mail = $row["email"] ?? "";
|
||||
$tel = $row["tele"] ?? "";
|
||||
$geburtstag = $row["geburtstag"] ?? null;
|
||||
|
||||
$userausgabe = trim($vorname . " " . $nachname);
|
||||
|
||||
$nachricht = $row["nachricht"] ?? "";
|
||||
$medikamenteins = $row["medikament1"] ?? "";
|
||||
$medikamentzwei = $row["medikament2"] ?? "";
|
||||
|
||||
$anforderungart = $row["anforderungart"] ?? null;
|
||||
$ordnungsid = $row["ordnungsid"] ?? null;
|
||||
|
||||
// Ordnungsstring wie bisher (deine Funktion)
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
|
||||
// Rezeptart-Name holen
|
||||
$rezeptart = null;
|
||||
if (!empty($anforderungart)) {
|
||||
$stmtArt = $pdo->prepare("SELECT artname FROM anfrageart WHERE artid = ? LIMIT 1");
|
||||
$stmtArt->execute([$anforderungart]);
|
||||
$rezeptart = $stmtArt->fetchColumn() ?: null;
|
||||
}
|
||||
|
||||
// Ausgabe sicher escapen
|
||||
$e = fn($s) => htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8');
|
||||
|
||||
if ($checked === 0) {
|
||||
|
||||
echo "<h4>Sie haben Ihre Anfrage aktuell noch nicht bestätigt!<br><br>";
|
||||
echo "Sie haben die folgenden Anfragedaten:<br><br>";
|
||||
echo "<h4>Name: " . $e($userausgabe) . "</h4>";
|
||||
echo "<h4>Art: " . $e($ordnungsstring) . " - " . $e($rezeptart) . "</h4>";
|
||||
|
||||
if (!empty($medikamenteins)) {
|
||||
echo "<h4>Medikament1: " . $e($medikamenteins) . "</h4>";
|
||||
}
|
||||
if (!empty($medikamentzwei)) {
|
||||
echo "<h4>Medikament2: " . $e($medikamentzwei) . "</h4>";
|
||||
}
|
||||
if (!empty($nachricht)) {
|
||||
echo "<h4>Nachricht: " . nl2br(strip_tags($nachricht, '<br><b><strong><i><u><p><ul><li>')) . "</h4>";
|
||||
}
|
||||
|
||||
echo "<form action='" . $e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo '<input type="hidden" name="anfrageid" value="' . $e($anfrageid) . '" />';
|
||||
echo '<input type="hidden" name="aktion" value="2" />';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage bestätigen!" />';
|
||||
echo "</form>";
|
||||
|
||||
echo "<form action='" . $e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo '<input type="hidden" name="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="anfrageid" value="' . $e($anfrageid) . '" />';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage löschen!" />';
|
||||
echo "</form>";
|
||||
|
||||
} elseif ($checked === 1) {
|
||||
|
||||
echo "<h4>Sie haben Ihre Anforderung bestätigt!<br><b>Vielen Dank!</b><br>";
|
||||
echo "Sie haben die folgenden Anfragedaten:<br><br>";
|
||||
echo "<h4>Name: " . $e($userausgabe) . "</h4>";
|
||||
echo "<h4>Art: " . $e($rezeptart) . "</h4>";
|
||||
|
||||
if (!empty($medikamenteins)) {
|
||||
echo "<h4>Medikament1: " . $e($medikamenteins) . "</h4>";
|
||||
}
|
||||
if (!empty($medikamentzwei)) {
|
||||
echo "<h4>Medikament2: " . $e($medikamentzwei) . "</h4>";
|
||||
}
|
||||
if (!empty($nachricht)) {
|
||||
echo "<h4>Nachricht: " . nl2br(strip_tags($nachricht, '<br><b><strong><i><u><p><ul><li>')) . "</h4>";
|
||||
}
|
||||
|
||||
echo "Hat sich Ihre Anfrage erledigt, tragen Sie sich bitte aus, Ihre Anfrage wird gelöscht:<br>";
|
||||
echo "<form action='" . $e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo '<input type="hidden" name="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="anfrageid" value="' . $e($anfrageid) . '" />';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage absagen!" />';
|
||||
echo "</form>";
|
||||
|
||||
} elseif ($checked === 2) {
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde erfolgreich gelöscht!</h4><br>Wünschen Sie eine neue Anfrage, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
} elseif ($checked === 3) {
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde vom Praxisteam storniert!</h4><br>Wünschen Sie eine neue Anfrage, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
} elseif ($checked === 10) {
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde vom Praxisteam beantwortet!</h4><br>Prüfen Sie Ihre E-Mails auf die Antwort.<br>";
|
||||
|
||||
} else {
|
||||
echo "<h4>Status unbekannt.</h4>";
|
||||
}
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 1){
|
||||
echo "Wollen Sie wirklich Ihren Anfrage löschen?<br>Dieses ist nicht rückgängig zu machen!<br>Dann bestätigen Sie die Abmeldung:<br>";
|
||||
echo "Bitte bestätigen!";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="3" />';
|
||||
echo '<input type="hidden" name="anfrageid" id="anfrageid" value="'. $_POST["anfrageid"] .'" /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage löschen!" />';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 2){
|
||||
|
||||
$anfrageid = (int)($_POST["anfrageid"] ?? 0);
|
||||
if ($anfrageid <= 0) {
|
||||
die("<h4>Ungültige Anfrage-ID.</h4>");
|
||||
}
|
||||
|
||||
// 1) Prüfen/Updaten in einem Schritt: nur bestätigen, wenn noch nicht bestätigt
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE anfragen
|
||||
SET checked = 1
|
||||
WHERE anfrageid = ?
|
||||
AND checked < 1
|
||||
");
|
||||
$stmt->execute([$anfrageid]);
|
||||
|
||||
if ($stmt->rowCount() === 0) {
|
||||
// Es wurde nichts geändert -> war schon bestätigt oder existiert nicht
|
||||
// Optional: prüfen ob Anfrage existiert
|
||||
$stmt = $pdo->prepare("SELECT checked FROM anfragen WHERE anfrageid = ? LIMIT 1");
|
||||
$stmt->execute([$anfrageid]);
|
||||
$checked = $stmt->fetchColumn();
|
||||
|
||||
if ($checked === false) {
|
||||
echo "<h4>Anfrage nicht gefunden.</h4>";
|
||||
} else {
|
||||
echo "<h4>Sie haben Ihre Anfrage schon bestätigt.</h4>";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde erfolgreich bestätigt!</h4><br>";
|
||||
|
||||
|
||||
// 2) Anfrage + Person laden (NEUES SCHEMA)
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
ordnungsid
|
||||
FROM anfragen a
|
||||
WHERE anfrageid = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$anfrageid]);
|
||||
$ordnungsid = $stmt->fetchColumn();
|
||||
echo "Sie erhalten gleich eine schriftliche Bestätigung per E-Mail<br><br>";
|
||||
if (!$row) {
|
||||
echo "<h4>Fehler: Anfrage wurde bestätigt, aber konnte nicht geladen werden.</h4>";
|
||||
exit;
|
||||
}
|
||||
|
||||
$ordnungsid = $row["ordnungsid"] ?? null;
|
||||
|
||||
if($ordnungsid == 1){
|
||||
// Anfragen allgemein Bestätigung
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, "19");
|
||||
}else if($ordnungsid == 2 || $ordnungsid == 3){
|
||||
// Anfragen Rezept Bestätigung
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, "26");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 3){
|
||||
$anfrageid = (int)($_POST["anfrageid"] ?? 0);
|
||||
if ($anfrageid <= 0) {
|
||||
die("<h4>Ungültige Anfrage-ID.</h4>");
|
||||
}
|
||||
|
||||
/*
|
||||
1) Anfrage auf "gelöscht" setzen,
|
||||
aber nur wenn noch nicht gelöscht (checked < 2)
|
||||
*/
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE anfragen
|
||||
SET checked = 2
|
||||
WHERE anfrageid = ?
|
||||
AND checked < 2
|
||||
");
|
||||
$stmt->execute([$anfrageid]);
|
||||
|
||||
if ($stmt->rowCount() === 0) {
|
||||
// Entweder existiert nicht oder war schon gelöscht
|
||||
$stmt = $pdo->prepare("SELECT checked FROM anfragen WHERE anfrageid = ? LIMIT 1");
|
||||
$stmt->execute([$anfrageid]);
|
||||
$checked = $stmt->fetchColumn();
|
||||
|
||||
if ($checked === false) {
|
||||
echo "<h4>Anfrage nicht gefunden.</h4>";
|
||||
} else {
|
||||
echo "<h4>Sie haben Ihre Anfrage schon gelöscht.</h4>";
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde erfolgreich gelöscht!</h4><br>";
|
||||
echo "Sie erhalten gleich eine schriftliche Bestätigung per E-Mail<br>";
|
||||
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, "49");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
echo "Leider konnten wir Ihre ID-Nummer nicht erkennen.<br>Bitte tragen Sie diese in dem folgendem Feld ein und klicken Sie auf 'Senden'<br><br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="text" name="id" id="id" value="" placeholder="ID Kennung aus der E-Mail" required /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Senden" />';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<!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 - Anfragenbestätigung</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>Anfrage einsehen</h2>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
if(isset($_POST["id"]) || isset($_GET["id"])){
|
||||
|
||||
$id = $_POST["id"] ?? ($_GET["id"] ?? null);
|
||||
|
||||
if (!$id) {
|
||||
echo "<h4>Leider konnten wir Ihre Anforderung nicht verarbeiten.</h4><br>Bitte überprüfen Sie den aufgerufenden Link.<br><br>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Anfrage + Person laden (NEUES SCHEMA)
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
a.anfrageid,
|
||||
a.checked,
|
||||
a.nachricht,
|
||||
a.medikament1,
|
||||
a.medikament2,
|
||||
a.anforderungart,
|
||||
a.ordnungsid,
|
||||
p.vorname,
|
||||
p.nachname,
|
||||
p.email,
|
||||
p.tele,
|
||||
p.geburtstag
|
||||
FROM anfragen a
|
||||
INNER JOIN persons p ON a.requester_person_id = p.person_id
|
||||
WHERE a.hash = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$id]);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$row) {
|
||||
echo "<h4>Leider konnten wir Ihre Anforderung nicht verarbeiten.</h4><br>Bitte überprüfen Sie den aufgerufenden Link.<br><br>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Variablen aus DB
|
||||
$anfrageid = (int)$row["anfrageid"];
|
||||
$checked = (int)$row["checked"];
|
||||
|
||||
$vorname = $row["vorname"] ?? "";
|
||||
$nachname = $row["nachname"] ?? "";
|
||||
$mail = $row["email"] ?? "";
|
||||
$tel = $row["tele"] ?? "";
|
||||
$geburtstag = $row["geburtstag"] ?? null;
|
||||
|
||||
$userausgabe = trim($vorname . " " . $nachname);
|
||||
|
||||
$nachricht = $row["nachricht"] ?? "";
|
||||
$medikamenteins = $row["medikament1"] ?? "";
|
||||
$medikamentzwei = $row["medikament2"] ?? "";
|
||||
|
||||
$anforderungart = $row["anforderungart"] ?? null;
|
||||
$ordnungsid = $row["ordnungsid"] ?? null;
|
||||
|
||||
// Ordnungsstring wie bisher (deine Funktion)
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
|
||||
// Rezeptart-Name holen
|
||||
$rezeptart = null;
|
||||
if (!empty($anforderungart)) {
|
||||
$stmtArt = $pdo->prepare("SELECT artname FROM anfrageart WHERE artid = ? LIMIT 1");
|
||||
$stmtArt->execute([$anforderungart]);
|
||||
$rezeptart = $stmtArt->fetchColumn() ?: null;
|
||||
}
|
||||
|
||||
// Ausgabe sicher escapen
|
||||
$e = fn($s) => htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8');
|
||||
|
||||
if ($checked === 0) {
|
||||
|
||||
echo "<h4>Sie haben Ihre Anfrage aktuell noch nicht bestätigt!<br><br>";
|
||||
echo "Sie haben die folgenden Anfragedaten:<br><br>";
|
||||
echo "<h4>Name: " . $e($userausgabe) . "</h4>";
|
||||
echo "<h4>Art: " . $e($ordnungsstring) . " - " . $e($rezeptart) . "</h4>";
|
||||
|
||||
if (!empty($medikamenteins)) {
|
||||
echo "<h4>Medikament1: " . $e($medikamenteins) . "</h4>";
|
||||
}
|
||||
if (!empty($medikamentzwei)) {
|
||||
echo "<h4>Medikament2: " . $e($medikamentzwei) . "</h4>";
|
||||
}
|
||||
if (!empty($nachricht)) {
|
||||
echo "<h4>Nachricht: " . nl2br(strip_tags($nachricht, '<br><b><strong><i><u><p><ul><li>')) . "</h4>";
|
||||
}
|
||||
|
||||
echo "<form action='" . $e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo '<input type="hidden" name="anfrageid" value="' . $e($anfrageid) . '" />';
|
||||
echo '<input type="hidden" name="aktion" value="2" />';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage bestätigen!" />';
|
||||
echo "</form>";
|
||||
|
||||
echo "<form action='" . $e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo '<input type="hidden" name="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="anfrageid" value="' . $e($anfrageid) . '" />';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage löschen!" />';
|
||||
echo "</form>";
|
||||
|
||||
} elseif ($checked === 1) {
|
||||
|
||||
echo "<h4>Sie haben Ihre Anforderung bestätigt!<br><b>Vielen Dank!</b><br>";
|
||||
echo "Sie haben die folgenden Anfragedaten:<br><br>";
|
||||
echo "<h4>Name: " . $e($userausgabe) . "</h4>";
|
||||
echo "<h4>Art: " . $e($rezeptart) . "</h4>";
|
||||
|
||||
if (!empty($medikamenteins)) {
|
||||
echo "<h4>Medikament1: " . $e($medikamenteins) . "</h4>";
|
||||
}
|
||||
if (!empty($medikamentzwei)) {
|
||||
echo "<h4>Medikament2: " . $e($medikamentzwei) . "</h4>";
|
||||
}
|
||||
if (!empty($nachricht)) {
|
||||
echo "<h4>Nachricht: " . nl2br(strip_tags($nachricht, '<br><b><strong><i><u><p><ul><li>')) . "</h4>";
|
||||
}
|
||||
|
||||
echo "Hat sich Ihre Anfrage erledigt, tragen Sie sich bitte aus, Ihre Anfrage wird gelöscht:<br>";
|
||||
echo "<form action='" . $e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo '<input type="hidden" name="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="anfrageid" value="' . $e($anfrageid) . '" />';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage absagen!" />';
|
||||
echo "</form>";
|
||||
|
||||
} elseif ($checked === 2) {
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde erfolgreich gelöscht!</h4><br>Wünschen Sie eine neue Anfrage, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
} elseif ($checked === 3) {
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde vom Praxisteam storniert!</h4><br>Wünschen Sie eine neue Anfrage, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
} elseif ($checked === 10) {
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde vom Praxisteam beantwortet!</h4><br>Prüfen Sie Ihre E-Mails auf die Antwort.<br>";
|
||||
|
||||
} else {
|
||||
echo "<h4>Status unbekannt.</h4>";
|
||||
}
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 1){
|
||||
echo "Wollen Sie wirklich Ihren Anfrage löschen?<br>Dieses ist nicht rückgängig zu machen!<br>Dann bestätigen Sie die Abmeldung:<br>";
|
||||
echo "Bitte bestätigen!";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="3" />';
|
||||
echo '<input type="hidden" name="anfrageid" id="anfrageid" value="'. $_POST["anfrageid"] .'" /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Anfrage löschen!" />';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 2){
|
||||
|
||||
$anfrageid = (int)($_POST["anfrageid"] ?? 0);
|
||||
if ($anfrageid <= 0) {
|
||||
die("<h4>Ungültige Anfrage-ID.</h4>");
|
||||
}
|
||||
|
||||
// 1) Prüfen/Updaten in einem Schritt: nur bestätigen, wenn noch nicht bestätigt
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE anfragen
|
||||
SET checked = 1
|
||||
WHERE anfrageid = ?
|
||||
AND checked < 1
|
||||
");
|
||||
$stmt->execute([$anfrageid]);
|
||||
|
||||
if ($stmt->rowCount() === 0) {
|
||||
// Es wurde nichts geändert -> war schon bestätigt oder existiert nicht
|
||||
// Optional: prüfen ob Anfrage existiert
|
||||
$stmt = $pdo->prepare("SELECT checked FROM anfragen WHERE anfrageid = ? LIMIT 1");
|
||||
$stmt->execute([$anfrageid]);
|
||||
$checked = $stmt->fetchColumn();
|
||||
|
||||
if ($checked === false) {
|
||||
echo "<h4>Anfrage nicht gefunden.</h4>";
|
||||
} else {
|
||||
echo "<h4>Sie haben Ihre Anfrage schon bestätigt.</h4>";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde erfolgreich bestätigt!</h4><br>";
|
||||
|
||||
|
||||
// 2) Anfrage + Person laden (NEUES SCHEMA)
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
ordnungsid
|
||||
FROM anfragen a
|
||||
WHERE anfrageid = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$anfrageid]);
|
||||
$ordnungsid = $stmt->fetchColumn();
|
||||
echo "Sie erhalten gleich eine schriftliche Bestätigung per E-Mail<br><br>";
|
||||
if (!$row) {
|
||||
echo "<h4>Fehler: Anfrage wurde bestätigt, aber konnte nicht geladen werden.</h4>";
|
||||
exit;
|
||||
}
|
||||
|
||||
$ordnungsid = $row["ordnungsid"] ?? null;
|
||||
|
||||
if($ordnungsid == 1){
|
||||
// Anfragen allgemein Bestätigung
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, "19");
|
||||
}else if($ordnungsid == 2 || $ordnungsid == 3){
|
||||
// Anfragen Rezept Bestätigung
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, "26");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 3){
|
||||
$anfrageid = (int)($_POST["anfrageid"] ?? 0);
|
||||
if ($anfrageid <= 0) {
|
||||
die("<h4>Ungültige Anfrage-ID.</h4>");
|
||||
}
|
||||
|
||||
/*
|
||||
1) Anfrage auf "gelöscht" setzen,
|
||||
aber nur wenn noch nicht gelöscht (checked < 2)
|
||||
*/
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE anfragen
|
||||
SET checked = 2
|
||||
WHERE anfrageid = ?
|
||||
AND checked < 2
|
||||
");
|
||||
$stmt->execute([$anfrageid]);
|
||||
|
||||
if ($stmt->rowCount() === 0) {
|
||||
// Entweder existiert nicht oder war schon gelöscht
|
||||
$stmt = $pdo->prepare("SELECT checked FROM anfragen WHERE anfrageid = ? LIMIT 1");
|
||||
$stmt->execute([$anfrageid]);
|
||||
$checked = $stmt->fetchColumn();
|
||||
|
||||
if ($checked === false) {
|
||||
echo "<h4>Anfrage nicht gefunden.</h4>";
|
||||
} else {
|
||||
echo "<h4>Sie haben Ihre Anfrage schon gelöscht.</h4>";
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
echo "<h4>Ihre Anfrage wurde erfolgreich gelöscht!</h4><br>";
|
||||
echo "Sie erhalten gleich eine schriftliche Bestätigung per E-Mail<br>";
|
||||
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, "49");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
echo "Leider konnten wir Ihre ID-Nummer nicht erkennen.<br>Bitte tragen Sie diese in dem folgendem Feld ein und klicken Sie auf 'Senden'<br><br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="text" name="id" id="id" value="" placeholder="ID Kennung aus der E-Mail" required /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Senden" />';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+16
-16
@@ -1,17 +1,17 @@
|
||||
input[type="number"],input[type="date"] {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-o-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
background: #f8f8f8;
|
||||
border-radius: 6px;
|
||||
border: solid 1px #e5e5e5;
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
height: 3em;
|
||||
input[type="number"],input[type="date"] {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-o-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
background: #f8f8f8;
|
||||
border-radius: 6px;
|
||||
border: solid 1px #e5e5e5;
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
height: 3em;
|
||||
}
|
||||
+21
-21
@@ -1,22 +1,22 @@
|
||||
#marquee-cont {
|
||||
background: #ff6363;
|
||||
margin-top:10px;
|
||||
}
|
||||
#marquee-cont marquee {
|
||||
margin-top: 5px;
|
||||
background: #ff6363;
|
||||
}
|
||||
#marquee-news {
|
||||
|
||||
background: #1174A8;
|
||||
padding: 5px;
|
||||
}
|
||||
#ticker-title{
|
||||
border:none;
|
||||
padding:5px 20px;
|
||||
background:#1174A8;
|
||||
color:white;
|
||||
}
|
||||
#ticker-title:focus{
|
||||
outline:none;
|
||||
#marquee-cont {
|
||||
background: #ff6363;
|
||||
margin-top:10px;
|
||||
}
|
||||
#marquee-cont marquee {
|
||||
margin-top: 5px;
|
||||
background: #ff6363;
|
||||
}
|
||||
#marquee-news {
|
||||
|
||||
background: #1174A8;
|
||||
padding: 5px;
|
||||
}
|
||||
#ticker-title{
|
||||
border:none;
|
||||
padding:5px 20px;
|
||||
background:#1174A8;
|
||||
color:white;
|
||||
}
|
||||
#ticker-title:focus{
|
||||
outline:none;
|
||||
}
|
||||
+544
-544
File diff suppressed because it is too large
Load Diff
+36
-36
@@ -1,37 +1,37 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// Überprüfen, ob der Benutzer angemeldet ist und die Kennung "admin" hat
|
||||
if (!isset($_SESSION['user']) || $_SESSION['user'] !== 'admin') {
|
||||
die("Unbefugter Zugriff.");
|
||||
}
|
||||
|
||||
$pdf_path = "./../datenupload/DHL-Paketmarke_PAKW6CYN3TC9_René_Lehradt_.pdf";
|
||||
if ($pdf_path) {
|
||||
if (file_exists($pdf_path)) {
|
||||
// Erzeugen eines temporären Dateinamens
|
||||
$temp_pdf_path = tempnam(sys_get_temp_dir(), 'pdf_');
|
||||
// Kopieren der PDF-Datei in den temporären Ordner
|
||||
copy($pdf_path, $temp_pdf_path);
|
||||
|
||||
// Setzen der Header für den Download
|
||||
header('Content-Type: application/pdf');
|
||||
header('Content-Disposition: attachment; filename="' . basename($pdf_path) . '"');
|
||||
header('Content-Length: ' . filesize($temp_pdf_path));
|
||||
|
||||
// Ausgabe des Inhalts der temporären Datei
|
||||
readfile($pdf_path);
|
||||
|
||||
// Löschen der temporären Datei
|
||||
unlink($temp_pdf_path);
|
||||
exit;
|
||||
} else {
|
||||
echo "Die Datei existiert nicht.";
|
||||
}
|
||||
} else {
|
||||
echo "Keine PDF-Datei gefunden.";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// Überprüfen, ob der Benutzer angemeldet ist und die Kennung "admin" hat
|
||||
if (!isset($_SESSION['user']) || $_SESSION['user'] !== 'admin') {
|
||||
die("Unbefugter Zugriff.");
|
||||
}
|
||||
|
||||
$pdf_path = "./../datenupload/DHL-Paketmarke_PAKW6CYN3TC9_René_Lehradt_.pdf";
|
||||
if ($pdf_path) {
|
||||
if (file_exists($pdf_path)) {
|
||||
// Erzeugen eines temporären Dateinamens
|
||||
$temp_pdf_path = tempnam(sys_get_temp_dir(), 'pdf_');
|
||||
// Kopieren der PDF-Datei in den temporären Ordner
|
||||
copy($pdf_path, $temp_pdf_path);
|
||||
|
||||
// Setzen der Header für den Download
|
||||
header('Content-Type: application/pdf');
|
||||
header('Content-Disposition: attachment; filename="' . basename($pdf_path) . '"');
|
||||
header('Content-Length: ' . filesize($temp_pdf_path));
|
||||
|
||||
// Ausgabe des Inhalts der temporären Datei
|
||||
readfile($pdf_path);
|
||||
|
||||
// Löschen der temporären Datei
|
||||
unlink($temp_pdf_path);
|
||||
exit;
|
||||
} else {
|
||||
echo "Die Datei existiert nicht.";
|
||||
}
|
||||
} else {
|
||||
echo "Keine PDF-Datei gefunden.";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
?>
|
||||
+33
-33
@@ -1,34 +1,34 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$username = $_POST['username'];
|
||||
$password = $_POST['password'];
|
||||
|
||||
// Beispielauthentifizierung, ersetzen Sie dies durch Ihre eigene Logik
|
||||
if ($username === 'admin' && $password === 'password') {
|
||||
$_SESSION['user'] = 'admin';
|
||||
header("Location: upload.php"); // Weiterleitung zum Upload-Skript
|
||||
exit;
|
||||
} else {
|
||||
echo "Ungültige Anmeldedaten.";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<form action="login.php" method="post">
|
||||
<label for="username">Benutzername:</label>
|
||||
<input type="text" name="username" id="username" required><br>
|
||||
<label for="password">Passwort:</label>
|
||||
<input type="password" name="password" id="password" required><br>
|
||||
<input type="submit" value="Login">
|
||||
</form>
|
||||
</body>
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$username = $_POST['username'];
|
||||
$password = $_POST['password'];
|
||||
|
||||
// Beispielauthentifizierung, ersetzen Sie dies durch Ihre eigene Logik
|
||||
if ($username === 'admin' && $password === 'password') {
|
||||
$_SESSION['user'] = 'admin';
|
||||
header("Location: upload.php"); // Weiterleitung zum Upload-Skript
|
||||
exit;
|
||||
} else {
|
||||
echo "Ungültige Anmeldedaten.";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<form action="login.php" method="post">
|
||||
<label for="username">Benutzername:</label>
|
||||
<input type="text" name="username" id="username" required><br>
|
||||
<label for="password">Passwort:</label>
|
||||
<input type="password" name="password" id="password" required><br>
|
||||
<input type="submit" value="Login">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
+464
-464
@@ -1,465 +1,465 @@
|
||||
<!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>
|
||||
<!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>
|
||||
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/impfbestaetigung.php';
|
||||
require_once __DIR__ . '/impfbestaetigung.php';
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/impfwarteliste.php';
|
||||
require_once __DIR__ . '/impfwarteliste.php';
|
||||
|
||||
+130
-130
@@ -1,131 +1,131 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* ICS.php
|
||||
* =======
|
||||
* Use this class to create an .ics file.
|
||||
*
|
||||
* Usage
|
||||
* -----
|
||||
* Basic usage - generate ics file contents (see below for available properties):
|
||||
* $ics = new ICS($props);
|
||||
* $ics_file_contents = $ics->to_string();
|
||||
*
|
||||
* Setting properties after instantiation
|
||||
* $ics = new ICS();
|
||||
* $ics->set('summary', 'My awesome event');
|
||||
*
|
||||
* You can also set multiple properties at the same time by using an array:
|
||||
* $ics->set(array(
|
||||
* 'dtstart' => 'now + 30 minutes',
|
||||
* 'dtend' => 'now + 1 hour'
|
||||
* ));
|
||||
*
|
||||
* Available properties
|
||||
* --------------------
|
||||
* description
|
||||
* String description of the event.
|
||||
* dtend
|
||||
* A date/time stamp designating the end of the event. You can use either a
|
||||
* DateTime object or a PHP datetime format string (e.g. "now + 1 hour").
|
||||
* dtstart
|
||||
* A date/time stamp designating the start of the event. You can use either a
|
||||
* DateTime object or a PHP datetime format string (e.g. "now + 1 hour").
|
||||
* location
|
||||
* String address or description of the location of the event.
|
||||
* summary
|
||||
* String short summary of the event - usually used as the title.
|
||||
* url
|
||||
* A url to attach to the the event. Make sure to add the protocol (http://
|
||||
* or https://).
|
||||
*/
|
||||
|
||||
class ICS {
|
||||
const DT_FORMAT = 'Ymd\THis\Z';
|
||||
|
||||
protected $properties = array();
|
||||
private $available_properties = array(
|
||||
'description',
|
||||
'dtend',
|
||||
'dtstart',
|
||||
'location',
|
||||
'summary',
|
||||
'url'
|
||||
);
|
||||
|
||||
public function __construct($props) {
|
||||
$this->set($props);
|
||||
}
|
||||
|
||||
public function set($key, $val = false) {
|
||||
if (is_array($key)) {
|
||||
foreach ($key as $k => $v) {
|
||||
$this->set($k, $v);
|
||||
}
|
||||
} else {
|
||||
if (in_array($key, $this->available_properties)) {
|
||||
$this->properties[$key] = $this->sanitize_val($val, $key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function to_string() {
|
||||
$rows = $this->build_props();
|
||||
return implode("\r\n", $rows);
|
||||
}
|
||||
|
||||
private function build_props() {
|
||||
// Build ICS properties - add header
|
||||
$ics_props = array(
|
||||
'BEGIN:VCALENDAR',
|
||||
'VERSION:2.0',
|
||||
'PRODID:-//hacksw/handcal//NONSGML v1.0//EN',
|
||||
'CALSCALE:GREGORIAN',
|
||||
'BEGIN:VEVENT'
|
||||
);
|
||||
|
||||
// Build ICS properties - add header
|
||||
$props = array();
|
||||
foreach($this->properties as $k => $v) {
|
||||
$props[strtoupper($k . ($k === 'url' ? ';VALUE=URI' : ''))] = $v;
|
||||
}
|
||||
|
||||
// Set some default values
|
||||
$props['DTSTAMP'] = $this->format_timestamp('now');
|
||||
$props['UID'] = uniqid();
|
||||
|
||||
// Append properties
|
||||
foreach ($props as $k => $v) {
|
||||
$ics_props[] = "$k:$v";
|
||||
}
|
||||
|
||||
// Build ICS properties - add footer
|
||||
$ics_props[] = 'END:VEVENT';
|
||||
$ics_props[] = 'END:VCALENDAR';
|
||||
|
||||
return $ics_props;
|
||||
}
|
||||
|
||||
private function sanitize_val($val, $key = false) {
|
||||
switch($key) {
|
||||
case 'dtend':
|
||||
case 'dtstamp':
|
||||
case 'dtstart':
|
||||
$val = $this->format_timestamp($val);
|
||||
break;
|
||||
default:
|
||||
$val = $this->escape_string($val);
|
||||
}
|
||||
|
||||
return $val;
|
||||
}
|
||||
|
||||
private function format_timestamp($timestamp) {
|
||||
$dt = new DateTime($timestamp);
|
||||
return $dt->format(self::DT_FORMAT);
|
||||
}
|
||||
|
||||
private function escape_string($str) {
|
||||
return preg_replace('/([\,;])/','\\\$1', $str);
|
||||
}
|
||||
<?php
|
||||
|
||||
/**
|
||||
* ICS.php
|
||||
* =======
|
||||
* Use this class to create an .ics file.
|
||||
*
|
||||
* Usage
|
||||
* -----
|
||||
* Basic usage - generate ics file contents (see below for available properties):
|
||||
* $ics = new ICS($props);
|
||||
* $ics_file_contents = $ics->to_string();
|
||||
*
|
||||
* Setting properties after instantiation
|
||||
* $ics = new ICS();
|
||||
* $ics->set('summary', 'My awesome event');
|
||||
*
|
||||
* You can also set multiple properties at the same time by using an array:
|
||||
* $ics->set(array(
|
||||
* 'dtstart' => 'now + 30 minutes',
|
||||
* 'dtend' => 'now + 1 hour'
|
||||
* ));
|
||||
*
|
||||
* Available properties
|
||||
* --------------------
|
||||
* description
|
||||
* String description of the event.
|
||||
* dtend
|
||||
* A date/time stamp designating the end of the event. You can use either a
|
||||
* DateTime object or a PHP datetime format string (e.g. "now + 1 hour").
|
||||
* dtstart
|
||||
* A date/time stamp designating the start of the event. You can use either a
|
||||
* DateTime object or a PHP datetime format string (e.g. "now + 1 hour").
|
||||
* location
|
||||
* String address or description of the location of the event.
|
||||
* summary
|
||||
* String short summary of the event - usually used as the title.
|
||||
* url
|
||||
* A url to attach to the the event. Make sure to add the protocol (http://
|
||||
* or https://).
|
||||
*/
|
||||
|
||||
class ICS {
|
||||
const DT_FORMAT = 'Ymd\THis\Z';
|
||||
|
||||
protected $properties = array();
|
||||
private $available_properties = array(
|
||||
'description',
|
||||
'dtend',
|
||||
'dtstart',
|
||||
'location',
|
||||
'summary',
|
||||
'url'
|
||||
);
|
||||
|
||||
public function __construct($props) {
|
||||
$this->set($props);
|
||||
}
|
||||
|
||||
public function set($key, $val = false) {
|
||||
if (is_array($key)) {
|
||||
foreach ($key as $k => $v) {
|
||||
$this->set($k, $v);
|
||||
}
|
||||
} else {
|
||||
if (in_array($key, $this->available_properties)) {
|
||||
$this->properties[$key] = $this->sanitize_val($val, $key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function to_string() {
|
||||
$rows = $this->build_props();
|
||||
return implode("\r\n", $rows);
|
||||
}
|
||||
|
||||
private function build_props() {
|
||||
// Build ICS properties - add header
|
||||
$ics_props = array(
|
||||
'BEGIN:VCALENDAR',
|
||||
'VERSION:2.0',
|
||||
'PRODID:-//hacksw/handcal//NONSGML v1.0//EN',
|
||||
'CALSCALE:GREGORIAN',
|
||||
'BEGIN:VEVENT'
|
||||
);
|
||||
|
||||
// Build ICS properties - add header
|
||||
$props = array();
|
||||
foreach($this->properties as $k => $v) {
|
||||
$props[strtoupper($k . ($k === 'url' ? ';VALUE=URI' : ''))] = $v;
|
||||
}
|
||||
|
||||
// Set some default values
|
||||
$props['DTSTAMP'] = $this->format_timestamp('now');
|
||||
$props['UID'] = uniqid();
|
||||
|
||||
// Append properties
|
||||
foreach ($props as $k => $v) {
|
||||
$ics_props[] = "$k:$v";
|
||||
}
|
||||
|
||||
// Build ICS properties - add footer
|
||||
$ics_props[] = 'END:VEVENT';
|
||||
$ics_props[] = 'END:VCALENDAR';
|
||||
|
||||
return $ics_props;
|
||||
}
|
||||
|
||||
private function sanitize_val($val, $key = false) {
|
||||
switch($key) {
|
||||
case 'dtend':
|
||||
case 'dtstamp':
|
||||
case 'dtstart':
|
||||
$val = $this->format_timestamp($val);
|
||||
break;
|
||||
default:
|
||||
$val = $this->escape_string($val);
|
||||
}
|
||||
|
||||
return $val;
|
||||
}
|
||||
|
||||
private function format_timestamp($timestamp) {
|
||||
$dt = new DateTime($timestamp);
|
||||
return $dt->format(self::DT_FORMAT);
|
||||
}
|
||||
|
||||
private function escape_string($str) {
|
||||
return preg_replace('/([\,;])/','\\\$1', $str);
|
||||
}
|
||||
}
|
||||
+568
-568
File diff suppressed because it is too large
Load Diff
+986
-986
File diff suppressed because it is too large
Load Diff
+796
-796
File diff suppressed because it is too large
Load Diff
+51
-56
@@ -1,56 +1,51 @@
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//ZContent.net//ZapCalLib 1.0//EN
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20250912
|
||||
DTEND:20250921
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251002
|
||||
DTEND:20251005
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251020
|
||||
DTEND:20251103
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251223
|
||||
DTEND:20251228
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251230
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260101
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260102
|
||||
DTEND:20260111
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260109
|
||||
DTEND:20260110
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260201
|
||||
DTEND:20260204
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//ZContent.net//ZapCalLib 1.0//EN
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251002
|
||||
DTEND:20251005
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251020
|
||||
DTEND:20251103
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251223
|
||||
DTEND:20251228
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251230
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260101
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260102
|
||||
DTEND:20260111
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260109
|
||||
DTEND:20260110
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260201
|
||||
DTEND:20260204
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
+51
-56
@@ -1,56 +1,51 @@
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//ZContent.net//ZapCalLib 1.0//EN
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20250912
|
||||
DTEND:20250921
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251002
|
||||
DTEND:20251005
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251020
|
||||
DTEND:20251103
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251223
|
||||
DTEND:20251228
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251230
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260101
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260102
|
||||
DTEND:20260111
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260109
|
||||
DTEND:20260110
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260201
|
||||
DTEND:20260204
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//ZContent.net//ZapCalLib 1.0//EN
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251002
|
||||
DTEND:20251005
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251020
|
||||
DTEND:20251103
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251223
|
||||
DTEND:20251228
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251230
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260102
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20251231
|
||||
DTEND:20260101
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260102
|
||||
DTEND:20260111
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260109
|
||||
DTEND:20260110
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Urlaub
|
||||
DTSTART:20260201
|
||||
DTEND:20260204
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
+51
-51
@@ -1,52 +1,52 @@
|
||||
<?php
|
||||
|
||||
require_once("./zapcallib.php");
|
||||
include './../inc/config.inc.php';
|
||||
|
||||
$startdate= date('Y-m-d',(strtotime ( '-180 days' ) ));
|
||||
// SQL-Abfrage, um Urlaubstermine abzurufen
|
||||
$sql = 'SELECT DATE_ADD(start, INTERVAL 1 DAY) AS stadate , DATE_ADD(ende, INTERVAL 1 DAY) AS enddate FROM urlaub WHERE start >= "' . $startdate . '"';
|
||||
$sql = 'SELECT start AS stadate , DATE_ADD(ende, INTERVAL 1 DAY) AS enddate FROM urlaub WHERE start >= "' . $startdate . '"';
|
||||
#echo $sql;
|
||||
$result = mysqli_query($con, $sql);
|
||||
|
||||
// create the ical object
|
||||
$icalobj = new ZCiCal();
|
||||
|
||||
$title = "Urlaub";
|
||||
|
||||
// Iteriere durch die Ergebnisse und füge Events zur iCal-Datei hinzu
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
// create the event within the ical object
|
||||
$eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode);
|
||||
|
||||
// add title
|
||||
$eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title));
|
||||
|
||||
// add start date
|
||||
$eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($row["stadate"])));
|
||||
|
||||
// add end date
|
||||
$eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($row["enddate"])));
|
||||
|
||||
}
|
||||
|
||||
// iCal-Datei ausgeben
|
||||
file_put_contents("kalender.ics", $icalobj->export());
|
||||
file_put_contents("kalender.ical", $icalobj->export());
|
||||
echo "Aktualisierung angestossen. Bitte Kalender pruefen.<br>Wenn in dieser Liste der Eintrag steht, dann sind Anfragen und Telefonanlage vorbereitet!<br><br>";
|
||||
#echo file_get_contents('./kalender.ical', true);
|
||||
$handle = fopen("./kalender.ical", "r");
|
||||
if ($handle) {
|
||||
while (($line = fgets($handle)) !== false) {
|
||||
// process the line read.
|
||||
echo $line . "<br>";
|
||||
}
|
||||
|
||||
fclose($handle);
|
||||
}
|
||||
echo"<br>Der letzte oder vorherige Eintrag bei DTSTART und DTEND sollte das gewuenschte Urlaubsdatum plus einen Tag haben.<br>
|
||||
20240330 steht fuer den 30.03.2024.<br>
|
||||
";
|
||||
|
||||
<?php
|
||||
|
||||
require_once("./zapcallib.php");
|
||||
include './../inc/config.inc.php';
|
||||
|
||||
$startdate= date('Y-m-d',(strtotime ( '-180 days' ) ));
|
||||
// SQL-Abfrage, um Urlaubstermine abzurufen
|
||||
$sql = 'SELECT DATE_ADD(start, INTERVAL 1 DAY) AS stadate , DATE_ADD(ende, INTERVAL 1 DAY) AS enddate FROM urlaub WHERE start >= "' . $startdate . '"';
|
||||
$sql = 'SELECT start AS stadate , DATE_ADD(ende, INTERVAL 1 DAY) AS enddate FROM urlaub WHERE start >= "' . $startdate . '"';
|
||||
#echo $sql;
|
||||
$result = mysqli_query($con, $sql);
|
||||
|
||||
// create the ical object
|
||||
$icalobj = new ZCiCal();
|
||||
|
||||
$title = "Urlaub";
|
||||
|
||||
// Iteriere durch die Ergebnisse und füge Events zur iCal-Datei hinzu
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
// create the event within the ical object
|
||||
$eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode);
|
||||
|
||||
// add title
|
||||
$eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title));
|
||||
|
||||
// add start date
|
||||
$eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($row["stadate"])));
|
||||
|
||||
// add end date
|
||||
$eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($row["enddate"])));
|
||||
|
||||
}
|
||||
|
||||
// iCal-Datei ausgeben
|
||||
file_put_contents("kalender.ics", $icalobj->export());
|
||||
file_put_contents("kalender.ical", $icalobj->export());
|
||||
echo "Aktualisierung angestossen. Bitte Kalender pruefen.<br>Wenn in dieser Liste der Eintrag steht, dann sind Anfragen und Telefonanlage vorbereitet!<br><br>";
|
||||
#echo file_get_contents('./kalender.ical', true);
|
||||
$handle = fopen("./kalender.ical", "r");
|
||||
if ($handle) {
|
||||
while (($line = fgets($handle)) !== false) {
|
||||
// process the line read.
|
||||
echo $line . "<br>";
|
||||
}
|
||||
|
||||
fclose($handle);
|
||||
}
|
||||
echo"<br>Der letzte oder vorherige Eintrag bei DTSTART und DTEND sollte das gewuenschte Urlaubsdatum plus einen Tag haben.<br>
|
||||
20240330 steht fuer den 30.03.2024.<br>
|
||||
";
|
||||
|
||||
?>
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/impfwarteliste.php';
|
||||
require_once __DIR__ . '/impfwarteliste.php';
|
||||
|
||||
+279
-279
@@ -1,292 +1,292 @@
|
||||
<!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');
|
||||
|
||||
?>
|
||||
<!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 - Impfung Terminbestätigung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin bestätigen</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
<?php
|
||||
|
||||
#include("impfconfig.php");
|
||||
|
||||
if(isset($_POST["id"]) || isset($_GET["id"])){
|
||||
|
||||
if(isset($_POST["id"])){
|
||||
$id = $_POST["id"];
|
||||
}else if(isset($_GET["id"])){
|
||||
$id = $_GET["id"];
|
||||
}
|
||||
$queryimpf = mysqli_query($con, "SELECT * FROM impftermin WHERE hash='" . $id . "'");
|
||||
|
||||
if(mysqli_num_rows($queryimpf) == 1){
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpf);
|
||||
//rowimpf = $queryimpf->fetch_assoc() ;
|
||||
$userid = $rowimpf["userid"];
|
||||
$checked = $rowimpf["checked"];
|
||||
$terminid = $rowimpf["terminid"];
|
||||
$timeid = $rowimpf["timeid"];
|
||||
//echo $userid;
|
||||
<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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin bestätigen</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
<?php
|
||||
|
||||
#include("impfconfig.php");
|
||||
|
||||
if(isset($_POST["id"]) || isset($_GET["id"])){
|
||||
|
||||
if(isset($_POST["id"])){
|
||||
$id = $_POST["id"];
|
||||
}else if(isset($_GET["id"])){
|
||||
$id = $_GET["id"];
|
||||
}
|
||||
$queryimpf = mysqli_query($con, "SELECT * FROM impftermin WHERE hash='" . $id . "'");
|
||||
|
||||
if(mysqli_num_rows($queryimpf) == 1){
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpf);
|
||||
//rowimpf = $queryimpf->fetch_assoc() ;
|
||||
$userid = $rowimpf["userid"];
|
||||
$checked = $rowimpf["checked"];
|
||||
$terminid = $rowimpf["terminid"];
|
||||
$timeid = $rowimpf["timeid"];
|
||||
//echo $userid;
|
||||
$queryuser = mysqli_query($con, "SELECT * FROM persons WHERE person_id='" . $userid . "'");
|
||||
$rowuser = mysqli_fetch_assoc($queryuser);
|
||||
//$rowuser = $queryuser->fetch_assoc();
|
||||
$vorname = $rowuser["vorname"];
|
||||
$nachname = $rowuser["nachname"];
|
||||
$rowuser = mysqli_fetch_assoc($queryuser);
|
||||
//$rowuser = $queryuser->fetch_assoc();
|
||||
$vorname = $rowuser["vorname"];
|
||||
$nachname = $rowuser["nachname"];
|
||||
$mail = $rowuser["email"];
|
||||
//echo $mail;
|
||||
$tel = $rowuser["tele"];
|
||||
//echo $mail;
|
||||
$tel = $rowuser["tele"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$querytime = mysqli_query($con, "Select date,start,ende,impfstoff,impfortid FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = mysqli_fetch_assoc($querytime);
|
||||
//$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
|
||||
// Impfstoff
|
||||
$impfstoff = $rowtime["impfstoff"];
|
||||
$sqlimpfstoffstring = "SELECT * FROM impfstoff WHERE impfid ='" . $impfstoff . "'";
|
||||
$queryimpfstoff = mysqli_query($con,$sqlimpfstoffstring);
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpfstoff);
|
||||
$impfstofftext = $rowimpf["impfname"];
|
||||
|
||||
$impfortid = $rowtime["impfortid"];
|
||||
$sqlimpfortstring = "SELECT * FROM impfort WHERE ortid ='" . $impfortid . "'";
|
||||
$queryimpfort = mysqli_query($con,$sqlimpfortstring);
|
||||
$rowimpfort = mysqli_fetch_assoc($queryimpfort);
|
||||
$impforttext = $rowimpfort["anzeigename"] ."- " . $rowimpfort["adresse"];
|
||||
$impforttext = iconv('CP1252//IGNORE', 'UTF-8' , $impforttext);
|
||||
|
||||
$mailbetreff = "Ihre Coronaimpfung bei Praxis Creutzburg";
|
||||
|
||||
$Zeitanzeige = $datum . " " . $start . "-" . $ende ;
|
||||
if($checked == 0){
|
||||
echo "<h4>Sie haben Ihren Termin aktuell noch nicht bestätigt!<br><br></h4><br>";
|
||||
echo "<h4>Sagen Sie einen zugesagten Termin ab, werden Sie für 7 Tage für weitere Termine gesperrt!</h4><br>Sein Sie solidarisch und kommen Sie zu Ihren festgelegten Termin!<br>Doppelbuchung und Falschangaben führen zum generellen Ausschluss einer Impfung!<br>";
|
||||
echo "Sie haben die folgenden Termindaten:<br><br>";
|
||||
echo "<h4>Name: $userausgabe</h4>";
|
||||
echo "<h4>Zeit: $Zeitanzeige</h4>";
|
||||
echo "<h4>Impfstoff: $impfstofftext</h4>";
|
||||
echo "<h4>Impfort: $impforttext</h4><br>";
|
||||
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $terminid .'" />';
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="2" />';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ZUSAGEN" />';
|
||||
echo "</form>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $terminid .'" />';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ABSAGEN!" />';
|
||||
echo "</form>";
|
||||
|
||||
}else if($checked == 1){
|
||||
echo "<h4>Sie haben Ihren Termin bestätigt!<br><b>Vielen Dank!</b><br><br></h4><br>";
|
||||
echo "<h4>Sagen Sie einen zugesagten Termin ab, werden Sie für 7 Tage für weitere Termine gesperrt!</h4><br>Sein Sie solidarisch und kommen Sie zu Ihren festgelegten Termin!<br>Doppelbuchung und Falschangaben führen zum generellen Ausschluss einer Impfung!<br>";
|
||||
echo "Sie haben die folgenden Termindaten:<br><br>";
|
||||
echo "<h4>Name: $userausgabe</h4>";
|
||||
echo "<h4>Zeit: $Zeitanzeige</h4>";
|
||||
echo "<h4>Impfstoff: $impfstofftext</h4>";
|
||||
echo "<h4>Impfort: $impforttext</h4><br>";
|
||||
|
||||
echo "Können Sie Ihren Termin nicht wahrnehmen tragen Sie sich bitte aus:<br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $terminid .'" />';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ABSAGEN!" />';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
}else if($checked == 2){
|
||||
echo "<h4>Ihr Termin wurde erfolgreich abgesagt!!</h4><br>Wünschen Sie einen neuen Termin, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
|
||||
}else if($checked == 3){
|
||||
echo "<h4>Ihr Termin wurde vom Praxisteam storniert!</h4><br>Wünschen Sie einen neuen Termin, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
echo "<h4>Leider konnten wir Ihre Anforderung nicht verarbeiten.</h4><br>Bitte überprüfen Sie den aufgerufenden Link.<br><br>";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 1){
|
||||
echo "Wollen Sie wirklich Ihren Termin absagen?<br>Dieses ist nicht rückgängig zu machen!<br>Dann bestätigen Sie die Abmeldung:<br>";
|
||||
echo "<b>Achtung!</b> Sagen Sie Ihren festgelegten Termin ab, können Sie eine Woche keinen neuen Termin beantragen.<br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="3" />';
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $_POST["terminid"] .'" /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ABSAGEN!" />';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 2){
|
||||
|
||||
$querychecked = mysqli_query($con, "SELECT checked FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowchecked = mysqli_fetch_assoc($querychecked);
|
||||
//$rowchecked = $querychecked->fetch_assoc() ;
|
||||
$checked = $rowchecked["checked"];
|
||||
if($checked >= 1){
|
||||
echo "<h4>Sie haben Ihren Termin schon bestätigt.</h4>";
|
||||
|
||||
}else{
|
||||
$query = mysqli_query($con, "Update impftermin SET checked='1' WHERE terminid ='".$_POST["terminid"]."'");
|
||||
if($query){
|
||||
echo "<h4>Ihr Termin wurde erfolgreich bestätigt!<h4><br>";
|
||||
echo "Sie erhalten gleiche eine schriftliche Bestätigung per E-Mail<br>";
|
||||
|
||||
|
||||
$queryimpf = mysqli_query($con, "SELECT * FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpf);
|
||||
//$rowimpf = $queryimpf->fetch_assoc() ;
|
||||
$userid = $rowimpf["userid"];
|
||||
$checked = $rowimpf["checked"];
|
||||
$terminid = $rowimpf["terminid"];
|
||||
$timeid = $rowimpf["timeid"];
|
||||
//echo $userid;
|
||||
$querytime = mysqli_query($con, "Select date,start,ende,impfstoff,impfortid FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = mysqli_fetch_assoc($querytime);
|
||||
//$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
|
||||
// Impfstoff
|
||||
$impfstoff = $rowtime["impfstoff"];
|
||||
$sqlimpfstoffstring = "SELECT * FROM impfstoff WHERE impfid ='" . $impfstoff . "'";
|
||||
$queryimpfstoff = mysqli_query($con,$sqlimpfstoffstring);
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpfstoff);
|
||||
$impfstofftext = $rowimpf["impfname"];
|
||||
|
||||
$impfortid = $rowtime["impfortid"];
|
||||
$sqlimpfortstring = "SELECT * FROM impfort WHERE ortid ='" . $impfortid . "'";
|
||||
$queryimpfort = mysqli_query($con,$sqlimpfortstring);
|
||||
$rowimpfort = mysqli_fetch_assoc($queryimpfort);
|
||||
$impforttext = $rowimpfort["anzeigename"] ."- " . $rowimpfort["adresse"];
|
||||
$impforttext = iconv('CP1252//IGNORE', 'UTF-8' , $impforttext);
|
||||
|
||||
$mailbetreff = "Ihre Coronaimpfung bei Praxis Creutzburg";
|
||||
|
||||
$Zeitanzeige = $datum . " " . $start . "-" . $ende ;
|
||||
if($checked == 0){
|
||||
echo "<h4>Sie haben Ihren Termin aktuell noch nicht bestätigt!<br><br></h4><br>";
|
||||
echo "<h4>Sagen Sie einen zugesagten Termin ab, werden Sie für 7 Tage für weitere Termine gesperrt!</h4><br>Sein Sie solidarisch und kommen Sie zu Ihren festgelegten Termin!<br>Doppelbuchung und Falschangaben führen zum generellen Ausschluss einer Impfung!<br>";
|
||||
echo "Sie haben die folgenden Termindaten:<br><br>";
|
||||
echo "<h4>Name: $userausgabe</h4>";
|
||||
echo "<h4>Zeit: $Zeitanzeige</h4>";
|
||||
echo "<h4>Impfstoff: $impfstofftext</h4>";
|
||||
echo "<h4>Impfort: $impforttext</h4><br>";
|
||||
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $terminid .'" />';
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="2" />';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ZUSAGEN" />';
|
||||
echo "</form>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $terminid .'" />';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ABSAGEN!" />';
|
||||
echo "</form>";
|
||||
|
||||
}else if($checked == 1){
|
||||
echo "<h4>Sie haben Ihren Termin bestätigt!<br><b>Vielen Dank!</b><br><br></h4><br>";
|
||||
echo "<h4>Sagen Sie einen zugesagten Termin ab, werden Sie für 7 Tage für weitere Termine gesperrt!</h4><br>Sein Sie solidarisch und kommen Sie zu Ihren festgelegten Termin!<br>Doppelbuchung und Falschangaben führen zum generellen Ausschluss einer Impfung!<br>";
|
||||
echo "Sie haben die folgenden Termindaten:<br><br>";
|
||||
echo "<h4>Name: $userausgabe</h4>";
|
||||
echo "<h4>Zeit: $Zeitanzeige</h4>";
|
||||
echo "<h4>Impfstoff: $impfstofftext</h4>";
|
||||
echo "<h4>Impfort: $impforttext</h4><br>";
|
||||
|
||||
echo "Können Sie Ihren Termin nicht wahrnehmen tragen Sie sich bitte aus:<br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $terminid .'" />';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ABSAGEN!" />';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
}else if($checked == 2){
|
||||
echo "<h4>Ihr Termin wurde erfolgreich abgesagt!!</h4><br>Wünschen Sie einen neuen Termin, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
|
||||
}else if($checked == 3){
|
||||
echo "<h4>Ihr Termin wurde vom Praxisteam storniert!</h4><br>Wünschen Sie einen neuen Termin, tragen Sie sich wieder über das Formular ein.<br>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
echo "<h4>Leider konnten wir Ihre Anforderung nicht verarbeiten.</h4><br>Bitte überprüfen Sie den aufgerufenden Link.<br><br>";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 1){
|
||||
echo "Wollen Sie wirklich Ihren Termin absagen?<br>Dieses ist nicht rückgängig zu machen!<br>Dann bestätigen Sie die Abmeldung:<br>";
|
||||
echo "<b>Achtung!</b> Sagen Sie Ihren festgelegten Termin ab, können Sie eine Woche keinen neuen Termin beantragen.<br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="3" />';
|
||||
echo '<input type="hidden" name="terminid" id="terminid" value="'. $_POST["terminid"] .'" /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Termin ABSAGEN!" />';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
}else if($_POST["aktion"] == 2){
|
||||
|
||||
$querychecked = mysqli_query($con, "SELECT checked FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowchecked = mysqli_fetch_assoc($querychecked);
|
||||
//$rowchecked = $querychecked->fetch_assoc() ;
|
||||
$checked = $rowchecked["checked"];
|
||||
if($checked >= 1){
|
||||
echo "<h4>Sie haben Ihren Termin schon bestätigt.</h4>";
|
||||
|
||||
}else{
|
||||
$query = mysqli_query($con, "Update impftermin SET checked='1' WHERE terminid ='".$_POST["terminid"]."'");
|
||||
if($query){
|
||||
echo "<h4>Ihr Termin wurde erfolgreich bestätigt!<h4><br>";
|
||||
echo "Sie erhalten gleiche eine schriftliche Bestätigung per E-Mail<br>";
|
||||
|
||||
|
||||
$queryimpf = mysqli_query($con, "SELECT * FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpf);
|
||||
//$rowimpf = $queryimpf->fetch_assoc() ;
|
||||
$userid = $rowimpf["userid"];
|
||||
$checked = $rowimpf["checked"];
|
||||
$terminid = $rowimpf["terminid"];
|
||||
$timeid = $rowimpf["timeid"];
|
||||
//echo $userid;
|
||||
$queryuser = mysqli_query($con, "SELECT * FROM persons WHERE person_id='" . $userid . "'");
|
||||
$rowuser = mysqli_fetch_assoc($queryuser);
|
||||
//$rowuser = $queryuser->fetch_assoc();
|
||||
$vorname = $rowuser["vorname"];
|
||||
$nachname = $rowuser["nachname"];
|
||||
$rowuser = mysqli_fetch_assoc($queryuser);
|
||||
//$rowuser = $queryuser->fetch_assoc();
|
||||
$vorname = $rowuser["vorname"];
|
||||
$nachname = $rowuser["nachname"];
|
||||
$mail = $rowuser["email"];
|
||||
//echo $mail;
|
||||
$tel = $rowuser["tele"];
|
||||
//echo $mail;
|
||||
$tel = $rowuser["tele"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$querytime = mysqli_query($con, "Select date,start,ende FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = mysqli_fetch_assoc($querytime);
|
||||
//$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
|
||||
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "2");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}else if($_POST["aktion"] == 3){
|
||||
$querychecked = mysqli_query($con, "SELECT checked FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$querytime = mysqli_query($con, "Select date,start,ende FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = mysqli_fetch_assoc($querytime);
|
||||
//$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
|
||||
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "2");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}else if($_POST["aktion"] == 3){
|
||||
$querychecked = mysqli_query($con, "SELECT checked FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowchecked = mysqli_fetch_assoc($querychecked);
|
||||
$checked = $rowchecked["checked"];
|
||||
if($checked >= 2){
|
||||
echo "<h4>Sie haben Ihren Termin schon abgesagt.</h4>";
|
||||
|
||||
}else{
|
||||
$query = mysqli_query($con, "Update impftermin SET checked='2' WHERE terminid ='".$_POST["terminid"]."'");
|
||||
if($query){
|
||||
echo "<h4>Ihr Termin wurde erfolgreich gelöscht!<h4><br>";
|
||||
echo "Sie erhalten gleiche eine schriftliche Bestätigung per E-Mail<br>";
|
||||
|
||||
$queryimpf = mysqli_query($con, "SELECT * FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpf);
|
||||
//$rowimpf = $queryimpf->fetch_assoc() ;
|
||||
$userid = $rowimpf["userid"];
|
||||
$checked = $rowimpf["checked"];
|
||||
$terminid = $rowimpf["terminid"];
|
||||
$timeid = $rowimpf["timeid"];
|
||||
//echo $userid;
|
||||
if($checked >= 2){
|
||||
echo "<h4>Sie haben Ihren Termin schon abgesagt.</h4>";
|
||||
|
||||
}else{
|
||||
$query = mysqli_query($con, "Update impftermin SET checked='2' WHERE terminid ='".$_POST["terminid"]."'");
|
||||
if($query){
|
||||
echo "<h4>Ihr Termin wurde erfolgreich gelöscht!<h4><br>";
|
||||
echo "Sie erhalten gleiche eine schriftliche Bestätigung per E-Mail<br>";
|
||||
|
||||
$queryimpf = mysqli_query($con, "SELECT * FROM impftermin WHERE terminid='" . $_POST["terminid"] . "'");
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpf);
|
||||
//$rowimpf = $queryimpf->fetch_assoc() ;
|
||||
$userid = $rowimpf["userid"];
|
||||
$checked = $rowimpf["checked"];
|
||||
$terminid = $rowimpf["terminid"];
|
||||
$timeid = $rowimpf["timeid"];
|
||||
//echo $userid;
|
||||
$queryuser = mysqli_query($con, "SELECT * FROM persons WHERE person_id='" . $userid . "'");
|
||||
$rowuser = mysqli_fetch_assoc($queryuser);
|
||||
//$rowuser = $queryuser->fetch_assoc();
|
||||
$vorname = $rowuser["vorname"];
|
||||
$nachname = $rowuser["nachname"];
|
||||
$rowuser = mysqli_fetch_assoc($queryuser);
|
||||
//$rowuser = $queryuser->fetch_assoc();
|
||||
$vorname = $rowuser["vorname"];
|
||||
$nachname = $rowuser["nachname"];
|
||||
$mail = $rowuser["email"];
|
||||
//echo $mail;
|
||||
$tel = $rowuser["tele"];
|
||||
//echo $mail;
|
||||
$tel = $rowuser["tele"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$querytime = mysqli_query($con, "Select date,start,ende,impfdosen FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = mysqli_fetch_assoc($querytime);
|
||||
//$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
$dosen = $rowtime["impfdosen"];
|
||||
$dosen = $dosen + 1;
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
$query = mysqli_query($con, "Update timeslots SET impfdosen='".$dosen."' WHERE timeid ='".$timeid."'");
|
||||
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "3");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
echo "Leider konnten wir Ihre ID-Nummer nicht erkennen.<br>Bitte tragen Sie diese in dem folgendem Feld ein und klicken Sie auf 'Senden'<br><br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="text" name="id" id="id" value="" placeholder="ID Kennung aus der E-Mail" required /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Senden" />';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
$querytime = mysqli_query($con, "Select date,start,ende,impfdosen FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = mysqli_fetch_assoc($querytime);
|
||||
//$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
$dosen = $rowtime["impfdosen"];
|
||||
$dosen = $dosen + 1;
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
$query = mysqli_query($con, "Update timeslots SET impfdosen='".$dosen."' WHERE timeid ='".$timeid."'");
|
||||
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "3");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
echo "Leider konnten wir Ihre ID-Nummer nicht erkennen.<br>Bitte tragen Sie diese in dem folgendem Feld ein und klicken Sie auf 'Senden'<br><br>";
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo '<input type="text" name="id" id="id" value="" placeholder="ID Kennung aus der E-Mail" required /><br>';
|
||||
echo '<input type="submit" id="submitbox" value="Senden" />';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+155
-155
@@ -1,156 +1,156 @@
|
||||
<!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 - Corona Termin Erinnerung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$today =Date("Y-m-d",strtotime("-1 days"));
|
||||
|
||||
$querytermin = mysqli_query($con, "SELECT * FROM impftermin WHERE date_created >= '". $today . "' AND checked = '0'");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$terminid = $rowtermin["terminid"];
|
||||
$hash = $rowtermin["hash"];
|
||||
$userid = $rowtermin["userid"];
|
||||
$timeid = $rowtermin["timeid"];
|
||||
$query = mysqli_query($con, "SELECT * FROM user WHERE userid ='". $userid . "'");
|
||||
while ($row = $query->fetch_assoc()) {
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$jahrgang = $row["jahrgang"];
|
||||
$Email = $row["mail"];
|
||||
$tele = $row["tele"];
|
||||
|
||||
|
||||
|
||||
echo "$Email <br><br>";
|
||||
/*
|
||||
$querytime = mysqli_query($con, "Select date,start,ende FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
|
||||
$hashaufruf = "https://praxis-creutzburg.de/impfbestaetigung.php?id=$hash";
|
||||
|
||||
$nachricht = "<meta http-equiv='Content-Type' content='text/html charset=UTF-8' />
|
||||
Sehr geehrte(r) Herr/Frau $nachname,<br><br><b>Ihre Impftermin Anfrage bei Praxis-Creutzburg war erfolgreich!</b><br>
|
||||
Bitte bestätigten Sie Ihre Impfanfrage noch über dieses Formular:<br>
|
||||
<a href=$hashaufruf style='box-shadow:inset 0px -1px 15px 3px #23395e;background:linear-gradient(to bottom, #2e466e 5%, #415989 100%);background-color:#2e466e;border-radius:17px;border:1px solid #1f2f47;display:inline-block;cursor:pointer;color:#ffffff;font-family:Arial;font-size:27px;padding:20px 57px;text-decoration:none;text-shadow:0px 1px 0px #263666;' >Impftermin bestätigen</a><br><br>
|
||||
oder geben Sie die folgende Zeile in Ihrem Browser in die Adressezeile ein:<br>
|
||||
$hashaufruf<br>
|
||||
<b>Bitte bestätigen Sie Ihren Termin innerhalb von 24 Stunden!</b><br>
|
||||
Anderenfalls wird der Termin automatisch storniert.<br><br>
|
||||
Erscheinen Sie nicht zum Termin wird eine Aufwandentschädigung von 50€ fällig.<br>
|
||||
Sie können den Termin bis einen Tag vor dem Termin kostenfrei stornieren.<br><br>
|
||||
|
||||
<p>Die Impfunterlagen liegen zwei Tage vor dem Impftermin ausgedruckt aussen neben der Eingangstuer, vor der Praxis fuer Sie bereit, wenn Sie keine Moeglichkeiten zum ausdrucken haben!
|
||||
Impfaufklaerung und Einwilligung sind zusammengeheftet, beide Dokumente muessen Unterschrieben werden.</p>
|
||||
|
||||
https://www.praxis-creutzburg.de/impfunterlagen.php<br>
|
||||
Hier koennen Sie die Unterlagen zum ausdrucken herunterladen.<br>
|
||||
Unterschreiben Sie die Einwilligungserklaerung und die Impfaufklaerung!<br><b>Zwei Dokumente, zwei Unterschriften!</b><br>
|
||||
|
||||
<h4>Bitte rufen Sie uns nicht wegen Impfterminen an! </h4>
|
||||
|
||||
<b>Ihre Angaben</b><br><br>
|
||||
Name: $vorname $nachname<br>
|
||||
Termin: $Zeitanzeige<br>
|
||||
<br>
|
||||
Bitte sein Sie pünktlich zum Termin vor Ort.<br>Vielen Dank für <b>Ihre Mithilfe</b>!<br>
|
||||
<br>
|
||||
Ihr Praxis-Team<br>
|
||||
der Praxis Creutzburg<br>
|
||||
|
||||
|
||||
|
||||
";
|
||||
|
||||
echo "<h3>Nachricht abgeschickt!</h3> ";
|
||||
$betreff = 'Impftermin-Anfrage bei Praxis Creuzburg';
|
||||
|
||||
SendMailMessage($con, $Email, $betreff, $nachricht);
|
||||
*/
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "31");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<!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 - Corona Termin Erinnerung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$today =Date("Y-m-d",strtotime("-1 days"));
|
||||
|
||||
$querytermin = mysqli_query($con, "SELECT * FROM impftermin WHERE date_created >= '". $today . "' AND checked = '0'");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$terminid = $rowtermin["terminid"];
|
||||
$hash = $rowtermin["hash"];
|
||||
$userid = $rowtermin["userid"];
|
||||
$timeid = $rowtermin["timeid"];
|
||||
$query = mysqli_query($con, "SELECT * FROM user WHERE userid ='". $userid . "'");
|
||||
while ($row = $query->fetch_assoc()) {
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$jahrgang = $row["jahrgang"];
|
||||
$Email = $row["mail"];
|
||||
$tele = $row["tele"];
|
||||
|
||||
|
||||
|
||||
echo "$Email <br><br>";
|
||||
/*
|
||||
$querytime = mysqli_query($con, "Select date,start,ende FROM timeslots WHERE timeid='" . $timeid . "'");
|
||||
$rowtime = $querytime->fetch_assoc();
|
||||
$datum = date("d.m.Y", strtotime($rowtime["date"]));
|
||||
$start = substr($rowtime["start"],0, 5);
|
||||
$ende = substr($rowtime["ende"],0, 5);
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
|
||||
$hashaufruf = "https://praxis-creutzburg.de/impfbestaetigung.php?id=$hash";
|
||||
|
||||
$nachricht = "<meta http-equiv='Content-Type' content='text/html charset=UTF-8' />
|
||||
Sehr geehrte(r) Herr/Frau $nachname,<br><br><b>Ihre Impftermin Anfrage bei Praxis-Creutzburg war erfolgreich!</b><br>
|
||||
Bitte bestätigten Sie Ihre Impfanfrage noch über dieses Formular:<br>
|
||||
<a href=$hashaufruf style='box-shadow:inset 0px -1px 15px 3px #23395e;background:linear-gradient(to bottom, #2e466e 5%, #415989 100%);background-color:#2e466e;border-radius:17px;border:1px solid #1f2f47;display:inline-block;cursor:pointer;color:#ffffff;font-family:Arial;font-size:27px;padding:20px 57px;text-decoration:none;text-shadow:0px 1px 0px #263666;' >Impftermin bestätigen</a><br><br>
|
||||
oder geben Sie die folgende Zeile in Ihrem Browser in die Adressezeile ein:<br>
|
||||
$hashaufruf<br>
|
||||
<b>Bitte bestätigen Sie Ihren Termin innerhalb von 24 Stunden!</b><br>
|
||||
Anderenfalls wird der Termin automatisch storniert.<br><br>
|
||||
Erscheinen Sie nicht zum Termin wird eine Aufwandentschädigung von 50€ fällig.<br>
|
||||
Sie können den Termin bis einen Tag vor dem Termin kostenfrei stornieren.<br><br>
|
||||
|
||||
<p>Die Impfunterlagen liegen zwei Tage vor dem Impftermin ausgedruckt aussen neben der Eingangstuer, vor der Praxis fuer Sie bereit, wenn Sie keine Moeglichkeiten zum ausdrucken haben!
|
||||
Impfaufklaerung und Einwilligung sind zusammengeheftet, beide Dokumente muessen Unterschrieben werden.</p>
|
||||
|
||||
https://www.praxis-creutzburg.de/impfunterlagen.php<br>
|
||||
Hier koennen Sie die Unterlagen zum ausdrucken herunterladen.<br>
|
||||
Unterschreiben Sie die Einwilligungserklaerung und die Impfaufklaerung!<br><b>Zwei Dokumente, zwei Unterschriften!</b><br>
|
||||
|
||||
<h4>Bitte rufen Sie uns nicht wegen Impfterminen an! </h4>
|
||||
|
||||
<b>Ihre Angaben</b><br><br>
|
||||
Name: $vorname $nachname<br>
|
||||
Termin: $Zeitanzeige<br>
|
||||
<br>
|
||||
Bitte sein Sie pünktlich zum Termin vor Ort.<br>Vielen Dank für <b>Ihre Mithilfe</b>!<br>
|
||||
<br>
|
||||
Ihr Praxis-Team<br>
|
||||
der Praxis Creutzburg<br>
|
||||
|
||||
|
||||
|
||||
";
|
||||
|
||||
echo "<h3>Nachricht abgeschickt!</h3> ";
|
||||
$betreff = 'Impftermin-Anfrage bei Praxis Creuzburg';
|
||||
|
||||
SendMailMessage($con, $Email, $betreff, $nachricht);
|
||||
*/
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "31");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+164
-164
@@ -1,165 +1,165 @@
|
||||
<!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 - Corona Termin Löschung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//echo $_GET["aktion"];
|
||||
if(isset($_GET["aktion"])) {
|
||||
if( $_GET["aktion"] == "AufrufzurLoeschung"){
|
||||
|
||||
|
||||
$today = date("Y-m-d");
|
||||
$yesterday = Date('Y-m-d', strtotime('-1 day'));
|
||||
$yesteryesterday = Date('Y-m-d', strtotime('-2 days'));
|
||||
$querytermin = mysqli_query($con, "SELECT * FROM impftermin INNER JOIN timeslots ON impftermin.timeid = timeslots.timeid WHERE date_created <= '". $yesteryesterday . "' AND checked = '0'");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$terminid = $rowtermin["terminid"];
|
||||
$hash = $rowtermin["hash"];
|
||||
$userid = $rowtermin["userid"];
|
||||
$timeid = $rowtermin["timeid"];
|
||||
$query = mysqli_query($con, "SELECT * FROM user WHERE userid ='". $userid . "'");
|
||||
$row = $query->fetch_assoc();
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$jahrgang = $row["jahrgang"];
|
||||
$mail = $row["mail"];
|
||||
$tele = $row["tele"];
|
||||
|
||||
echo "Löschen Id $terminid <br>";
|
||||
|
||||
$datum = date("d.m.Y", strtotime($row["date"]));
|
||||
$start = substr($row["start"],0, 5);
|
||||
$ende = substr($row["ende"],0, 5);
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
$queryloeschen = mysqli_query($con, "Update impftermin SET checked='5' WHERE terminid = '". $terminid . "' ");
|
||||
|
||||
// Impfdosen um einen erhöhen
|
||||
$query = mysqli_query($con, "Select impfdosen FROM timeslots WHERE timeid='".$timeid."'");
|
||||
$row = mysqli_fetch_assoc($query);
|
||||
$dosen = $row["impfdosen"] + 1;
|
||||
$query = mysqli_query($con, "Update timeslots SET impfdosen='".$dosen ."' WHERE timeid ='".$timeid."'");
|
||||
|
||||
if($queryloeschen){
|
||||
|
||||
/*
|
||||
$dosen = $rowtermin["impfdosen"];
|
||||
$dosen = $dosen + 1;
|
||||
$query = mysqli_query($con, "Update timeslots SET impfdosen='".$dosen."' WHERE timeid ='".$timeid."'");
|
||||
|
||||
$nachricht = "<meta http-equiv='Content-Type' content='text/html charset=UTF-8' />
|
||||
Sehr geehrte(r) Herr/Frau $nachname,<br><br>
|
||||
|
||||
Ihre ausgewählter Impftermin wurde storniert, da Sie diesen nicht innerhalb von 24 Stunden bestätigt haben.<br>
|
||||
Termin: $Zeitanzeige<br>
|
||||
<br>
|
||||
Benötigen Sie einen neuen Termin, müssen Sie das Formular erneut ausfüllen.<br>
|
||||
|
||||
<h4>Bitte rufen Sie uns nicht wegen Impfterminen an! </h4>
|
||||
|
||||
<br>Vielen Dank für <b>Ihre Mithilfe</b>!<br>
|
||||
<br>
|
||||
Ihr Praxis-Team<br>
|
||||
der Praxis Creutzburg<br>
|
||||
|
||||
|
||||
|
||||
";
|
||||
$nachricht = iconv('UTF-8', 'CP1252//IGNORE', $nachricht);
|
||||
|
||||
//echo $nachricht;
|
||||
|
||||
echo "<h3>Nachricht abgeschickt!</h3> ";
|
||||
$betreff = 'Impftermin-Anfrage bei Praxis Creuzburg';
|
||||
|
||||
SendMailMessage($con, $mail, $betreff, $nachricht);
|
||||
*/
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "30");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<!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 - Corona Termin Löschung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//echo $_GET["aktion"];
|
||||
if(isset($_GET["aktion"])) {
|
||||
if( $_GET["aktion"] == "AufrufzurLoeschung"){
|
||||
|
||||
|
||||
$today = date("Y-m-d");
|
||||
$yesterday = Date('Y-m-d', strtotime('-1 day'));
|
||||
$yesteryesterday = Date('Y-m-d', strtotime('-2 days'));
|
||||
$querytermin = mysqli_query($con, "SELECT * FROM impftermin INNER JOIN timeslots ON impftermin.timeid = timeslots.timeid WHERE date_created <= '". $yesteryesterday . "' AND checked = '0'");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$terminid = $rowtermin["terminid"];
|
||||
$hash = $rowtermin["hash"];
|
||||
$userid = $rowtermin["userid"];
|
||||
$timeid = $rowtermin["timeid"];
|
||||
$query = mysqli_query($con, "SELECT * FROM user WHERE userid ='". $userid . "'");
|
||||
$row = $query->fetch_assoc();
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$jahrgang = $row["jahrgang"];
|
||||
$mail = $row["mail"];
|
||||
$tele = $row["tele"];
|
||||
|
||||
echo "Löschen Id $terminid <br>";
|
||||
|
||||
$datum = date("d.m.Y", strtotime($row["date"]));
|
||||
$start = substr($row["start"],0, 5);
|
||||
$ende = substr($row["ende"],0, 5);
|
||||
$Zeitanzeige = $datum . " " . $start. " - " . $ende;
|
||||
$queryloeschen = mysqli_query($con, "Update impftermin SET checked='5' WHERE terminid = '". $terminid . "' ");
|
||||
|
||||
// Impfdosen um einen erhöhen
|
||||
$query = mysqli_query($con, "Select impfdosen FROM timeslots WHERE timeid='".$timeid."'");
|
||||
$row = mysqli_fetch_assoc($query);
|
||||
$dosen = $row["impfdosen"] + 1;
|
||||
$query = mysqli_query($con, "Update timeslots SET impfdosen='".$dosen ."' WHERE timeid ='".$timeid."'");
|
||||
|
||||
if($queryloeschen){
|
||||
|
||||
/*
|
||||
$dosen = $rowtermin["impfdosen"];
|
||||
$dosen = $dosen + 1;
|
||||
$query = mysqli_query($con, "Update timeslots SET impfdosen='".$dosen."' WHERE timeid ='".$timeid."'");
|
||||
|
||||
$nachricht = "<meta http-equiv='Content-Type' content='text/html charset=UTF-8' />
|
||||
Sehr geehrte(r) Herr/Frau $nachname,<br><br>
|
||||
|
||||
Ihre ausgewählter Impftermin wurde storniert, da Sie diesen nicht innerhalb von 24 Stunden bestätigt haben.<br>
|
||||
Termin: $Zeitanzeige<br>
|
||||
<br>
|
||||
Benötigen Sie einen neuen Termin, müssen Sie das Formular erneut ausfüllen.<br>
|
||||
|
||||
<h4>Bitte rufen Sie uns nicht wegen Impfterminen an! </h4>
|
||||
|
||||
<br>Vielen Dank für <b>Ihre Mithilfe</b>!<br>
|
||||
<br>
|
||||
Ihr Praxis-Team<br>
|
||||
der Praxis Creutzburg<br>
|
||||
|
||||
|
||||
|
||||
";
|
||||
$nachricht = iconv('UTF-8', 'CP1252//IGNORE', $nachricht);
|
||||
|
||||
//echo $nachricht;
|
||||
|
||||
echo "<h3>Nachricht abgeschickt!</h3> ";
|
||||
$betreff = 'Impftermin-Anfrage bei Praxis Creuzburg';
|
||||
|
||||
SendMailMessage($con, $mail, $betreff, $nachricht);
|
||||
*/
|
||||
SendMailMessageVorlage($pdo, "1", $terminid, "30");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,94 +1,94 @@
|
||||
<!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 - corona warteliste info</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$today =Date("Y-m-d");
|
||||
|
||||
$querytermin = mysqli_query($con, "SELECT warteid FROM warteliste WHERE checked = '0' AND (impfstoff= '1' OR impfstoff= '2' OR impfstoff= '3' OR impfstoff= '4' OR impfstoff= '6') ");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$warteid = $rowtermin["warteid"];
|
||||
|
||||
SendMailMessageVorlage($pdo, "2", $warteid , "22" );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<!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 - corona warteliste info</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$today =Date("Y-m-d");
|
||||
|
||||
$querytermin = mysqli_query($con, "SELECT warteid FROM warteliste WHERE checked = '0' AND (impfstoff= '1' OR impfstoff= '2' OR impfstoff= '3' OR impfstoff= '4' OR impfstoff= '6') ");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$warteid = $rowtermin["warteid"];
|
||||
|
||||
SendMailMessageVorlage($pdo, "2", $warteid , "22" );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+97
-97
@@ -1,98 +1,98 @@
|
||||
<!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 - Corona wateliste info mail</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$query = mysqli_query($con, "SELECT maximalmailprostunde FROM config ");
|
||||
$row = $query->fetch_assoc();
|
||||
$maximalmail = $row["maximalmailprostunde"];
|
||||
|
||||
$today =Date("Y-m-d");
|
||||
$yesteryesterday = Date('Y-m-d', strtotime('-14 days'));
|
||||
$querytermin = mysqli_query($con, "SELECT warteid FROM warteliste WHERE checked = '1' AND mailtime <='". $yesteryesterday . "' OR checked = '1' AND (impfstoff= '1' OR impfstoff= '2' OR impfstoff= '3' OR impfstoff= '4' OR impfstoff= '6') AND mailtime IS NULL LIMIT ". $maximalmail . " ");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$warteid = $rowtermin["warteid"];
|
||||
$queryupdate = mysqli_query($con, "UPDATE warteliste SET mailtime='" . date("Y-m-d h:i:s") . "' WHERE warteid ='". $warteid . "' ");
|
||||
SendMailMessageVorlage($pdo, "2", $warteid , "24" );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<!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 - Corona wateliste info mail</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$query = mysqli_query($con, "SELECT maximalmailprostunde FROM config ");
|
||||
$row = $query->fetch_assoc();
|
||||
$maximalmail = $row["maximalmailprostunde"];
|
||||
|
||||
$today =Date("Y-m-d");
|
||||
$yesteryesterday = Date('Y-m-d', strtotime('-14 days'));
|
||||
$querytermin = mysqli_query($con, "SELECT warteid FROM warteliste WHERE checked = '1' AND mailtime <='". $yesteryesterday . "' OR checked = '1' AND (impfstoff= '1' OR impfstoff= '2' OR impfstoff= '3' OR impfstoff= '4' OR impfstoff= '6') AND mailtime IS NULL LIMIT ". $maximalmail . " ");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$warteid = $rowtermin["warteid"];
|
||||
$queryupdate = mysqli_query($con, "UPDATE warteliste SET mailtime='" . date("Y-m-d h:i:s") . "' WHERE warteid ='". $warteid . "' ");
|
||||
SendMailMessageVorlage($pdo, "2", $warteid , "24" );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/impfwarteliste.php';
|
||||
require_once __DIR__ . '/impfwarteliste.php';
|
||||
|
||||
+98
-98
@@ -1,99 +1,99 @@
|
||||
<!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 - corona warteliste loeschung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
if(isset($_GET["aktion"])) {
|
||||
if( $_GET["aktion"] == "AufrufzurLoeschung"){
|
||||
$today =Date("Y-m-d");
|
||||
$yesteryesterday = Date('Y-m-d', strtotime('-10 days'));
|
||||
$querytermin = mysqli_query($con, "SELECT warteid FROM warteliste WHERE checked = '0' AND date_created <= '" . $yesteryesterday . "'");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$warteid = $rowtermin["warteid"];
|
||||
$queryloeschen = mysqli_query($con, "DELETE FROM warteliste WHERE warteid = '". $warteid . "' ");
|
||||
|
||||
|
||||
|
||||
if($queryloeschen){
|
||||
SendMailMessageVorlage($pdo, "2", $warteid , "23" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<!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 - corona warteliste loeschung</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">
|
||||
<header>
|
||||
<img src="gif/logo-arzt-creutzburg-coppen.gif" align="left" alt="Praxis Logo Creutzburg, Facharzt für innere Medizin, Schloßstr. 18, 31863 Coppenbrügge, Sprechzeit 8-11:00 Uhr, Tel. 05156 8125" />
|
||||
<h2>Impftermin online anfordern erfolgreich</h2>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
if(isset($_GET["aktion"])) {
|
||||
if( $_GET["aktion"] == "AufrufzurLoeschung"){
|
||||
$today =Date("Y-m-d");
|
||||
$yesteryesterday = Date('Y-m-d', strtotime('-10 days'));
|
||||
$querytermin = mysqli_query($con, "SELECT warteid FROM warteliste WHERE checked = '0' AND date_created <= '" . $yesteryesterday . "'");
|
||||
while ($rowtermin = $querytermin->fetch_assoc()) {
|
||||
$warteid = $rowtermin["warteid"];
|
||||
$queryloeschen = mysqli_query($con, "DELETE FROM warteliste WHERE warteid = '". $warteid . "' ");
|
||||
|
||||
|
||||
|
||||
if($queryloeschen){
|
||||
SendMailMessageVorlage($pdo, "2", $warteid , "23" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a href="impfanmeldung.php" class="button">Impftermin sichern</a>
|
||||
<br><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.<br>
|
||||
Elektronische Nachrichten können von Dritten gelesen werden. Bei Bedenken nutzen Sie unsere Rezepthotline für alle Serviceleistungen: 05156 99 03 77
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+164
-164
@@ -1,164 +1,164 @@
|
||||
<?php
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
use PHPMailer\PHPMailer\Exception;
|
||||
|
||||
require 'PHPMailer/src/Exception.php';
|
||||
require 'PHPMailer/src/PHPMailer.php';
|
||||
require 'PHPMailer/src/SMTP.php';
|
||||
|
||||
|
||||
|
||||
### Togo Termine anlegen
|
||||
|
||||
function gototerminanlegung() {
|
||||
|
||||
global $pdo;
|
||||
|
||||
$statementtermin = $pdo->prepare("SELECT * FROM togo_terminvorgaben");
|
||||
$statementtermin->execute();
|
||||
foreach ($statementtermin as $row) {
|
||||
$togovorgabenid = $row["vorgabenid"];
|
||||
$togodate = $row["date"];
|
||||
$togostart = $row["start"];
|
||||
$togoende = $row["ende"];
|
||||
$standort = $row["standort"];
|
||||
$error = $row["error"];
|
||||
$warning = $row["warning"];
|
||||
$date = new DateTime();
|
||||
if($togodate == "Mo"){
|
||||
$date->modify('next monday');
|
||||
|
||||
}elseif($togodate == "Di"){
|
||||
$$date->modify('next tuesday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Mi"){
|
||||
$date->modify('next wednesday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Do"){
|
||||
$date->modify('next thursday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Fr"){
|
||||
$date->modify('next friday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Sa"){
|
||||
$date->modify('next saturday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "so"){
|
||||
$date->modify('next sunday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}else{
|
||||
$ausgabedate = "error";
|
||||
}
|
||||
$nextday = $date->format('Y-m-d');
|
||||
|
||||
$i=0;
|
||||
while($i < 4){
|
||||
|
||||
if($i!=0){
|
||||
#$nextday = date('Y-m-d', strtotime($nextday .' +7 day'));
|
||||
// Create a new DateTime object
|
||||
$currentDate = new DateTime($nextday);
|
||||
$datetempz = $currentDate->add(new DateInterval('P7D'));
|
||||
//Get yesterday date
|
||||
$nextday = $datetempz->format('Y-m-d');
|
||||
|
||||
|
||||
}
|
||||
$statementuser = $pdo->prepare("SELECT terminid FROM togo_termin WHERE date=:date AND start=:start AND end=:end AND standort=:standort");
|
||||
$statementuser->execute(array('date' => $nextday , 'start' => $togostart, 'end' => $togoende , 'standort' => $standort ));
|
||||
|
||||
$count = $statementuser->rowCount();
|
||||
if($count == 0){
|
||||
$insert = $pdo->prepare("INSERT INTO togo_termin (date, start, end,standort,error,warning) VALUES (:date, :start, :end,:standort, :error, :warning)");
|
||||
$insert->execute(array('date' => $nextday , 'start' => $togostart, 'end' => $togoende , 'standort' => $standort, 'error' => $error , 'warning' => $warning ));
|
||||
$userid = $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function SendMailMessageSilent($con, $empfaenger, $betreff, $body){
|
||||
|
||||
// LOGIN CONFIG AUSLESEN
|
||||
$queryconfig = mysqli_query($con, "Select * FROM config");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
|
||||
if($queryconfig->num_rows == 1){
|
||||
$row = mysqli_fetch_assoc($queryconfig);
|
||||
$userid = $row["mailserver"];
|
||||
echo $userid;
|
||||
}
|
||||
$mailserver = $rowconfig["mailserver"];
|
||||
$mailUsername = $rowconfig["mailUsername"];
|
||||
$mailPassword = $rowconfig["mailPassword"];
|
||||
$mailPort = $rowconfig["mailPort"];
|
||||
$mailFrom = $rowconfig["mailFrom"];
|
||||
$mailFromName = $rowconfig["mailFromName"];
|
||||
$mailSMTPSecure = $rowconfig["mailSMTPSecure"];
|
||||
|
||||
|
||||
$body = iconv('UTF-8', 'CP1252//IGNORE', $body);
|
||||
$betreff = iconv('UTF-8', 'CP1252//IGNORE', $betreff);
|
||||
//$mail = new PHPMailer(true);
|
||||
|
||||
|
||||
$mail = new PHPMailer(true);
|
||||
try {
|
||||
//Server settings
|
||||
$mail->SMTPDebug = 0; // Enable verbose debug output
|
||||
$mail->isSMTP(); // Set mailer to use SMTP
|
||||
//$mail->Host = 'vwp0583.webpack.hosteurope.de'; // Specify main and backup SMTP servers
|
||||
$mail->Host = $mailserver;
|
||||
$mail->SMTPAuth = true; // Enable SMTP authentication
|
||||
//$mail->Username = 'wp1085322-creutzburg'; // SMTP username
|
||||
//$mail->Password = 'praxis.cr'; // SMTP password
|
||||
$mail->Username = $mailUsername;
|
||||
$mail->Password = $mailPassword;
|
||||
$mail->SMTPSecure = $mailSMTPSecure; // Enable TLS encryption, `ssl` also accepted
|
||||
//$mail->Port = 587; // TCP port to connect to
|
||||
$mail->Port = $mailPort;
|
||||
//Recipients
|
||||
$mail->setFrom($mailFrom , $mailFromName);
|
||||
#$mail->addAddress('ccreutzburg@live.de', 'Joe User'); // Add a recipient
|
||||
$mail->addAddress($empfaenger); // Name is optional
|
||||
//$mail->addReplyTo('kontakt@praxis-creutzburg.de', 'Praxis Creutzburg');
|
||||
//$mail->addBCC('Arzt@praxis-creutzburg.de');
|
||||
//$mail->addBCC("praxis@balanceacademie.de");
|
||||
//Attachments
|
||||
#$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
|
||||
#$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
|
||||
|
||||
//Content
|
||||
$mail->isHTML(true); // Set email format to HTML
|
||||
$mail->Subject = $betreff;
|
||||
$mail->Body = $body;
|
||||
$mail->AltBody = $body;
|
||||
//$mail->charSet = "UTF-8";
|
||||
//$mail->Encoding = 'base64';
|
||||
|
||||
$mail->send();
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
use PHPMailer\PHPMailer\Exception;
|
||||
|
||||
require 'PHPMailer/src/Exception.php';
|
||||
require 'PHPMailer/src/PHPMailer.php';
|
||||
require 'PHPMailer/src/SMTP.php';
|
||||
|
||||
|
||||
|
||||
### Togo Termine anlegen
|
||||
|
||||
function gototerminanlegung() {
|
||||
|
||||
global $pdo;
|
||||
|
||||
$statementtermin = $pdo->prepare("SELECT * FROM togo_terminvorgaben");
|
||||
$statementtermin->execute();
|
||||
foreach ($statementtermin as $row) {
|
||||
$togovorgabenid = $row["vorgabenid"];
|
||||
$togodate = $row["date"];
|
||||
$togostart = $row["start"];
|
||||
$togoende = $row["ende"];
|
||||
$standort = $row["standort"];
|
||||
$error = $row["error"];
|
||||
$warning = $row["warning"];
|
||||
$date = new DateTime();
|
||||
if($togodate == "Mo"){
|
||||
$date->modify('next monday');
|
||||
|
||||
}elseif($togodate == "Di"){
|
||||
$$date->modify('next tuesday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Mi"){
|
||||
$date->modify('next wednesday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Do"){
|
||||
$date->modify('next thursday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Fr"){
|
||||
$date->modify('next friday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "Sa"){
|
||||
$date->modify('next saturday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}elseif($togodate == "so"){
|
||||
$date->modify('next sunday');
|
||||
#$nextday = date('Y-m-d', $nextTuesday);
|
||||
}else{
|
||||
$ausgabedate = "error";
|
||||
}
|
||||
$nextday = $date->format('Y-m-d');
|
||||
|
||||
$i=0;
|
||||
while($i < 4){
|
||||
|
||||
if($i!=0){
|
||||
#$nextday = date('Y-m-d', strtotime($nextday .' +7 day'));
|
||||
// Create a new DateTime object
|
||||
$currentDate = new DateTime($nextday);
|
||||
$datetempz = $currentDate->add(new DateInterval('P7D'));
|
||||
//Get yesterday date
|
||||
$nextday = $datetempz->format('Y-m-d');
|
||||
|
||||
|
||||
}
|
||||
$statementuser = $pdo->prepare("SELECT terminid FROM togo_termin WHERE date=:date AND start=:start AND end=:end AND standort=:standort");
|
||||
$statementuser->execute(array('date' => $nextday , 'start' => $togostart, 'end' => $togoende , 'standort' => $standort ));
|
||||
|
||||
$count = $statementuser->rowCount();
|
||||
if($count == 0){
|
||||
$insert = $pdo->prepare("INSERT INTO togo_termin (date, start, end,standort,error,warning) VALUES (:date, :start, :end,:standort, :error, :warning)");
|
||||
$insert->execute(array('date' => $nextday , 'start' => $togostart, 'end' => $togoende , 'standort' => $standort, 'error' => $error , 'warning' => $warning ));
|
||||
$userid = $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function SendMailMessageSilent($con, $empfaenger, $betreff, $body){
|
||||
|
||||
// LOGIN CONFIG AUSLESEN
|
||||
$queryconfig = mysqli_query($con, "Select * FROM config");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
|
||||
if($queryconfig->num_rows == 1){
|
||||
$row = mysqli_fetch_assoc($queryconfig);
|
||||
$userid = $row["mailserver"];
|
||||
echo $userid;
|
||||
}
|
||||
$mailserver = $rowconfig["mailserver"];
|
||||
$mailUsername = $rowconfig["mailUsername"];
|
||||
$mailPassword = $rowconfig["mailPassword"];
|
||||
$mailPort = $rowconfig["mailPort"];
|
||||
$mailFrom = $rowconfig["mailFrom"];
|
||||
$mailFromName = $rowconfig["mailFromName"];
|
||||
$mailSMTPSecure = $rowconfig["mailSMTPSecure"];
|
||||
|
||||
|
||||
$body = iconv('UTF-8', 'CP1252//IGNORE', $body);
|
||||
$betreff = iconv('UTF-8', 'CP1252//IGNORE', $betreff);
|
||||
//$mail = new PHPMailer(true);
|
||||
|
||||
|
||||
$mail = new PHPMailer(true);
|
||||
try {
|
||||
//Server settings
|
||||
$mail->SMTPDebug = 0; // Enable verbose debug output
|
||||
$mail->isSMTP(); // Set mailer to use SMTP
|
||||
//$mail->Host = 'vwp0583.webpack.hosteurope.de'; // Specify main and backup SMTP servers
|
||||
$mail->Host = $mailserver;
|
||||
$mail->SMTPAuth = true; // Enable SMTP authentication
|
||||
//$mail->Username = 'wp1085322-creutzburg'; // SMTP username
|
||||
//$mail->Password = 'praxis.cr'; // SMTP password
|
||||
$mail->Username = $mailUsername;
|
||||
$mail->Password = $mailPassword;
|
||||
$mail->SMTPSecure = $mailSMTPSecure; // Enable TLS encryption, `ssl` also accepted
|
||||
//$mail->Port = 587; // TCP port to connect to
|
||||
$mail->Port = $mailPort;
|
||||
//Recipients
|
||||
$mail->setFrom($mailFrom , $mailFromName);
|
||||
#$mail->addAddress('ccreutzburg@live.de', 'Joe User'); // Add a recipient
|
||||
$mail->addAddress($empfaenger); // Name is optional
|
||||
//$mail->addReplyTo('kontakt@praxis-creutzburg.de', 'Praxis Creutzburg');
|
||||
//$mail->addBCC('Arzt@praxis-creutzburg.de');
|
||||
//$mail->addBCC("praxis@balanceacademie.de");
|
||||
//Attachments
|
||||
#$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
|
||||
#$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
|
||||
|
||||
//Content
|
||||
$mail->isHTML(true); // Set email format to HTML
|
||||
$mail->Subject = $betreff;
|
||||
$mail->Body = $body;
|
||||
$mail->AltBody = $body;
|
||||
//$mail->charSet = "UTF-8";
|
||||
//$mail->Encoding = 'base64';
|
||||
|
||||
$mail->send();
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
+36
-36
@@ -1,37 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Patientsuche
|
||||
* @copyright Copyright (C) 2021 ctb-it.de Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
include("config.inc.php");
|
||||
|
||||
|
||||
/* retrieve the search term that autocomplete sends */
|
||||
$term = trim(strip_tags($_GET['term']));
|
||||
|
||||
$a_json = array();
|
||||
$a_json_row = array();
|
||||
|
||||
$sql = 'SELECT * FROM persons WHERE vorname LIKE "%' . $term . '%" OR nachname LIKE "%' . $term . '%" OR email LIKE "%' . $term . '%" OR tele LIKE "%' . $term . '%" ORDER BY nachname, vorname ';
|
||||
foreach ($pdo->query($sql) as $row) {
|
||||
|
||||
$userid = stripslashes($row['person_id']);
|
||||
$name = stripslashes($row['nachname']);
|
||||
$vorname = stripslashes($row['vorname']);
|
||||
$geburtstag = stripslashes($row['geburtstag']);
|
||||
$email = htmlentities(stripslashes($row['email']));
|
||||
$tele = htmlentities(stripslashes($row['tele']));
|
||||
$a_json_row["id"] = $userid;
|
||||
$a_json_row["value"] = $vorname.' '.$name.' - '.$geburtstag.' - '.$email.' - '.$tele;
|
||||
$a_json_row["label"] = $vorname.' '.$name.' - '.$geburtstag.' - '.$email.' - '.$tele;
|
||||
array_push($a_json, $a_json_row);
|
||||
|
||||
}
|
||||
// jQuery wants JSON data
|
||||
echo json_encode($a_json);
|
||||
|
||||
<?php
|
||||
/**
|
||||
* @package Patientsuche
|
||||
* @copyright Copyright (C) 2021 ctb-it.de Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
include("config.inc.php");
|
||||
|
||||
|
||||
/* retrieve the search term that autocomplete sends */
|
||||
$term = trim(strip_tags($_GET['term']));
|
||||
|
||||
$a_json = array();
|
||||
$a_json_row = array();
|
||||
|
||||
$sql = 'SELECT * FROM persons WHERE vorname LIKE "%' . $term . '%" OR nachname LIKE "%' . $term . '%" OR email LIKE "%' . $term . '%" OR tele LIKE "%' . $term . '%" ORDER BY nachname, vorname ';
|
||||
foreach ($pdo->query($sql) as $row) {
|
||||
|
||||
$userid = stripslashes($row['person_id']);
|
||||
$name = stripslashes($row['nachname']);
|
||||
$vorname = stripslashes($row['vorname']);
|
||||
$geburtstag = stripslashes($row['geburtstag']);
|
||||
$email = htmlentities(stripslashes($row['email']));
|
||||
$tele = htmlentities(stripslashes($row['tele']));
|
||||
$a_json_row["id"] = $userid;
|
||||
$a_json_row["value"] = $vorname.' '.$name.' - '.$geburtstag.' - '.$email.' - '.$tele;
|
||||
$a_json_row["label"] = $vorname.' '.$name.' - '.$geburtstag.' - '.$email.' - '.$tele;
|
||||
array_push($a_json, $a_json_row);
|
||||
|
||||
}
|
||||
// jQuery wants JSON data
|
||||
echo json_encode($a_json);
|
||||
|
||||
?>
|
||||
+119
-119
@@ -1,120 +1,120 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Patientsuche
|
||||
* @copyright Copyright (C) 2021 ctb-it.de Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
include("config.inc.php");
|
||||
|
||||
|
||||
if(isset($_POST["timeid"])){
|
||||
$timeid=$_POST["timeid"];
|
||||
|
||||
$statementtermin = $pdo->prepare("SELECT impfstoff, date,terminart, ZIminimal, ZImaximal, ZIaktiv, ZIbiontech, ZIastra, ZImoderna FROM timeslots INNER JOIN impfstoff ON timeslots.impfstoff = impfstoff.impfid WHERE timeid = :timeid");
|
||||
$statementtermin->execute(array('timeid' => $timeid));
|
||||
$rowtime = $statementtermin->fetch(PDO::FETCH_ASSOC);
|
||||
$ZIaktiv = $rowtime["ZIaktiv"];
|
||||
$ZIminimal = $rowtime["ZIminimal"];
|
||||
$ZImaximal = $rowtime["ZImaximal"];
|
||||
$ZIbiontech = $rowtime["ZIbiontech"];
|
||||
$ZIastra = $rowtime["ZIastra"];
|
||||
$ZImoderna = $rowtime["ZImoderna"];
|
||||
$impfname = $rowtime["impfname"];
|
||||
$terminart = $rowtime["terminart"];
|
||||
|
||||
$minimaldate = date_create($rowtime["date"]);
|
||||
date_add($minimaldate, date_interval_create_from_date_string($ZIminimal . ' days'));
|
||||
$minimaldate = date_format($minimaldate, 'Y-m-d');
|
||||
$maximaldate = date_create($rowtime["date"]);
|
||||
date_add($maximaldate, date_interval_create_from_date_string($ZImaximal . ' days'));
|
||||
$maximaldate = date_format($maximaldate, 'Y-m-d');
|
||||
$impfstoffstring = "";
|
||||
$terminartstring = "";
|
||||
|
||||
if($ZIaktiv && ($terminart == 1 || $terminart == 0) ){
|
||||
if($ZIbiontech){
|
||||
if($impfstoffstring == ""){
|
||||
$impfstoffstring = $impfstoffstring . "(impfstoff='3'";
|
||||
}else{
|
||||
$impfstoffstring = $impfstoffstring . " OR impfstoff='3'";
|
||||
}
|
||||
}
|
||||
if($ZIastra){
|
||||
if($impfstoffstring == ""){
|
||||
$impfstoffstring = $impfstoffstring . "(impfstoff='2'";
|
||||
}else{
|
||||
$impfstoffstring = $impfstoffstring . " OR impfstoff='2'";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if($ZImoderna){
|
||||
if($impfstoffstring == ""){
|
||||
$impfstoffstring = $impfstoffstring . "(impfstoff='5'";
|
||||
}else{
|
||||
$impfstoffstring = $impfstoffstring . " OR impfstoff='5'";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$impfstoffstring = $impfstoffstring . ")";
|
||||
$terminartstring = " AND (terminart='1' OR terminart='3' OR terminart='5')";
|
||||
|
||||
|
||||
|
||||
$statement = $pdo->prepare("SELECT date,start,ende,impfdosen,timeid,impfstoff FROM timeslots WHERE date>= '$minimaldate' AND date<='$maximaldate' AND $impfstoffstring $terminartstring AND impfdosen > 0");
|
||||
$statement->execute();
|
||||
$count = $statement->rowCount();
|
||||
|
||||
if($count == 0){
|
||||
echo"<h3>Zweitimpfung</h3><b>Aktuell stehen bei uns keine Termine für die Zweitimpfung zur Verfügung.</b><br>Bitte kümmern Sie sich selbstständig, um einen Termin für die Zweitimpfung.<br>Sobald wir Termine für die Zweitimpfung zur Verfügung haben, finden Sie diese auch auf dieser Webseite.<br><h4>Sehen Sie von weiteren telefonischen Anfragen ab!</h4><br>";
|
||||
}else{
|
||||
?>
|
||||
<div class="select-wrapper">
|
||||
<label for="Zweitimpfung">Die Zweitimpfung nehme ich am folgenden Termin wahr:</label>
|
||||
<select name="Zweitimpfung" id="Zweitimpfung" required onchange="checkTerminzeitraumZweit()">
|
||||
<?php
|
||||
|
||||
//echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
|
||||
echo '<option value="">- Terminzeitraum </option>';
|
||||
|
||||
foreach ($statement as $row) {
|
||||
$datum = date("d.m.Y", strtotime($row["date"]));
|
||||
$start = substr($row["start"],0, 5);
|
||||
$ende = substr($row["ende"],0, 5);
|
||||
$dosenanzahl = $row["impfdosen"];
|
||||
$timeid = $row["timeid"];
|
||||
$impfid = $row["impfstoff"];
|
||||
|
||||
$statementtermin = $pdo->prepare("SELECT impfname FROM impfstoff WHERE impfid =:impfid");
|
||||
$statementtermin->execute(array('impfid' => $impfid));
|
||||
$rowimpf = $statementtermin->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
|
||||
$impfstofftext = $rowimpf["impfname"];
|
||||
|
||||
$value = "$timeid";
|
||||
$anzeige = "$datum - $start-$ende - $dosenanzahl Plätze frei - $impfstofftext";
|
||||
echo '<option value="' . $value . '">' . $anzeige . '</option>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</select>
|
||||
<div id="TerminzeitrauminfoZweit"></div><br>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
<?php
|
||||
/**
|
||||
* @package Patientsuche
|
||||
* @copyright Copyright (C) 2021 ctb-it.de Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
include("config.inc.php");
|
||||
|
||||
|
||||
if(isset($_POST["timeid"])){
|
||||
$timeid=$_POST["timeid"];
|
||||
|
||||
$statementtermin = $pdo->prepare("SELECT impfstoff, date,terminart, ZIminimal, ZImaximal, ZIaktiv, ZIbiontech, ZIastra, ZImoderna FROM timeslots INNER JOIN impfstoff ON timeslots.impfstoff = impfstoff.impfid WHERE timeid = :timeid");
|
||||
$statementtermin->execute(array('timeid' => $timeid));
|
||||
$rowtime = $statementtermin->fetch(PDO::FETCH_ASSOC);
|
||||
$ZIaktiv = $rowtime["ZIaktiv"];
|
||||
$ZIminimal = $rowtime["ZIminimal"];
|
||||
$ZImaximal = $rowtime["ZImaximal"];
|
||||
$ZIbiontech = $rowtime["ZIbiontech"];
|
||||
$ZIastra = $rowtime["ZIastra"];
|
||||
$ZImoderna = $rowtime["ZImoderna"];
|
||||
$impfname = $rowtime["impfname"];
|
||||
$terminart = $rowtime["terminart"];
|
||||
|
||||
$minimaldate = date_create($rowtime["date"]);
|
||||
date_add($minimaldate, date_interval_create_from_date_string($ZIminimal . ' days'));
|
||||
$minimaldate = date_format($minimaldate, 'Y-m-d');
|
||||
$maximaldate = date_create($rowtime["date"]);
|
||||
date_add($maximaldate, date_interval_create_from_date_string($ZImaximal . ' days'));
|
||||
$maximaldate = date_format($maximaldate, 'Y-m-d');
|
||||
$impfstoffstring = "";
|
||||
$terminartstring = "";
|
||||
|
||||
if($ZIaktiv && ($terminart == 1 || $terminart == 0) ){
|
||||
if($ZIbiontech){
|
||||
if($impfstoffstring == ""){
|
||||
$impfstoffstring = $impfstoffstring . "(impfstoff='3'";
|
||||
}else{
|
||||
$impfstoffstring = $impfstoffstring . " OR impfstoff='3'";
|
||||
}
|
||||
}
|
||||
if($ZIastra){
|
||||
if($impfstoffstring == ""){
|
||||
$impfstoffstring = $impfstoffstring . "(impfstoff='2'";
|
||||
}else{
|
||||
$impfstoffstring = $impfstoffstring . " OR impfstoff='2'";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if($ZImoderna){
|
||||
if($impfstoffstring == ""){
|
||||
$impfstoffstring = $impfstoffstring . "(impfstoff='5'";
|
||||
}else{
|
||||
$impfstoffstring = $impfstoffstring . " OR impfstoff='5'";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$impfstoffstring = $impfstoffstring . ")";
|
||||
$terminartstring = " AND (terminart='1' OR terminart='3' OR terminart='5')";
|
||||
|
||||
|
||||
|
||||
$statement = $pdo->prepare("SELECT date,start,ende,impfdosen,timeid,impfstoff FROM timeslots WHERE date>= '$minimaldate' AND date<='$maximaldate' AND $impfstoffstring $terminartstring AND impfdosen > 0");
|
||||
$statement->execute();
|
||||
$count = $statement->rowCount();
|
||||
|
||||
if($count == 0){
|
||||
echo"<h3>Zweitimpfung</h3><b>Aktuell stehen bei uns keine Termine für die Zweitimpfung zur Verfügung.</b><br>Bitte kümmern Sie sich selbstständig, um einen Termin für die Zweitimpfung.<br>Sobald wir Termine für die Zweitimpfung zur Verfügung haben, finden Sie diese auch auf dieser Webseite.<br><h4>Sehen Sie von weiteren telefonischen Anfragen ab!</h4><br>";
|
||||
}else{
|
||||
?>
|
||||
<div class="select-wrapper">
|
||||
<label for="Zweitimpfung">Die Zweitimpfung nehme ich am folgenden Termin wahr:</label>
|
||||
<select name="Zweitimpfung" id="Zweitimpfung" required onchange="checkTerminzeitraumZweit()">
|
||||
<?php
|
||||
|
||||
//echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
|
||||
echo '<option value="">- Terminzeitraum </option>';
|
||||
|
||||
foreach ($statement as $row) {
|
||||
$datum = date("d.m.Y", strtotime($row["date"]));
|
||||
$start = substr($row["start"],0, 5);
|
||||
$ende = substr($row["ende"],0, 5);
|
||||
$dosenanzahl = $row["impfdosen"];
|
||||
$timeid = $row["timeid"];
|
||||
$impfid = $row["impfstoff"];
|
||||
|
||||
$statementtermin = $pdo->prepare("SELECT impfname FROM impfstoff WHERE impfid =:impfid");
|
||||
$statementtermin->execute(array('impfid' => $impfid));
|
||||
$rowimpf = $statementtermin->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
|
||||
$impfstofftext = $rowimpf["impfname"];
|
||||
|
||||
$value = "$timeid";
|
||||
$anzeige = "$datum - $start-$ende - $dosenanzahl Plätze frei - $impfstofftext";
|
||||
echo '<option value="' . $value . '">' . $anzeige . '</option>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</select>
|
||||
<div id="TerminzeitrauminfoZweit"></div><br>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,179 +1,179 @@
|
||||
<!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 - Startseite</title>
|
||||
</head>
|
||||
<body class="landing">
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header" class="alt">
|
||||
<?php
|
||||
|
||||
include('menu.php');
|
||||
include_once("inc/config.inc.php");
|
||||
include_once("inc/functions.inc.php");
|
||||
include_once('inc/functions.impfen.inc.php');
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<!-- Banner -->
|
||||
<section id="banner">
|
||||
|
||||
|
||||
|
||||
<h2>Praxis Heiner Creutzburg</h2>
|
||||
<h3>Facharzt für Innere Medizin, hausärztliche Versorgung</h3>
|
||||
<?php
|
||||
$ausgabe = checkurlaub();
|
||||
echo $ausgabe;
|
||||
?>
|
||||
<div id=news class="container" style="background-color: rgba(85, 85, 85, 0.6);padding:5px;">
|
||||
|
||||
<?php
|
||||
#### Inhalt Änderung nicht mehr hier durchführen sondern auf der Adminseite: https://www.praxis-creutzburg.de/admin/webseitenadmin.php
|
||||
#### Punkt Infobox Startseite Praxis
|
||||
|
||||
|
||||
### Vordefinierte InhaltsID
|
||||
$inhaltid = "2";
|
||||
|
||||
$queryconfig = mysqli_query($con, "Select webseitentitel,inhalt FROM webseiteninhalt WHERE inhaltid='$inhaltid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$webseitentitel = $rowconfig["webseitentitel"];
|
||||
$inhalt = $rowconfig["inhalt"];
|
||||
|
||||
|
||||
echo $inhalt;
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
<ul class="actions">
|
||||
<li><a href="dienstleistung.php#notfall" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Notfallsprechstunde</a></li>
|
||||
<li><a href="formulare.php" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Anfragen</a></li>
|
||||
|
||||
<li><a href="termine.php" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Termine</a></li>
|
||||
|
||||
<li><a href="rezepte.php" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Rezepte</a></li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
<!--
|
||||
<ul class="actions">
|
||||
<br><br>
|
||||
<li><a href="stellenangebote.php" class="button alt" style="background-color: rgba(252, 94, 0, 0.6);">Wir suchen Unterstützung für unser Team!</a></li>
|
||||
|
||||
</ul>
|
||||
-->
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- Main -->
|
||||
<section id="main" class="container">
|
||||
|
||||
<section class="box special">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo geplantenUrlaubanzeigen();
|
||||
echo "<br>";
|
||||
?>
|
||||
|
||||
<h2> Aktuelle Informationen</h2>
|
||||
<?php
|
||||
#akutelle Informationen
|
||||
$inhaltid = "12";
|
||||
$queryconfig = mysqli_query($con, "Select webseitentitel,inhalt FROM webseiteninhalt WHERE inhaltid='$inhaltid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$webseitentitel = $rowconfig["webseitentitel"];
|
||||
$text = $rowconfig["inhalt"];
|
||||
|
||||
echo $text;
|
||||
|
||||
|
||||
?>
|
||||
<hr>
|
||||
<div id="marquee-cont">
|
||||
<marquee onmouseover="this.stop();" onmouseout="this.start();" id='scroll'>
|
||||
+++<? echo $Laufband1 ?>+++ +++<? echo $Laufband2 ?>+++ +++<? echo $Laufband3 ?>+++ +++<? echo $Laufband4 ?>+++ +++<? echo $Laufband5 ?>+++ +++<? echo $Laufband6 ?>+++
|
||||
</marquee>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
<h3>Wir impfen gegen Gürtelrose, Grippe, Corona und andere Erkrankungen! Anmeldung online! Derzeit Beratung auch in der normalen Sprechstunde.</h3>
|
||||
<a href="impfanmeldung.php" class="button alt" style="background-color: rgba(85, 85, 85, 0.6);color: white;" >Impftermin sichern</a>
|
||||
<br>
|
||||
<a href="grippeimpfwarteliste.php" class="button alt" style="background-color: rgba(85, 85, 85, 0.6);color: white;" >Warteliste Grippeschutzimpfung</a>
|
||||
<br><br>
|
||||
<hr>
|
||||
<h3>Haben Sie Fragen?</h3>
|
||||
Nutzen Sie unsere Formulare für eine Anfrage an unser Praxisteam.<br><br>
|
||||
<a href="formulare.php" class="button alt" style="background-color: rgba(85, 85, 85, 0.6);color: white;" >Frage stellen</a>
|
||||
<br><br>
|
||||
<hr>
|
||||
|
||||
|
||||
<!-- laufband -->
|
||||
<div id="marquee-cont">
|
||||
<marquee onmouseover="this.stop();" onmouseout="this.start();" id='scroll'>
|
||||
+++<? echo $Laufband1 ?>+++ +++<? echo $Laufband2 ?>+++ +++<? echo $Laufband3 ?>+++ +++<? echo $Laufband4 ?>+++ +++<? echo $Laufband5 ?>+++ +++<? echo $Laufband6 ?>+++
|
||||
</marquee>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="service.php" class="button alt">Termine/absagen</a>
|
||||
|
||||
<a href="rezepte.php"class="button alt">Rezepte</a>
|
||||
|
||||
<a href="formulare.php"class="button alt">Anfrage</a>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
<!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 - Startseite</title>
|
||||
</head>
|
||||
<body class="landing">
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header" class="alt">
|
||||
<?php
|
||||
|
||||
include('menu.php');
|
||||
include_once("inc/config.inc.php");
|
||||
include_once("inc/functions.inc.php");
|
||||
include_once('inc/functions.impfen.inc.php');
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<!-- Banner -->
|
||||
<section id="banner">
|
||||
|
||||
|
||||
|
||||
<h2>Praxis Heiner Creutzburg</h2>
|
||||
<h3>Facharzt für Innere Medizin, hausärztliche Versorgung</h3>
|
||||
<?php
|
||||
$ausgabe = checkurlaub();
|
||||
echo $ausgabe;
|
||||
?>
|
||||
<div id=news class="container" style="background-color: rgba(85, 85, 85, 0.6);padding:5px;">
|
||||
|
||||
<?php
|
||||
#### Inhalt Änderung nicht mehr hier durchführen sondern auf der Adminseite: https://www.praxis-creutzburg.de/admin/webseitenadmin.php
|
||||
#### Punkt Infobox Startseite Praxis
|
||||
|
||||
|
||||
### Vordefinierte InhaltsID
|
||||
$inhaltid = "2";
|
||||
|
||||
$queryconfig = mysqli_query($con, "Select webseitentitel,inhalt FROM webseiteninhalt WHERE inhaltid='$inhaltid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$webseitentitel = $rowconfig["webseitentitel"];
|
||||
$inhalt = $rowconfig["inhalt"];
|
||||
|
||||
|
||||
echo $inhalt;
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
<ul class="actions">
|
||||
<li><a href="dienstleistung.php#notfall" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Notfallsprechstunde</a></li>
|
||||
<li><a href="formulare.php" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Anfragen</a></li>
|
||||
|
||||
<li><a href="termine.php" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Termine</a></li>
|
||||
|
||||
<li><a href="rezepte.php" class="button" style="background-color: rgba(85, 85, 85, 0.6);">Rezepte</a></li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
<!--
|
||||
<ul class="actions">
|
||||
<br><br>
|
||||
<li><a href="stellenangebote.php" class="button alt" style="background-color: rgba(252, 94, 0, 0.6);">Wir suchen Unterstützung für unser Team!</a></li>
|
||||
|
||||
</ul>
|
||||
-->
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- Main -->
|
||||
<section id="main" class="container">
|
||||
|
||||
<section class="box special">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo geplantenUrlaubanzeigen();
|
||||
echo "<br>";
|
||||
?>
|
||||
|
||||
<h2> Aktuelle Informationen</h2>
|
||||
<?php
|
||||
#akutelle Informationen
|
||||
$inhaltid = "12";
|
||||
$queryconfig = mysqli_query($con, "Select webseitentitel,inhalt FROM webseiteninhalt WHERE inhaltid='$inhaltid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$webseitentitel = $rowconfig["webseitentitel"];
|
||||
$text = $rowconfig["inhalt"];
|
||||
|
||||
echo $text;
|
||||
|
||||
|
||||
?>
|
||||
<hr>
|
||||
<div id="marquee-cont">
|
||||
<marquee onmouseover="this.stop();" onmouseout="this.start();" id='scroll'>
|
||||
+++<? echo $Laufband1 ?>+++ +++<? echo $Laufband2 ?>+++ +++<? echo $Laufband3 ?>+++ +++<? echo $Laufband4 ?>+++ +++<? echo $Laufband5 ?>+++ +++<? echo $Laufband6 ?>+++
|
||||
</marquee>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
<h3>Wir impfen gegen Gürtelrose, Grippe, Corona und andere Erkrankungen! Anmeldung online! Derzeit Beratung auch in der normalen Sprechstunde.</h3>
|
||||
<a href="impfanmeldung.php" class="button alt" style="background-color: rgba(85, 85, 85, 0.6);color: white;" >Impftermin sichern</a>
|
||||
<br>
|
||||
<a href="grippeimpfwarteliste.php" class="button alt" style="background-color: rgba(85, 85, 85, 0.6);color: white;" >Warteliste Grippeschutzimpfung</a>
|
||||
<br><br>
|
||||
<hr>
|
||||
<h3>Haben Sie Fragen?</h3>
|
||||
Nutzen Sie unsere Formulare für eine Anfrage an unser Praxisteam.<br><br>
|
||||
<a href="formulare.php" class="button alt" style="background-color: rgba(85, 85, 85, 0.6);color: white;" >Frage stellen</a>
|
||||
<br><br>
|
||||
<hr>
|
||||
|
||||
|
||||
<!-- laufband -->
|
||||
<div id="marquee-cont">
|
||||
<marquee onmouseover="this.stop();" onmouseout="this.start();" id='scroll'>
|
||||
+++<? echo $Laufband1 ?>+++ +++<? echo $Laufband2 ?>+++ +++<? echo $Laufband3 ?>+++ +++<? echo $Laufband4 ?>+++ +++<? echo $Laufband5 ?>+++ +++<? echo $Laufband6 ?>+++
|
||||
</marquee>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="service.php" class="button alt">Termine/absagen</a>
|
||||
|
||||
<a href="rezepte.php"class="button alt">Rezepte</a>
|
||||
|
||||
<a href="formulare.php"class="button alt">Anfrage</a>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+30
-30
@@ -1,30 +1,30 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
|
||||
if(check_admin()){
|
||||
echo "Admin";
|
||||
}else{
|
||||
echo "nicht Admin";
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
|
||||
include("templates/header.inc.php");
|
||||
|
||||
|
||||
if(check_admin()){
|
||||
echo "Admin";
|
||||
}else{
|
||||
echo "nicht Admin";
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
|
||||
+118
-118
@@ -1,56 +1,56 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
|
||||
include("templates/header.inc.php");
|
||||
?>
|
||||
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<?php
|
||||
if( is_checked_in_index() ){
|
||||
$user = check_intern_user();
|
||||
?>
|
||||
<h1>Interner Bereich</h1>
|
||||
|
||||
<p>Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich von <?php echo $organisationsname; ?>!<br><br></p>
|
||||
|
||||
|
||||
<?php
|
||||
if(!check_mailreg()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlt die Authentifizierung Ihres Kontos per E-Mail! Bitte authentifizieren Sie Ihre E-Mail-Adresse.<br>";
|
||||
echo "<form action='authmeldung.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='E-Mail Authentifizierung'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
if(!check_userdatenvorhanden()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlen noch Informationen in Ihrem Stammdaten. Bitte pflegen Sie die Daten nach, damit <br>";
|
||||
echo "<form action='settings.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='Stammdaten pflegen'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(check_mailreg() && check_userdatenvorhanden() ){
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
|
||||
include("templates/header.inc.php");
|
||||
?>
|
||||
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<?php
|
||||
if( is_checked_in_index() ){
|
||||
$user = check_intern_user();
|
||||
?>
|
||||
<h1>Interner Bereich</h1>
|
||||
|
||||
<p>Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich von <?php echo $organisationsname; ?>!<br><br></p>
|
||||
|
||||
|
||||
<?php
|
||||
if(!check_mailreg()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlt die Authentifizierung Ihres Kontos per E-Mail! Bitte authentifizieren Sie Ihre E-Mail-Adresse.<br>";
|
||||
echo "<form action='authmeldung.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='E-Mail Authentifizierung'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
if(!check_userdatenvorhanden()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlen noch Informationen in Ihrem Stammdaten. Bitte pflegen Sie die Daten nach, damit <br>";
|
||||
echo "<form action='settings.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='Stammdaten pflegen'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(check_mailreg() && check_userdatenvorhanden() ){
|
||||
?>
|
||||
<p>Neue Anfragen können Sie über diesen Button einreichen:<br><br></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="neueanfrage.php" role="button">Neue Anfragen erstellen</a></p><br><br>
|
||||
|
||||
@@ -58,69 +58,69 @@ if( is_checked_in_index() ){
|
||||
<p><a class="btn btn-primary btn-lg" href="impfwarteliste.php" role="button">Zur Impfwarteliste</a></p><br><br>
|
||||
|
||||
<p>Hier können Sie Ihre Anfragen einsehen. Die Antwort erhalten Sie per E-Mail.<br><br></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="meineanfragen.php" role="button">Meine Anfragen einsehen</a></p><br><br>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
}else{
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
}else{
|
||||
|
||||
?>
|
||||
|
||||
<h1>Interner Bereich</h1>
|
||||
|
||||
<p>Nach der Anmeldung können Sie Ihre Anfragen an <?php echo $organisationsname; ?> einsehen oder neue Anfragen erstellen.<br>
|
||||
Bevor Sie sich anmelden können, müssen Sie sich registieren.<br><br></p>
|
||||
<form action="login.php" method="post">
|
||||
<h2 class="form-signin-heading">Login</h2>
|
||||
|
||||
<?php
|
||||
if(isset($error_msg) && !empty($error_msg)) {
|
||||
echo $error_msg;
|
||||
}
|
||||
?>
|
||||
<label for="inputEmail" class="sr-only">E-Mail</label>
|
||||
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="E-Mail" value="<?php echo $email_value; ?>" required autofocus>
|
||||
<label for="inputPassword" class="sr-only">Passwort</label>
|
||||
<input type="password" name="passwort" id="inputPassword" class="form-control" placeholder="Passwort" required>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" value="remember-me" name="angemeldet_bleiben" value="1" checked> Angemeldet bleiben
|
||||
</label>
|
||||
</div>
|
||||
<br>
|
||||
<button class="btn btn-lg btn-primary " type="submit">Login</button>
|
||||
<br><br>
|
||||
<a href="passwortvergessen.php">Passwort vergessen</a>
|
||||
</form>
|
||||
|
||||
<br><br><br><br>
|
||||
|
||||
<p><a class="btn btn-primary " href="register.php" role="button">Jetzt registrieren</a></p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
<p><a class="btn btn-primary btn-lg" href="meineanfragen.php" role="button">Meine Anfragen einsehen</a></p><br><br>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
}else{
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
}else{
|
||||
|
||||
?>
|
||||
|
||||
<h1>Interner Bereich</h1>
|
||||
|
||||
<p>Nach der Anmeldung können Sie Ihre Anfragen an <?php echo $organisationsname; ?> einsehen oder neue Anfragen erstellen.<br>
|
||||
Bevor Sie sich anmelden können, müssen Sie sich registieren.<br><br></p>
|
||||
<form action="login.php" method="post">
|
||||
<h2 class="form-signin-heading">Login</h2>
|
||||
|
||||
<?php
|
||||
if(isset($error_msg) && !empty($error_msg)) {
|
||||
echo $error_msg;
|
||||
}
|
||||
?>
|
||||
<label for="inputEmail" class="sr-only">E-Mail</label>
|
||||
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="E-Mail" value="<?php echo $email_value; ?>" required autofocus>
|
||||
<label for="inputPassword" class="sr-only">Passwort</label>
|
||||
<input type="password" name="passwort" id="inputPassword" class="form-control" placeholder="Passwort" required>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" value="remember-me" name="angemeldet_bleiben" value="1" checked> Angemeldet bleiben
|
||||
</label>
|
||||
</div>
|
||||
<br>
|
||||
<button class="btn btn-lg btn-primary " type="submit">Login</button>
|
||||
<br><br>
|
||||
<a href="passwortvergessen.php">Passwort vergessen</a>
|
||||
</form>
|
||||
|
||||
<br><br><br><br>
|
||||
|
||||
<p><a class="btn btn-primary " href="register.php" role="button">Jetzt registrieren</a></p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
|
||||
+46
-46
@@ -1,47 +1,47 @@
|
||||
var http = createRequestObject();
|
||||
var objectId = '';
|
||||
|
||||
|
||||
function createRequestObject(htmlObjectId){
|
||||
var obj;
|
||||
var browser = navigator.appName;
|
||||
|
||||
objectId = htmlObjectId;
|
||||
|
||||
if(browser == "Microsoft Internet Explorer"){
|
||||
obj = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
else{
|
||||
obj = new XMLHttpRequest();
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
function sendReq(serverFileName, variableNames, variableValues) {
|
||||
var paramString = '';
|
||||
|
||||
variableNames = variableNames.split(',');
|
||||
variableValues = variableValues.split(',');
|
||||
|
||||
for(i=0; i<variableNames.length; i++) {
|
||||
paramString += variableNames[i]+'='+variableValues[i]+'&';
|
||||
}
|
||||
paramString = paramString.substring(0, (paramString.length-1));
|
||||
|
||||
if (paramString.length == 0) {
|
||||
http.open('get', serverFileName);
|
||||
}
|
||||
else {
|
||||
http.open('get', serverFileName+'?'+paramString);
|
||||
}
|
||||
http.onreadystatechange = handleResponse;
|
||||
http.send(null);
|
||||
}
|
||||
|
||||
function handleResponse() {
|
||||
|
||||
if(http.readyState == 4){
|
||||
responseText = http.responseText;
|
||||
document.getElementById(objectId).innerHTML = responseText;
|
||||
}
|
||||
var http = createRequestObject();
|
||||
var objectId = '';
|
||||
|
||||
|
||||
function createRequestObject(htmlObjectId){
|
||||
var obj;
|
||||
var browser = navigator.appName;
|
||||
|
||||
objectId = htmlObjectId;
|
||||
|
||||
if(browser == "Microsoft Internet Explorer"){
|
||||
obj = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
else{
|
||||
obj = new XMLHttpRequest();
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
function sendReq(serverFileName, variableNames, variableValues) {
|
||||
var paramString = '';
|
||||
|
||||
variableNames = variableNames.split(',');
|
||||
variableValues = variableValues.split(',');
|
||||
|
||||
for(i=0; i<variableNames.length; i++) {
|
||||
paramString += variableNames[i]+'='+variableValues[i]+'&';
|
||||
}
|
||||
paramString = paramString.substring(0, (paramString.length-1));
|
||||
|
||||
if (paramString.length == 0) {
|
||||
http.open('get', serverFileName);
|
||||
}
|
||||
else {
|
||||
http.open('get', serverFileName+'?'+paramString);
|
||||
}
|
||||
http.onreadystatechange = handleResponse;
|
||||
http.send(null);
|
||||
}
|
||||
|
||||
function handleResponse() {
|
||||
|
||||
if(http.readyState == 4){
|
||||
responseText = http.responseText;
|
||||
document.getElementById(objectId).innerHTML = responseText;
|
||||
}
|
||||
}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+45
-45
@@ -1,46 +1,46 @@
|
||||
|
||||
$(function() {
|
||||
$("#user_input").autocomplete({
|
||||
source: "inc/suchepatient.php",
|
||||
minLength: 3,
|
||||
select: function( event, ui ) {
|
||||
event.preventDefault();
|
||||
$("#userid_input").val(ui.item.id);
|
||||
$("#user_input").val(ui.item.value);
|
||||
$("#formbenutzersuche").submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function behandelt(str) {
|
||||
|
||||
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/behandelt.php',
|
||||
data: ({
|
||||
terminid: str
|
||||
})
|
||||
}).responseText;
|
||||
document.getElementById(str).style.display = 'none';
|
||||
//window.location.reload(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function submitForm(sub) {
|
||||
e.preventDefault();
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'impfadmin.php',
|
||||
data: ({
|
||||
aktion: 4,
|
||||
searchdate: sub
|
||||
})
|
||||
}).responseText;
|
||||
//window.location.reload(false);
|
||||
document.body.innerHTML = result;
|
||||
|
||||
$(function() {
|
||||
$("#user_input").autocomplete({
|
||||
source: "inc/suchepatient.php",
|
||||
minLength: 3,
|
||||
select: function( event, ui ) {
|
||||
event.preventDefault();
|
||||
$("#userid_input").val(ui.item.id);
|
||||
$("#user_input").val(ui.item.value);
|
||||
$("#formbenutzersuche").submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function behandelt(str) {
|
||||
|
||||
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/behandelt.php',
|
||||
data: ({
|
||||
terminid: str
|
||||
})
|
||||
}).responseText;
|
||||
document.getElementById(str).style.display = 'none';
|
||||
//window.location.reload(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function submitForm(sub) {
|
||||
e.preventDefault();
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'impfadmin.php',
|
||||
data: ({
|
||||
aktion: 4,
|
||||
searchdate: sub
|
||||
})
|
||||
}).responseText;
|
||||
//window.location.reload(false);
|
||||
document.body.innerHTML = result;
|
||||
}
|
||||
+95
-95
@@ -1,96 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="favicon.png">
|
||||
|
||||
<title>Sticky Footer Navbar Template for Bootstrap</title>
|
||||
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Wrap all page content here -->
|
||||
<div id="wrap">
|
||||
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin page content -->
|
||||
<div class="container">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>PHP Calendar</h1>
|
||||
</div>
|
||||
|
||||
<?php print $calendar; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="container">
|
||||
<p class="text-muted">Place sticky footer content here.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
||||
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
|
||||
<!--
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.syphon/0.4.1/backbone.syphon.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.modelbinder/1.0.4/Backbone.ModelBinder.min.js"></script>
|
||||
-->
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="favicon.png">
|
||||
|
||||
<title>Sticky Footer Navbar Template for Bootstrap</title>
|
||||
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Wrap all page content here -->
|
||||
<div id="wrap">
|
||||
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin page content -->
|
||||
<div class="container">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>PHP Calendar</h1>
|
||||
</div>
|
||||
|
||||
<?php print $calendar; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="container">
|
||||
<p class="text-muted">Place sticky footer content here.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
||||
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
|
||||
<!--
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.syphon/0.4.1/backbone.syphon.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.modelbinder/1.0.4/Backbone.ModelBinder.min.js"></script>
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,19 +1,19 @@
|
||||
<?php
|
||||
|
||||
include('../impfconfig.php');
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $betreff;
|
||||
|
||||
<?php
|
||||
|
||||
include('../impfconfig.php');
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $betreff;
|
||||
|
||||
?>
|
||||
+59
-59
@@ -1,60 +1,60 @@
|
||||
<?php
|
||||
|
||||
include('../impfconfig.php');
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
$sqlstring = "SELECT * FROM anfragen INNER JOIN user ON anfragen.personid = user.userid WHERE anfrageid ='" . $anfrageid . "'";
|
||||
$query = mysqli_query($con,$sqlstring);
|
||||
$rowtime = mysqli_fetch_assoc($query);
|
||||
$vorname = $rowtime["vorname"];
|
||||
$nachname = $rowtime["nachname"];
|
||||
$geburtstag = $rowtime["geburtstag"];
|
||||
$tele = $rowtime["tele"];
|
||||
$plz = $rowtime["plz"];
|
||||
$ort = $rowtime["ort"];
|
||||
$strasse = $rowtime["strasse"];
|
||||
$adresse = "$ort $plz, $stasse";
|
||||
$empfaenger = $rowtime["mail"];
|
||||
$hash = $rowtime["hash"];
|
||||
$timeid = $rowtime["timeid"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$anfragenlogin = $anfragebestaetigung . "?id=" . $hash ;
|
||||
|
||||
$nachricht = $rowtime["nachricht"];
|
||||
$medikamenteins = $rowtime["medikament1"];
|
||||
$medikamentzwei = $rowtime["medikament2"];
|
||||
$anforderungart = $rowtime["anforderungart"];
|
||||
|
||||
$sqlimpfstoffstring = "SELECT artname FROM anfrageart WHERE artid ='" . $anforderungart . "'";
|
||||
$queryimpfstoff = mysqli_query($con,$sqlimpfstoffstring);
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpfstoff);
|
||||
$rezeptart = $rowimpf["artname"];
|
||||
$body = str_replace("%BENUTZERVORNAME%", $vorname, $body);
|
||||
$body = str_replace("%BENUTZERNACHNAME%", $nachname, $body);
|
||||
$body = str_replace("%BENUTZERGEBURTSTAG%", $geburtstag, $body);
|
||||
$body = str_replace("%BENUTZERADRESSE%", $adresse, $body);
|
||||
$body = str_replace("%TERMINZEITVORGABE%", $Zeitanzeige, $body);
|
||||
$body = str_replace("%TERMINIMPFSTOFF%", $impfstofftext, $body);
|
||||
$body = str_replace("%TERMINLOGIN%", $terminlogin, $body);
|
||||
$body = str_replace("%WARTELISTELOGIN%", $wartelistelogin, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFSTOFF%", $impfstofftextwarte, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFANGEBOT%", $impfangebottext, $body);
|
||||
$body = str_replace("%REZEPTART%", $rezeptart, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMEREINS%", $medikamenteins, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMERZWEI%", $medikamentzwei, $body);
|
||||
$body = str_replace("%ANFRAGENACHRICHT%", $nachricht, $body);
|
||||
$body = str_replace("%ANFRAGENLOGIN%", $anfragenlogin, $body);
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $body;
|
||||
|
||||
<?php
|
||||
|
||||
include('../impfconfig.php');
|
||||
// E-Mail Vorlage laden
|
||||
|
||||
$templetid = $_POST["templetid"];
|
||||
$anfrageid = $_POST["anfrageid"];
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$templetid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
$name = $rowconfig["name"];
|
||||
|
||||
$sqlstring = "SELECT * FROM anfragen INNER JOIN user ON anfragen.personid = user.userid WHERE anfrageid ='" . $anfrageid . "'";
|
||||
$query = mysqli_query($con,$sqlstring);
|
||||
$rowtime = mysqli_fetch_assoc($query);
|
||||
$vorname = $rowtime["vorname"];
|
||||
$nachname = $rowtime["nachname"];
|
||||
$geburtstag = $rowtime["geburtstag"];
|
||||
$tele = $rowtime["tele"];
|
||||
$plz = $rowtime["plz"];
|
||||
$ort = $rowtime["ort"];
|
||||
$strasse = $rowtime["strasse"];
|
||||
$adresse = "$ort $plz, $stasse";
|
||||
$empfaenger = $rowtime["mail"];
|
||||
$hash = $rowtime["hash"];
|
||||
$timeid = $rowtime["timeid"];
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$anfragenlogin = $anfragebestaetigung . "?id=" . $hash ;
|
||||
|
||||
$nachricht = $rowtime["nachricht"];
|
||||
$medikamenteins = $rowtime["medikament1"];
|
||||
$medikamentzwei = $rowtime["medikament2"];
|
||||
$anforderungart = $rowtime["anforderungart"];
|
||||
|
||||
$sqlimpfstoffstring = "SELECT artname FROM anfrageart WHERE artid ='" . $anforderungart . "'";
|
||||
$queryimpfstoff = mysqli_query($con,$sqlimpfstoffstring);
|
||||
$rowimpf = mysqli_fetch_assoc($queryimpfstoff);
|
||||
$rezeptart = $rowimpf["artname"];
|
||||
$body = str_replace("%BENUTZERVORNAME%", $vorname, $body);
|
||||
$body = str_replace("%BENUTZERNACHNAME%", $nachname, $body);
|
||||
$body = str_replace("%BENUTZERGEBURTSTAG%", $geburtstag, $body);
|
||||
$body = str_replace("%BENUTZERADRESSE%", $adresse, $body);
|
||||
$body = str_replace("%TERMINZEITVORGABE%", $Zeitanzeige, $body);
|
||||
$body = str_replace("%TERMINIMPFSTOFF%", $impfstofftext, $body);
|
||||
$body = str_replace("%TERMINLOGIN%", $terminlogin, $body);
|
||||
$body = str_replace("%WARTELISTELOGIN%", $wartelistelogin, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFSTOFF%", $impfstofftextwarte, $body);
|
||||
$body = str_replace("%WARTELISTEIMPFANGEBOT%", $impfangebottext, $body);
|
||||
$body = str_replace("%REZEPTART%", $rezeptart, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMEREINS%", $medikamenteins, $body);
|
||||
$body = str_replace("%MEDIKAMENTNUMMERZWEI%", $medikamentzwei, $body);
|
||||
$body = str_replace("%ANFRAGENACHRICHT%", $nachricht, $body);
|
||||
$body = str_replace("%ANFRAGENLOGIN%", $anfragenlogin, $body);
|
||||
|
||||
$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $body);
|
||||
echo $body;
|
||||
|
||||
?>
|
||||
+264
-264
@@ -1,265 +1,265 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
$user = check_intern_user();
|
||||
if (!$user) {
|
||||
header("Location: login.php");
|
||||
exit;
|
||||
}
|
||||
include("templates/header.inc.php");
|
||||
|
||||
?>
|
||||
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
|
||||
<h1>Interner Bereich</h1>
|
||||
|
||||
Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich von <?php echo $organisationsname; ?>!<br><br>
|
||||
|
||||
|
||||
<?php
|
||||
if(!check_mailreg()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlt die Authentifizierung Ihres Kontos per E-Mail! Bitte authentifizieren Sie Ihre E-Mail-Adresse.<br>";
|
||||
echo "<form action='authmeldung.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='E-Mail Authentifizierung'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
if(!check_userdatenvorhanden()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlen noch Informationen in Ihrem Stammdaten. Bitte pflegen Sie die Daten nach, damit <br>";
|
||||
echo "<form action='settings.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='Stammdaten pflegen'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(check_mailreg() && check_userdatenvorhanden() ){
|
||||
if($_POST["aktion"] == "11"){
|
||||
|
||||
$sqlstring = "SELECT * FROM anfragen INNER JOIN persons ON anfragen.requester_person_id = persons.person_id INNER JOIN anfrageart ON anfragen.anforderungart = anfrageart.artid WHERE anfrageid='" . $_POST["anfrageid"] . "'";
|
||||
$query = mysqli_query($con,$sqlstring);
|
||||
// Ticket und Antwort ansehen.
|
||||
while ($row = $query->fetch_assoc()) {
|
||||
|
||||
|
||||
$anfrageid = $row["anfrageid"];
|
||||
$Zeitanzeige = $datum . " " . $start . "-" . $ende ;
|
||||
$userid = $row["userid"];
|
||||
$checked = $row["checked"];
|
||||
$workerid = $row["workerid"];
|
||||
$antwortid = $row["antwortid"];
|
||||
$date_created = $row["create_time"];
|
||||
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$mail = $row["mail"];
|
||||
$tel = $row["tele"];
|
||||
|
||||
$geburtstag = $row["geburtstag"];
|
||||
$ausgabegeburstag = $geburtstag;
|
||||
|
||||
$ort = $row["ort"];
|
||||
$plz = $row["plz"];
|
||||
$strasse = $row["strasse"];
|
||||
$ordnungsid = $row["ordnungsid"];
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
$nachricht = $row["nachricht"];
|
||||
$medikamenteins = $row["medikament1"];
|
||||
$medikamentzwei = $row["medikament2"];
|
||||
$medikamentdrei = $row["medikament3"];
|
||||
$medikamentvier = $row["medikament4"];
|
||||
$medikamentfuenf = $row["medikament5"];
|
||||
$medikamentsechs = $row["medikament6"];
|
||||
$anfrageart = $row["artname"];
|
||||
#$anfrageart = iconv('UTF-8' ,'CP1252//IGNORE', $anfrageart);
|
||||
$antworttext = $row["antworttext"];
|
||||
$WeitereInfos= "";
|
||||
if($medikamenteins){
|
||||
$WeitereInfos .= "Medikament1: $medikamenteins<br>";
|
||||
}
|
||||
if($medikamentzwei){
|
||||
$WeitereInfos .= "Medikament2: $medikamentzwei<br>";
|
||||
}
|
||||
if($medikamentdrei){
|
||||
$WeitereInfos .= "Medikament3: $medikamentdrei<br>";
|
||||
}
|
||||
if($medikamentvier){
|
||||
$WeitereInfos .= "Medikament4: $medikamentvier<br>";
|
||||
}
|
||||
if($medikamentfuenf){
|
||||
$WeitereInfos .= "Medikament5: $medikamentfuenf<br>";
|
||||
}
|
||||
if($medikamentsechs){
|
||||
$WeitereInfos .= "Medikament6: $medikamentsechs<br>";
|
||||
}
|
||||
if($nachricht){
|
||||
$WeitereInfos .= "Nachricht: $nachricht";
|
||||
}
|
||||
|
||||
$datumausgabe= date("d.m.Y H:i", strtotime($date_created ));
|
||||
|
||||
$ausgabeworker = GetWorkerName($workerid);
|
||||
$farbe = GetStatusFarbe($checked);
|
||||
$checkausgabe = GetStatus($checked);
|
||||
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$adresse = $plz . " " . $ort . ", " . $strasse ;
|
||||
/*
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$antwortid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
*/
|
||||
//$name = $rowconfig["name"];
|
||||
//$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $antworttext);
|
||||
|
||||
|
||||
echo "<b>Person:</b><br>$userausgabe <br> $mail <br><br><b>Anfrageinformationen:</b><br>$ordnungsstring - $anfrageart <br>$WeitereInfos<br><br><b>Status der Anfrage:</b><br>$checkausgabe - $datumausgabe<br><br>";
|
||||
|
||||
echo "<b>Antwortnachricht:<b><br><br>";
|
||||
echo "$body <br>";
|
||||
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='Zurück'><br>";
|
||||
echo '</form>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
?>
|
||||
<p>Hier finden Sie die letzten 100 Anfragen für die E-Mail-Adresse '<?php echo $user["email"];?>'.<br>Die Antworten können Sie auf dieser Webseite datenschutzkonform einsehen.<br><br></p>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//global $pdo;
|
||||
$statement = $pdo->prepare("SELECT * FROM anfragen INNER JOIN persons ON anfragen.requester_person_id = persons.person_id INNER JOIN anfrageart ON anfragen.anforderungart = anfrageart.artid WHERE persons.email = :email ORDER by create_time DESC LIMIT 100 ");
|
||||
$statement->execute(array('email' => $user["email"]));
|
||||
|
||||
|
||||
echo '<table class="table display" id="table_id" > ';
|
||||
echo '<thead><tr><th >Person/Adresse</th><th >createdate</th><th >Anfragedatum</th><th >Anfrage/Status</th><th>Aktion</th></tr> </thead>';
|
||||
echo "<tbody>";
|
||||
while($row = $statement->fetch(PDO::FETCH_ASSOC)){
|
||||
#echo $row["anfrageid"];
|
||||
#echo "<br>";
|
||||
$anfrageid = $row["anfrageid"];
|
||||
$Zeitanzeige = $datum . " " . $start . "-" . $ende ;
|
||||
$userid = $row["userid"];
|
||||
$checked = $row["checked"];
|
||||
$workerid = $row["workerid"];
|
||||
$date_created = $row["create_time"];
|
||||
$mailtime = $row["update_time"];
|
||||
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$mail = $row["mail"];
|
||||
$tel = $row["tele"];
|
||||
|
||||
$geburtstag = $row["geburtstag"];
|
||||
$ausgabegeburstag = $geburtstag;
|
||||
|
||||
$ort = $row["ort"];
|
||||
$plz = $row["plz"];
|
||||
$strasse = $row["strasse"];
|
||||
|
||||
$nachricht = $row["nachricht"];
|
||||
$medikamenteins = $row["medikament1"];
|
||||
$medikamentzwei = $row["medikament2"];
|
||||
$medikamentdrei = $row["medikament3"];
|
||||
$medikamentvier = $row["medikament4"];
|
||||
$medikamentfuenf = $row["medikament5"];
|
||||
$medikamentsechs = $row["medikament6"];
|
||||
$anfrageart = $row["artname"];
|
||||
$ordnungsid = $row["ordnungsid"];
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
$WeitereInfos= "";
|
||||
if($medikamenteins){
|
||||
$WeitereInfos .= "Medikament1: $medikamenteins<br>";
|
||||
}
|
||||
if($medikamentzwei){
|
||||
$WeitereInfos .= "Medikament2: $medikamentzwei<br>";
|
||||
}
|
||||
if($medikamentdrei){
|
||||
$WeitereInfos .= "Medikament3: $medikamentdrei<br>";
|
||||
}
|
||||
if($medikamentvier){
|
||||
$WeitereInfos .= "Medikament4: $medikamentvier<br>";
|
||||
}
|
||||
if($medikamentfuenf){
|
||||
$WeitereInfos .= "Medikament5: $medikamentfuenf<br>";
|
||||
}
|
||||
if($nachricht){
|
||||
$WeitereInfos .= "Nachricht: $nachricht";
|
||||
}
|
||||
|
||||
$datumausgabe= date("d.m.Y H:i", strtotime($date_created ));
|
||||
$antwortzeit = date("d.m.Y H:i", strtotime($mailtime ));
|
||||
|
||||
$farbe = GetStatusFarbe($checked);
|
||||
$checkausgabe = GetStatus($checked);
|
||||
|
||||
$userausgabe = $vorname . " " . $nachname . "<br>" . $ausgabegeburstag;
|
||||
$adresse = $plz . " " . $ort . "<br>" . $strasse ;
|
||||
|
||||
echo "<tr style='background-color:". $farbe. ";' ><th scope='row' >$userausgabe <br> $adresse</th><td>$date_created</td><td>$datumausgabe</td><td >$ordnungsstring - $anfrageart <br>$WeitereInfos<br><br>Status:<br>$checkausgabe<br>$antwortzeit</td>";
|
||||
echo "<td >";
|
||||
if($checked == "10"){
|
||||
echo "
|
||||
<div style='float: left;margin:15px; height: 20px;'>
|
||||
<form action='". $_SERVER["PHP_SELF"] ."' method=POST>
|
||||
<input type=hidden name=aktion value=11>
|
||||
<input type=hidden name=anfrageid value=$anfrageid>
|
||||
<input type=submit class='btn btn-primary' value='Antwort einsehen'>
|
||||
</form>
|
||||
</div>
|
||||
";
|
||||
}else{
|
||||
|
||||
echo "Keine Antwort einsehbar.";
|
||||
|
||||
}
|
||||
echo "</td ></tr>";
|
||||
}
|
||||
|
||||
echo "</tbody></table>";
|
||||
//echo "</div>";
|
||||
echo "<br><br>";
|
||||
echo "<br><br>";
|
||||
echo "<br><br>";
|
||||
echo "<br><br>";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
<?php
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
$user = check_intern_user();
|
||||
if (!$user) {
|
||||
header("Location: login.php");
|
||||
exit;
|
||||
}
|
||||
include("templates/header.inc.php");
|
||||
|
||||
?>
|
||||
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
|
||||
<h1>Interner Bereich</h1>
|
||||
|
||||
Hallo <?php echo htmlentities($user['vorname']); ?>,<br>
|
||||
Herzlich Willkommen im internen Bereich von <?php echo $organisationsname; ?>!<br><br>
|
||||
|
||||
|
||||
<?php
|
||||
if(!check_mailreg()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlt die Authentifizierung Ihres Kontos per E-Mail! Bitte authentifizieren Sie Ihre E-Mail-Adresse.<br>";
|
||||
echo "<form action='authmeldung.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='E-Mail Authentifizierung'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
if(!check_userdatenvorhanden()){
|
||||
|
||||
echo "<br><br>";
|
||||
echo "Es fehlen noch Informationen in Ihrem Stammdaten. Bitte pflegen Sie die Daten nach, damit <br>";
|
||||
echo "<form action='settings.php' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='Stammdaten pflegen'><br>";
|
||||
echo '</form>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(check_mailreg() && check_userdatenvorhanden() ){
|
||||
if($_POST["aktion"] == "11"){
|
||||
|
||||
$sqlstring = "SELECT * FROM anfragen INNER JOIN persons ON anfragen.requester_person_id = persons.person_id INNER JOIN anfrageart ON anfragen.anforderungart = anfrageart.artid WHERE anfrageid='" . $_POST["anfrageid"] . "'";
|
||||
$query = mysqli_query($con,$sqlstring);
|
||||
// Ticket und Antwort ansehen.
|
||||
while ($row = $query->fetch_assoc()) {
|
||||
|
||||
|
||||
$anfrageid = $row["anfrageid"];
|
||||
$Zeitanzeige = $datum . " " . $start . "-" . $ende ;
|
||||
$userid = $row["userid"];
|
||||
$checked = $row["checked"];
|
||||
$workerid = $row["workerid"];
|
||||
$antwortid = $row["antwortid"];
|
||||
$date_created = $row["create_time"];
|
||||
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$mail = $row["mail"];
|
||||
$tel = $row["tele"];
|
||||
|
||||
$geburtstag = $row["geburtstag"];
|
||||
$ausgabegeburstag = $geburtstag;
|
||||
|
||||
$ort = $row["ort"];
|
||||
$plz = $row["plz"];
|
||||
$strasse = $row["strasse"];
|
||||
$ordnungsid = $row["ordnungsid"];
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
$nachricht = $row["nachricht"];
|
||||
$medikamenteins = $row["medikament1"];
|
||||
$medikamentzwei = $row["medikament2"];
|
||||
$medikamentdrei = $row["medikament3"];
|
||||
$medikamentvier = $row["medikament4"];
|
||||
$medikamentfuenf = $row["medikament5"];
|
||||
$medikamentsechs = $row["medikament6"];
|
||||
$anfrageart = $row["artname"];
|
||||
#$anfrageart = iconv('UTF-8' ,'CP1252//IGNORE', $anfrageart);
|
||||
$antworttext = $row["antworttext"];
|
||||
$WeitereInfos= "";
|
||||
if($medikamenteins){
|
||||
$WeitereInfos .= "Medikament1: $medikamenteins<br>";
|
||||
}
|
||||
if($medikamentzwei){
|
||||
$WeitereInfos .= "Medikament2: $medikamentzwei<br>";
|
||||
}
|
||||
if($medikamentdrei){
|
||||
$WeitereInfos .= "Medikament3: $medikamentdrei<br>";
|
||||
}
|
||||
if($medikamentvier){
|
||||
$WeitereInfos .= "Medikament4: $medikamentvier<br>";
|
||||
}
|
||||
if($medikamentfuenf){
|
||||
$WeitereInfos .= "Medikament5: $medikamentfuenf<br>";
|
||||
}
|
||||
if($medikamentsechs){
|
||||
$WeitereInfos .= "Medikament6: $medikamentsechs<br>";
|
||||
}
|
||||
if($nachricht){
|
||||
$WeitereInfos .= "Nachricht: $nachricht";
|
||||
}
|
||||
|
||||
$datumausgabe= date("d.m.Y H:i", strtotime($date_created ));
|
||||
|
||||
$ausgabeworker = GetWorkerName($workerid);
|
||||
$farbe = GetStatusFarbe($checked);
|
||||
$checkausgabe = GetStatus($checked);
|
||||
|
||||
$userausgabe = $vorname . " " . $nachname;
|
||||
$adresse = $plz . " " . $ort . ", " . $strasse ;
|
||||
/*
|
||||
$queryconfig = mysqli_query($con, "Select betreff,body,name FROM mailtemplates WHERE templetid='$antwortid' ");
|
||||
$rowconfig = mysqli_fetch_assoc($queryconfig);
|
||||
$body = $rowconfig["body"];
|
||||
$betreff = $rowconfig["betreff"];
|
||||
*/
|
||||
//$name = $rowconfig["name"];
|
||||
//$betreff = iconv('CP1252//IGNORE', 'UTF-8' , $betreff);
|
||||
$body = iconv('CP1252//IGNORE', 'UTF-8' , $antworttext);
|
||||
|
||||
|
||||
echo "<b>Person:</b><br>$userausgabe <br> $mail <br><br><b>Anfrageinformationen:</b><br>$ordnungsstring - $anfrageart <br>$WeitereInfos<br><br><b>Status der Anfrage:</b><br>$checkausgabe - $datumausgabe<br><br>";
|
||||
|
||||
echo "<b>Antwortnachricht:<b><br><br>";
|
||||
echo "$body <br>";
|
||||
|
||||
echo "<form action='". $_SERVER['PHP_SELF'] . "' method=POST>";
|
||||
echo "<input name=aktion type=hidden value=1>";
|
||||
echo "<input type=submit class='btn btn-primary' value='Zurück'><br>";
|
||||
echo '</form>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
?>
|
||||
<p>Hier finden Sie die letzten 100 Anfragen für die E-Mail-Adresse '<?php echo $user["email"];?>'.<br>Die Antworten können Sie auf dieser Webseite datenschutzkonform einsehen.<br><br></p>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//global $pdo;
|
||||
$statement = $pdo->prepare("SELECT * FROM anfragen INNER JOIN persons ON anfragen.requester_person_id = persons.person_id INNER JOIN anfrageart ON anfragen.anforderungart = anfrageart.artid WHERE persons.email = :email ORDER by create_time DESC LIMIT 100 ");
|
||||
$statement->execute(array('email' => $user["email"]));
|
||||
|
||||
|
||||
echo '<table class="table display" id="table_id" > ';
|
||||
echo '<thead><tr><th >Person/Adresse</th><th >createdate</th><th >Anfragedatum</th><th >Anfrage/Status</th><th>Aktion</th></tr> </thead>';
|
||||
echo "<tbody>";
|
||||
while($row = $statement->fetch(PDO::FETCH_ASSOC)){
|
||||
#echo $row["anfrageid"];
|
||||
#echo "<br>";
|
||||
$anfrageid = $row["anfrageid"];
|
||||
$Zeitanzeige = $datum . " " . $start . "-" . $ende ;
|
||||
$userid = $row["userid"];
|
||||
$checked = $row["checked"];
|
||||
$workerid = $row["workerid"];
|
||||
$date_created = $row["create_time"];
|
||||
$mailtime = $row["update_time"];
|
||||
|
||||
$vorname = $row["vorname"];
|
||||
$nachname = $row["nachname"];
|
||||
$mail = $row["mail"];
|
||||
$tel = $row["tele"];
|
||||
|
||||
$geburtstag = $row["geburtstag"];
|
||||
$ausgabegeburstag = $geburtstag;
|
||||
|
||||
$ort = $row["ort"];
|
||||
$plz = $row["plz"];
|
||||
$strasse = $row["strasse"];
|
||||
|
||||
$nachricht = $row["nachricht"];
|
||||
$medikamenteins = $row["medikament1"];
|
||||
$medikamentzwei = $row["medikament2"];
|
||||
$medikamentdrei = $row["medikament3"];
|
||||
$medikamentvier = $row["medikament4"];
|
||||
$medikamentfuenf = $row["medikament5"];
|
||||
$medikamentsechs = $row["medikament6"];
|
||||
$anfrageart = $row["artname"];
|
||||
$ordnungsid = $row["ordnungsid"];
|
||||
$ordnungsstring = GetOrdnungsid($ordnungsid);
|
||||
$WeitereInfos= "";
|
||||
if($medikamenteins){
|
||||
$WeitereInfos .= "Medikament1: $medikamenteins<br>";
|
||||
}
|
||||
if($medikamentzwei){
|
||||
$WeitereInfos .= "Medikament2: $medikamentzwei<br>";
|
||||
}
|
||||
if($medikamentdrei){
|
||||
$WeitereInfos .= "Medikament3: $medikamentdrei<br>";
|
||||
}
|
||||
if($medikamentvier){
|
||||
$WeitereInfos .= "Medikament4: $medikamentvier<br>";
|
||||
}
|
||||
if($medikamentfuenf){
|
||||
$WeitereInfos .= "Medikament5: $medikamentfuenf<br>";
|
||||
}
|
||||
if($nachricht){
|
||||
$WeitereInfos .= "Nachricht: $nachricht";
|
||||
}
|
||||
|
||||
$datumausgabe= date("d.m.Y H:i", strtotime($date_created ));
|
||||
$antwortzeit = date("d.m.Y H:i", strtotime($mailtime ));
|
||||
|
||||
$farbe = GetStatusFarbe($checked);
|
||||
$checkausgabe = GetStatus($checked);
|
||||
|
||||
$userausgabe = $vorname . " " . $nachname . "<br>" . $ausgabegeburstag;
|
||||
$adresse = $plz . " " . $ort . "<br>" . $strasse ;
|
||||
|
||||
echo "<tr style='background-color:". $farbe. ";' ><th scope='row' >$userausgabe <br> $adresse</th><td>$date_created</td><td>$datumausgabe</td><td >$ordnungsstring - $anfrageart <br>$WeitereInfos<br><br>Status:<br>$checkausgabe<br>$antwortzeit</td>";
|
||||
echo "<td >";
|
||||
if($checked == "10"){
|
||||
echo "
|
||||
<div style='float: left;margin:15px; height: 20px;'>
|
||||
<form action='". $_SERVER["PHP_SELF"] ."' method=POST>
|
||||
<input type=hidden name=aktion value=11>
|
||||
<input type=hidden name=anfrageid value=$anfrageid>
|
||||
<input type=submit class='btn btn-primary' value='Antwort einsehen'>
|
||||
</form>
|
||||
</div>
|
||||
";
|
||||
}else{
|
||||
|
||||
echo "Keine Antwort einsehbar.";
|
||||
|
||||
}
|
||||
echo "</td ></tr>";
|
||||
}
|
||||
|
||||
echo "</tbody></table>";
|
||||
//echo "</div>";
|
||||
echo "<br><br>";
|
||||
echo "<br><br>";
|
||||
echo "<br><br>";
|
||||
echo "<br><br>";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
include("templates/footer.inc.php")
|
||||
?>
|
||||
+810
-810
File diff suppressed because it is too large
Load Diff
+810
-810
File diff suppressed because it is too large
Load Diff
+443
-443
@@ -1,443 +1,443 @@
|
||||
<?php
|
||||
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
ini_set('display_errors', '1');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
|
||||
/* ---------------------------
|
||||
Page start
|
||||
----------------------------*/
|
||||
|
||||
include(__DIR__ . "/templates/header.inc.php");
|
||||
|
||||
echo "</header>";
|
||||
echo "<div class='jumbotron'><div class='container'>";
|
||||
|
||||
$user = check_intern_user(); // intern session user
|
||||
|
||||
if (!$user) {
|
||||
header("Location: login.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo "<h1>Neue Anfrage</h1>";
|
||||
echo "<p>Hallo " . e((string)($user['vorname'] ?? '')) . ",<br></p>";
|
||||
|
||||
// Preconditions
|
||||
if (!check_mailreg()) {
|
||||
echo "<br><br>";
|
||||
echo "Es fehlt die Authentifizierung Ihres Kontos per E-Mail! Bitte authentifizieren Sie Ihre E-Mail-Adresse.<br>";
|
||||
echo "<form action='authmeldung.php' method='POST'>";
|
||||
echo "<input name='aktion' type='hidden' value='1'>";
|
||||
echo "<input type='submit' class='btn btn-primary' value='E-Mail Authentifizierung'><br>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
if (!check_userdatenvorhanden()) {
|
||||
echo "<br><br>";
|
||||
echo "Es fehlen noch Informationen in Ihren Stammdaten. Bitte pflegen Sie die Daten nach.<br>";
|
||||
echo "<form action='settings.php' method='POST'>";
|
||||
echo "<input name='aktion' type='hidden' value='1'>";
|
||||
echo "<input type='submit' class='btn btn-primary' value='Stammdaten pflegen'><br>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
if (!(check_mailreg() && check_userdatenvorhanden())) {
|
||||
echo "<br><br><br><form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// action routing
|
||||
$aktion = $_POST['aktion'] ?? ''; // '', choose, confirm, submit
|
||||
|
||||
// Ensure persons id early
|
||||
try {
|
||||
$internUserId = isset($_SESSION['userid']) ? (int)$_SESSION['userid'] : null;
|
||||
$personId = ensurePersonFromInternUsersByEmail($pdo, (string)($user['email'] ?? ''), $internUserId);
|
||||
} catch (Throwable $t) {
|
||||
echo "<div class='alert alert-danger'>Fehler: " . e($t->getMessage()) . "</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Vacation check
|
||||
if ($aktion === 'choose' || $aktion === 'confirm' || $aktion === 'submit' || $aktion === '') {
|
||||
if (isPraxisImUrlaub($pdo)) {
|
||||
$info = loadAktuelleUrlaubsInfo($pdo);
|
||||
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>";
|
||||
|
||||
if ($info) {
|
||||
$ende = (string)$info['ende'];
|
||||
$endeausgabe = date("d.m.Y", strtotime("+1 day", strtotime($ende)));
|
||||
|
||||
if (!empty($info['vertretung'])) echo "Unsere Vertretung: " . e($info['vertretung']) . "<br>";
|
||||
if (!empty($info['vertreterurl'])) echo "Webseite Vertretung: " . e($info['vertreterurl']) . "<br>";
|
||||
if (!empty($info['vertretertelefon'])) echo "Telefonischer Kontakt Vertretung: " . e($info['vertretertelefon']) . "<br>";
|
||||
if (!empty($info['vertreteradresse'])) echo "Adresse Vertretung: " . e($info['vertreteradresse']) . "<br>";
|
||||
|
||||
echo "<br>Wir stehen Ihnen ab dem " . e($endeausgabe) . " wieder zur Verfügung.<br><br><br>";
|
||||
}
|
||||
|
||||
echo "<form action='index.php' method='POST'><input type='submit' class='btn btn-primary' value='Zurück'></form>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// default: show selection
|
||||
if ($aktion === '') {
|
||||
echo "<p>Wählen Sie die Anfragenart aus:<br><br></p>";
|
||||
echo "<form action='" . e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo "<input type='hidden' name='aktion' value='choose'>";
|
||||
|
||||
echo "<h4>Benutzer</h4>";
|
||||
echo "Name: " . e((string)$user["vorname"]) . " " . e((string)$user["nachname"]) . "<br>";
|
||||
echo "Geburtstag: " . e((string)$user["geburtstag"]) . "<br>";
|
||||
echo "Adresse: " . e((string)$user["strasse"]) . ", " . e((string)$user["plz"]) . ", " . e((string)$user["ort"]) . "<br>";
|
||||
|
||||
echo "<input type='hidden' name='requester_person_id' value='" . (int)$personId . "'>";
|
||||
|
||||
echo "<br><br>";
|
||||
echo "<label for='anfrageart'>Art der Anfrage:</label>";
|
||||
echo "<select class='form-control' name='anfrageart' id='anfrageart' required>
|
||||
<option value='1'>Rezeptanfrage</option>
|
||||
<option value='2'>Allgemeine Anfrage</option>
|
||||
<option value='3'>Terminabsage</option>
|
||||
</select>";
|
||||
echo "<br><br>";
|
||||
echo "<input type='submit' class='btn btn-primary' value='Anfrage stellen'><br>";
|
||||
echo "</form>";
|
||||
|
||||
echo "<br><br><br><form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// choose -> show form
|
||||
if ($aktion === 'choose') {
|
||||
$anfrageart = (int)($_POST['anfrageart'] ?? 0);
|
||||
$requester_person_id = (int)($_POST['requester_person_id'] ?? $personId);
|
||||
|
||||
$mode = match ($anfrageart) {
|
||||
1 => 'rezept',
|
||||
2 => 'allgemein',
|
||||
3 => 'terminabsage',
|
||||
default => ''
|
||||
};
|
||||
if ($mode === '') {
|
||||
echo "<div class='alert alert-danger'>Unbekannte Anfrageart.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$arten = loadAnfragearten($pdo, $mode);
|
||||
|
||||
echo "<p>Füllen Sie das Formular aus.</p>";
|
||||
echo "<form action='" . e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo "<input type='hidden' name='aktion' value='confirm'>";
|
||||
echo "<input type='hidden' name='mode' value='" . e($mode) . "'>";
|
||||
echo "<input type='hidden' name='requester_person_id' value='" . (int)$requester_person_id . "'>";
|
||||
|
||||
// User block
|
||||
echo "<h4>Benutzer</h4>";
|
||||
echo "Name: " . e((string)$user["vorname"]) . " " . e((string)$user["nachname"]) . "<br>";
|
||||
echo "Geburtstag: " . e((string)$user["geburtstag"]) . "<br>";
|
||||
echo "Adresse: " . e((string)$user["strasse"]) . ", " . e((string)$user["plz"]) . ", " . e((string)$user["ort"]) . "<br>";
|
||||
|
||||
echo "<br><br><div class='col-sm-10'>";
|
||||
echo "<label for='category'>Thema:</label>";
|
||||
echo "<select class='form-control' name='category' id='category' required>";
|
||||
echo "<option value=''>Bitte wählen Sie aus</option>";
|
||||
foreach ($arten as $a) {
|
||||
$artid = (int)$a['artid'];
|
||||
$artname = (string)$a['artname'];
|
||||
echo "<option value='{$artid}'>" . e($artname) . "</option>";
|
||||
}
|
||||
echo "</select></div>";
|
||||
|
||||
// Special fields for rezept
|
||||
if ($mode === 'rezept') {
|
||||
$curdate = date('d.m.Y');
|
||||
$curyear = date('Y');
|
||||
$curMonth = (int)date('m');
|
||||
$curQuarter = (int)ceil($curMonth / 3);
|
||||
$current_quarter = (int)ceil(date('n') / 3);
|
||||
$first_date = date('d.m.Y', strtotime(date('Y') . '-' . (($current_quarter * 3) - 2) . '-1'));
|
||||
$last_date = date('t.m.Y', strtotime(date('Y') . '-' . (($current_quarter * 3)) . '-1'));
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<label for='karte'>Ich habe dieses Quartal schon meine Gesundheitskarte in der Praxis einlesen lassen:</label><br>";
|
||||
echo "Aktuell befinden wir uns im {$curQuarter}. Quartal von {$curyear}.<br>";
|
||||
echo "Dieses geht vom <b>{$first_date} bis {$last_date}</b><br>";
|
||||
echo "Heute ist der {$curdate}.<br>";
|
||||
echo "War die Chipkarte dieses Quartal noch nicht eingelesen, ist die Abholung nur in der Praxis möglich.<br><br>";
|
||||
echo "<select class='form-control' name='karte' id='karte' required onchange='checkkarte()'>
|
||||
<option value=''>Bitte wählen Sie aus</option>
|
||||
<option value='Ja'>Ja</option>
|
||||
<option value='Nein'>Nein</option>
|
||||
<option value='Privat'>Privatrezept (Selbstzahler)</option>
|
||||
</select>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<label for='abholung'>Ich möchte das Rezept hier abholen:</label>";
|
||||
echo "<select class='form-control' name='abholung' id='abholung' required onchange='checkkarte()'>
|
||||
<option value=''>Bitte wählen Sie aus</option>
|
||||
<option value='Praxis'>Praxis Creutzburg</option>
|
||||
<option value='Apotheke'>Apotheke</option>
|
||||
</select>";
|
||||
echo "</div>";
|
||||
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<input class='form-control' type='text' name='Medikament{$i}' placeholder='Medikament, Wirkstoff, Packungsgröße' maxlength='150'>";
|
||||
echo "</div>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<textarea class='form-control' name='message' id='message' placeholder='Ihre Nachricht/Bemerkung' rows='6' maxlength='500'></textarea>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "Bedenken Sie bitte, dass wir einmal im Quartal Ihre Chipkarte benötigen. Ohne Chipkarte sind seit 1.1.2016 keine Kassendienstleistungen mehr möglich.<br>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<div class='col-sm-10'><br><br>";
|
||||
echo "<input class='form-control' type='submit' value='Weiter'>";
|
||||
echo "<br><br><br></div>";
|
||||
|
||||
echo "</form>";
|
||||
|
||||
echo "<script>
|
||||
function checkkarte(){
|
||||
var karte = document.getElementById('karte');
|
||||
var abholung = document.getElementById('abholung');
|
||||
if (!karte || !abholung) return;
|
||||
if (karte.value === 'Nein') {
|
||||
abholung.value = 'Praxis';
|
||||
}
|
||||
}
|
||||
</script>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// confirm -> summary
|
||||
if ($aktion === 'confirm') {
|
||||
$mode = (string)($_POST['mode'] ?? '');
|
||||
$requester_person_id = (int)($_POST['requester_person_id'] ?? 0);
|
||||
$category = (int)($_POST['category'] ?? 0);
|
||||
|
||||
if ($requester_person_id <= 0 || $category <= 0 || $mode === '') {
|
||||
echo "<div class='alert alert-danger'>Ungültige Eingaben.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$anfrageartText = loadAnfrageartName($pdo, $category);
|
||||
|
||||
echo "<h4>Kontrollieren Sie Ihre Angaben!</h4><br>";
|
||||
echo "<form action='" . e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo "<input type='hidden' name='aktion' value='submit'>";
|
||||
echo "<input type='hidden' name='mode' value='" . e($mode) . "'>";
|
||||
echo "<input type='hidden' name='requester_person_id' value='" . (int)$requester_person_id . "'>";
|
||||
echo "<input type='hidden' name='category' value='" . (int)$category . "'>";
|
||||
|
||||
echo "<table border='0' class='table'>";
|
||||
echo "<tr><td class='fett' style='width:160px;'>Thema</td><td>" . e($anfrageartText) . "</td></tr>";
|
||||
|
||||
if ($mode === 'rezept') {
|
||||
$karte = (string)($_POST['karte'] ?? '');
|
||||
$abholung = (string)($_POST['abholung'] ?? '');
|
||||
echo "<input type='hidden' name='karte' value='" . e($karte) . "'>";
|
||||
echo "<input type='hidden' name='abholung' value='" . e($abholung) . "'>";
|
||||
echo "<tr><td class='fett'>Karte</td><td>" . e($karte) . "</td></tr>";
|
||||
echo "<tr><td class='fett'>Abholung</td><td>" . e($abholung) . "</td></tr>";
|
||||
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$med = (string)($_POST["Medikament{$i}"] ?? '');
|
||||
echo "<input type='hidden' name='Medikament{$i}' value='" . e($med) . "'>";
|
||||
if ($med !== '') {
|
||||
echo "<tr><td class='fett'>Medikament{$i}</td><td>" . e($med) . "</td></tr>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$message = (string)($_POST['message'] ?? '');
|
||||
echo "<input type='hidden' name='message' value='" . e($message) . "'>";
|
||||
echo "<tr><td class='fett'>Nachricht</td><td>" . nl2br(e($message)) . "</td></tr>";
|
||||
echo "</table>";
|
||||
|
||||
echo "<input type='submit' class='form-control' value='Anfrage abschicken'>";
|
||||
echo "</form>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// submit -> insert + mail
|
||||
if ($aktion === 'submit') {
|
||||
$mode = (string)($_POST['mode'] ?? '');
|
||||
$requester_person_id = (int)($_POST['requester_person_id'] ?? 0);
|
||||
$anforderungart = (int)($_POST['category'] ?? 0);
|
||||
$message = (string)($_POST['message'] ?? '');
|
||||
|
||||
if ($requester_person_id <= 0 || $anforderungart <= 0) {
|
||||
echo "<div class='alert alert-danger'>Ungültige Eingaben.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$nachricht = $message;
|
||||
|
||||
$abholungnr = 0;
|
||||
if ($mode === 'rezept') {
|
||||
$karte = (string)($_POST['karte'] ?? '');
|
||||
$abholung = (string)($_POST['abholung'] ?? '');
|
||||
|
||||
$abholungnr = ($abholung === 'Praxis') ? 1 : (($abholung === 'Apotheke') ? 2 : 0);
|
||||
if ($karte === 'Privat') {
|
||||
$karte = 'Privatrezept (Selbstzahler)';
|
||||
}
|
||||
$nachricht = "Karte eingelesen: {$karte}<br>Abholungsort: {$abholung}<br>" . $nachricht;
|
||||
}
|
||||
|
||||
$med = [];
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$med[$i] = trim((string)($_POST["Medikament{$i}"] ?? ''));
|
||||
}
|
||||
|
||||
// duplicate check (best effort)
|
||||
$exists = false;
|
||||
try {
|
||||
$stmtDup = $pdo->prepare("
|
||||
SELECT *
|
||||
FROM anfragen
|
||||
WHERE requester_person_id = :pid
|
||||
AND anforderungart = :art
|
||||
AND nachricht = :nachricht
|
||||
AND create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY)
|
||||
");
|
||||
$stmtDup->execute([
|
||||
':pid' => $requester_person_id,
|
||||
':art' => $anforderungart,
|
||||
':nachricht' => $nachricht,
|
||||
]);
|
||||
$rows = $stmtDup->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$medFieldAliases = [
|
||||
1 => ['med1', 'medikament1', 'med_1'],
|
||||
2 => ['med2', 'medikament2', 'med_2'],
|
||||
3 => ['med3', 'medikament3', 'med_3'],
|
||||
4 => ['med4', 'medikament4', 'med_4'],
|
||||
5 => ['med5', 'medikament5', 'med_5'],
|
||||
6 => ['med6', 'medikament6', 'med_6'],
|
||||
];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$allMedsEqual = true;
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$dbValue = '';
|
||||
foreach ($medFieldAliases[$i] as $fieldName) {
|
||||
if (array_key_exists($fieldName, $row)) {
|
||||
$dbValue = trim((string)($row[$fieldName] ?? ''));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dbValue !== $med[$i]) {
|
||||
$allMedsEqual = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($allMedsEqual) {
|
||||
$exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Throwable $t) {
|
||||
error_log('Duplicate check failed: ' . $t->getMessage());
|
||||
$exists = false;
|
||||
}
|
||||
|
||||
if ($exists) {
|
||||
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>";
|
||||
echo "<form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$hash = bin2hex(random_bytes(16));
|
||||
$ordnungsid = ($mode === 'rezept') ? 1 : 2;
|
||||
|
||||
try {
|
||||
$anfrageid = insertAnfrage($pdo, [
|
||||
'person_id' => $requester_person_id,
|
||||
'anforderungart' => $anforderungart,
|
||||
'med1' => $med[1],
|
||||
'med2' => $med[2],
|
||||
'med3' => $med[3],
|
||||
'med4' => $med[4],
|
||||
'med5' => $med[5],
|
||||
'med6' => $med[6],
|
||||
'nachricht' => $nachricht,
|
||||
'hash' => $hash,
|
||||
'ordnungsid' => $ordnungsid,
|
||||
'abholort' => $abholungnr,
|
||||
'sicherenachricht' => 1,
|
||||
'checked' => 1,
|
||||
]);
|
||||
|
||||
$templateId = ($mode === 'rezept') ? 26 : 19;
|
||||
|
||||
// IMPORTANT: Your SendMailMessageVorlage() must accept PDO after your migration.
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, (string)$templateId);
|
||||
|
||||
echo "<h3>Nachricht abgeschickt!</h3><br>Sie bekommen eine Bestätigung per E-Mail!<br>
|
||||
Überprüfen Sie auch Ihren Spam-Filter!<br><br>";
|
||||
|
||||
} catch (Throwable $t) {
|
||||
echo "<h3>Speicherung nicht erfolgreich</h3><br>Ihre Anfrage konnte nicht gespeichert werden.<br>";
|
||||
echo "<div class='alert alert-danger'>Fehler: " . e($t->getMessage()) . "</div>";
|
||||
}
|
||||
|
||||
echo "<br><br><br><form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// fallback
|
||||
echo "<div class='alert alert-warning'>Unbekannte Aktion.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
<?php
|
||||
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
ini_set('display_errors', '1');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
|
||||
/* ---------------------------
|
||||
Page start
|
||||
----------------------------*/
|
||||
|
||||
include(__DIR__ . "/templates/header.inc.php");
|
||||
|
||||
echo "</header>";
|
||||
echo "<div class='jumbotron'><div class='container'>";
|
||||
|
||||
$user = check_intern_user(); // intern session user
|
||||
|
||||
if (!$user) {
|
||||
header("Location: login.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo "<h1>Neue Anfrage</h1>";
|
||||
echo "<p>Hallo " . e((string)($user['vorname'] ?? '')) . ",<br></p>";
|
||||
|
||||
// Preconditions
|
||||
if (!check_mailreg()) {
|
||||
echo "<br><br>";
|
||||
echo "Es fehlt die Authentifizierung Ihres Kontos per E-Mail! Bitte authentifizieren Sie Ihre E-Mail-Adresse.<br>";
|
||||
echo "<form action='authmeldung.php' method='POST'>";
|
||||
echo "<input name='aktion' type='hidden' value='1'>";
|
||||
echo "<input type='submit' class='btn btn-primary' value='E-Mail Authentifizierung'><br>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
if (!check_userdatenvorhanden()) {
|
||||
echo "<br><br>";
|
||||
echo "Es fehlen noch Informationen in Ihren Stammdaten. Bitte pflegen Sie die Daten nach.<br>";
|
||||
echo "<form action='settings.php' method='POST'>";
|
||||
echo "<input name='aktion' type='hidden' value='1'>";
|
||||
echo "<input type='submit' class='btn btn-primary' value='Stammdaten pflegen'><br>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
if (!(check_mailreg() && check_userdatenvorhanden())) {
|
||||
echo "<br><br><br><form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// action routing
|
||||
$aktion = $_POST['aktion'] ?? ''; // '', choose, confirm, submit
|
||||
|
||||
// Ensure persons id early
|
||||
try {
|
||||
$internUserId = isset($_SESSION['userid']) ? (int)$_SESSION['userid'] : null;
|
||||
$personId = ensurePersonFromInternUsersByEmail($pdo, (string)($user['email'] ?? ''), $internUserId);
|
||||
} catch (Throwable $t) {
|
||||
echo "<div class='alert alert-danger'>Fehler: " . e($t->getMessage()) . "</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Vacation check
|
||||
if ($aktion === 'choose' || $aktion === 'confirm' || $aktion === 'submit' || $aktion === '') {
|
||||
if (isPraxisImUrlaub($pdo)) {
|
||||
$info = loadAktuelleUrlaubsInfo($pdo);
|
||||
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>";
|
||||
|
||||
if ($info) {
|
||||
$ende = (string)$info['ende'];
|
||||
$endeausgabe = date("d.m.Y", strtotime("+1 day", strtotime($ende)));
|
||||
|
||||
if (!empty($info['vertretung'])) echo "Unsere Vertretung: " . e($info['vertretung']) . "<br>";
|
||||
if (!empty($info['vertreterurl'])) echo "Webseite Vertretung: " . e($info['vertreterurl']) . "<br>";
|
||||
if (!empty($info['vertretertelefon'])) echo "Telefonischer Kontakt Vertretung: " . e($info['vertretertelefon']) . "<br>";
|
||||
if (!empty($info['vertreteradresse'])) echo "Adresse Vertretung: " . e($info['vertreteradresse']) . "<br>";
|
||||
|
||||
echo "<br>Wir stehen Ihnen ab dem " . e($endeausgabe) . " wieder zur Verfügung.<br><br><br>";
|
||||
}
|
||||
|
||||
echo "<form action='index.php' method='POST'><input type='submit' class='btn btn-primary' value='Zurück'></form>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// default: show selection
|
||||
if ($aktion === '') {
|
||||
echo "<p>Wählen Sie die Anfragenart aus:<br><br></p>";
|
||||
echo "<form action='" . e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo "<input type='hidden' name='aktion' value='choose'>";
|
||||
|
||||
echo "<h4>Benutzer</h4>";
|
||||
echo "Name: " . e((string)$user["vorname"]) . " " . e((string)$user["nachname"]) . "<br>";
|
||||
echo "Geburtstag: " . e((string)$user["geburtstag"]) . "<br>";
|
||||
echo "Adresse: " . e((string)$user["strasse"]) . ", " . e((string)$user["plz"]) . ", " . e((string)$user["ort"]) . "<br>";
|
||||
|
||||
echo "<input type='hidden' name='requester_person_id' value='" . (int)$personId . "'>";
|
||||
|
||||
echo "<br><br>";
|
||||
echo "<label for='anfrageart'>Art der Anfrage:</label>";
|
||||
echo "<select class='form-control' name='anfrageart' id='anfrageart' required>
|
||||
<option value='1'>Rezeptanfrage</option>
|
||||
<option value='2'>Allgemeine Anfrage</option>
|
||||
<option value='3'>Terminabsage</option>
|
||||
</select>";
|
||||
echo "<br><br>";
|
||||
echo "<input type='submit' class='btn btn-primary' value='Anfrage stellen'><br>";
|
||||
echo "</form>";
|
||||
|
||||
echo "<br><br><br><form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// choose -> show form
|
||||
if ($aktion === 'choose') {
|
||||
$anfrageart = (int)($_POST['anfrageart'] ?? 0);
|
||||
$requester_person_id = (int)($_POST['requester_person_id'] ?? $personId);
|
||||
|
||||
$mode = match ($anfrageart) {
|
||||
1 => 'rezept',
|
||||
2 => 'allgemein',
|
||||
3 => 'terminabsage',
|
||||
default => ''
|
||||
};
|
||||
if ($mode === '') {
|
||||
echo "<div class='alert alert-danger'>Unbekannte Anfrageart.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$arten = loadAnfragearten($pdo, $mode);
|
||||
|
||||
echo "<p>Füllen Sie das Formular aus.</p>";
|
||||
echo "<form action='" . e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo "<input type='hidden' name='aktion' value='confirm'>";
|
||||
echo "<input type='hidden' name='mode' value='" . e($mode) . "'>";
|
||||
echo "<input type='hidden' name='requester_person_id' value='" . (int)$requester_person_id . "'>";
|
||||
|
||||
// User block
|
||||
echo "<h4>Benutzer</h4>";
|
||||
echo "Name: " . e((string)$user["vorname"]) . " " . e((string)$user["nachname"]) . "<br>";
|
||||
echo "Geburtstag: " . e((string)$user["geburtstag"]) . "<br>";
|
||||
echo "Adresse: " . e((string)$user["strasse"]) . ", " . e((string)$user["plz"]) . ", " . e((string)$user["ort"]) . "<br>";
|
||||
|
||||
echo "<br><br><div class='col-sm-10'>";
|
||||
echo "<label for='category'>Thema:</label>";
|
||||
echo "<select class='form-control' name='category' id='category' required>";
|
||||
echo "<option value=''>Bitte wählen Sie aus</option>";
|
||||
foreach ($arten as $a) {
|
||||
$artid = (int)$a['artid'];
|
||||
$artname = (string)$a['artname'];
|
||||
echo "<option value='{$artid}'>" . e($artname) . "</option>";
|
||||
}
|
||||
echo "</select></div>";
|
||||
|
||||
// Special fields for rezept
|
||||
if ($mode === 'rezept') {
|
||||
$curdate = date('d.m.Y');
|
||||
$curyear = date('Y');
|
||||
$curMonth = (int)date('m');
|
||||
$curQuarter = (int)ceil($curMonth / 3);
|
||||
$current_quarter = (int)ceil(date('n') / 3);
|
||||
$first_date = date('d.m.Y', strtotime(date('Y') . '-' . (($current_quarter * 3) - 2) . '-1'));
|
||||
$last_date = date('t.m.Y', strtotime(date('Y') . '-' . (($current_quarter * 3)) . '-1'));
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<label for='karte'>Ich habe dieses Quartal schon meine Gesundheitskarte in der Praxis einlesen lassen:</label><br>";
|
||||
echo "Aktuell befinden wir uns im {$curQuarter}. Quartal von {$curyear}.<br>";
|
||||
echo "Dieses geht vom <b>{$first_date} bis {$last_date}</b><br>";
|
||||
echo "Heute ist der {$curdate}.<br>";
|
||||
echo "War die Chipkarte dieses Quartal noch nicht eingelesen, ist die Abholung nur in der Praxis möglich.<br><br>";
|
||||
echo "<select class='form-control' name='karte' id='karte' required onchange='checkkarte()'>
|
||||
<option value=''>Bitte wählen Sie aus</option>
|
||||
<option value='Ja'>Ja</option>
|
||||
<option value='Nein'>Nein</option>
|
||||
<option value='Privat'>Privatrezept (Selbstzahler)</option>
|
||||
</select>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<label for='abholung'>Ich möchte das Rezept hier abholen:</label>";
|
||||
echo "<select class='form-control' name='abholung' id='abholung' required onchange='checkkarte()'>
|
||||
<option value=''>Bitte wählen Sie aus</option>
|
||||
<option value='Praxis'>Praxis Creutzburg</option>
|
||||
<option value='Apotheke'>Apotheke</option>
|
||||
</select>";
|
||||
echo "</div>";
|
||||
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<input class='form-control' type='text' name='Medikament{$i}' placeholder='Medikament, Wirkstoff, Packungsgröße' maxlength='150'>";
|
||||
echo "</div>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "<textarea class='form-control' name='message' id='message' placeholder='Ihre Nachricht/Bemerkung' rows='6' maxlength='500'></textarea>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<div class='col-sm-10'><br>";
|
||||
echo "Bedenken Sie bitte, dass wir einmal im Quartal Ihre Chipkarte benötigen. Ohne Chipkarte sind seit 1.1.2016 keine Kassendienstleistungen mehr möglich.<br>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<div class='col-sm-10'><br><br>";
|
||||
echo "<input class='form-control' type='submit' value='Weiter'>";
|
||||
echo "<br><br><br></div>";
|
||||
|
||||
echo "</form>";
|
||||
|
||||
echo "<script>
|
||||
function checkkarte(){
|
||||
var karte = document.getElementById('karte');
|
||||
var abholung = document.getElementById('abholung');
|
||||
if (!karte || !abholung) return;
|
||||
if (karte.value === 'Nein') {
|
||||
abholung.value = 'Praxis';
|
||||
}
|
||||
}
|
||||
</script>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// confirm -> summary
|
||||
if ($aktion === 'confirm') {
|
||||
$mode = (string)($_POST['mode'] ?? '');
|
||||
$requester_person_id = (int)($_POST['requester_person_id'] ?? 0);
|
||||
$category = (int)($_POST['category'] ?? 0);
|
||||
|
||||
if ($requester_person_id <= 0 || $category <= 0 || $mode === '') {
|
||||
echo "<div class='alert alert-danger'>Ungültige Eingaben.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$anfrageartText = loadAnfrageartName($pdo, $category);
|
||||
|
||||
echo "<h4>Kontrollieren Sie Ihre Angaben!</h4><br>";
|
||||
echo "<form action='" . e($_SERVER['PHP_SELF']) . "' method='POST'>";
|
||||
echo "<input type='hidden' name='aktion' value='submit'>";
|
||||
echo "<input type='hidden' name='mode' value='" . e($mode) . "'>";
|
||||
echo "<input type='hidden' name='requester_person_id' value='" . (int)$requester_person_id . "'>";
|
||||
echo "<input type='hidden' name='category' value='" . (int)$category . "'>";
|
||||
|
||||
echo "<table border='0' class='table'>";
|
||||
echo "<tr><td class='fett' style='width:160px;'>Thema</td><td>" . e($anfrageartText) . "</td></tr>";
|
||||
|
||||
if ($mode === 'rezept') {
|
||||
$karte = (string)($_POST['karte'] ?? '');
|
||||
$abholung = (string)($_POST['abholung'] ?? '');
|
||||
echo "<input type='hidden' name='karte' value='" . e($karte) . "'>";
|
||||
echo "<input type='hidden' name='abholung' value='" . e($abholung) . "'>";
|
||||
echo "<tr><td class='fett'>Karte</td><td>" . e($karte) . "</td></tr>";
|
||||
echo "<tr><td class='fett'>Abholung</td><td>" . e($abholung) . "</td></tr>";
|
||||
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$med = (string)($_POST["Medikament{$i}"] ?? '');
|
||||
echo "<input type='hidden' name='Medikament{$i}' value='" . e($med) . "'>";
|
||||
if ($med !== '') {
|
||||
echo "<tr><td class='fett'>Medikament{$i}</td><td>" . e($med) . "</td></tr>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$message = (string)($_POST['message'] ?? '');
|
||||
echo "<input type='hidden' name='message' value='" . e($message) . "'>";
|
||||
echo "<tr><td class='fett'>Nachricht</td><td>" . nl2br(e($message)) . "</td></tr>";
|
||||
echo "</table>";
|
||||
|
||||
echo "<input type='submit' class='form-control' value='Anfrage abschicken'>";
|
||||
echo "</form>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// submit -> insert + mail
|
||||
if ($aktion === 'submit') {
|
||||
$mode = (string)($_POST['mode'] ?? '');
|
||||
$requester_person_id = (int)($_POST['requester_person_id'] ?? 0);
|
||||
$anforderungart = (int)($_POST['category'] ?? 0);
|
||||
$message = (string)($_POST['message'] ?? '');
|
||||
|
||||
if ($requester_person_id <= 0 || $anforderungart <= 0) {
|
||||
echo "<div class='alert alert-danger'>Ungültige Eingaben.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$nachricht = $message;
|
||||
|
||||
$abholungnr = 0;
|
||||
if ($mode === 'rezept') {
|
||||
$karte = (string)($_POST['karte'] ?? '');
|
||||
$abholung = (string)($_POST['abholung'] ?? '');
|
||||
|
||||
$abholungnr = ($abholung === 'Praxis') ? 1 : (($abholung === 'Apotheke') ? 2 : 0);
|
||||
if ($karte === 'Privat') {
|
||||
$karte = 'Privatrezept (Selbstzahler)';
|
||||
}
|
||||
$nachricht = "Karte eingelesen: {$karte}<br>Abholungsort: {$abholung}<br>" . $nachricht;
|
||||
}
|
||||
|
||||
$med = [];
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$med[$i] = trim((string)($_POST["Medikament{$i}"] ?? ''));
|
||||
}
|
||||
|
||||
// duplicate check (best effort)
|
||||
$exists = false;
|
||||
try {
|
||||
$stmtDup = $pdo->prepare("
|
||||
SELECT *
|
||||
FROM anfragen
|
||||
WHERE requester_person_id = :pid
|
||||
AND anforderungart = :art
|
||||
AND nachricht = :nachricht
|
||||
AND create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY)
|
||||
");
|
||||
$stmtDup->execute([
|
||||
':pid' => $requester_person_id,
|
||||
':art' => $anforderungart,
|
||||
':nachricht' => $nachricht,
|
||||
]);
|
||||
$rows = $stmtDup->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$medFieldAliases = [
|
||||
1 => ['med1', 'medikament1', 'med_1'],
|
||||
2 => ['med2', 'medikament2', 'med_2'],
|
||||
3 => ['med3', 'medikament3', 'med_3'],
|
||||
4 => ['med4', 'medikament4', 'med_4'],
|
||||
5 => ['med5', 'medikament5', 'med_5'],
|
||||
6 => ['med6', 'medikament6', 'med_6'],
|
||||
];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$allMedsEqual = true;
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$dbValue = '';
|
||||
foreach ($medFieldAliases[$i] as $fieldName) {
|
||||
if (array_key_exists($fieldName, $row)) {
|
||||
$dbValue = trim((string)($row[$fieldName] ?? ''));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dbValue !== $med[$i]) {
|
||||
$allMedsEqual = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($allMedsEqual) {
|
||||
$exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Throwable $t) {
|
||||
error_log('Duplicate check failed: ' . $t->getMessage());
|
||||
$exists = false;
|
||||
}
|
||||
|
||||
if ($exists) {
|
||||
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>";
|
||||
echo "<form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$hash = bin2hex(random_bytes(16));
|
||||
$ordnungsid = ($mode === 'rezept') ? 1 : 2;
|
||||
|
||||
try {
|
||||
$anfrageid = insertAnfrage($pdo, [
|
||||
'person_id' => $requester_person_id,
|
||||
'anforderungart' => $anforderungart,
|
||||
'med1' => $med[1],
|
||||
'med2' => $med[2],
|
||||
'med3' => $med[3],
|
||||
'med4' => $med[4],
|
||||
'med5' => $med[5],
|
||||
'med6' => $med[6],
|
||||
'nachricht' => $nachricht,
|
||||
'hash' => $hash,
|
||||
'ordnungsid' => $ordnungsid,
|
||||
'abholort' => $abholungnr,
|
||||
'sicherenachricht' => 1,
|
||||
'checked' => 1,
|
||||
]);
|
||||
|
||||
$templateId = ($mode === 'rezept') ? 26 : 19;
|
||||
|
||||
// IMPORTANT: Your SendMailMessageVorlage() must accept PDO after your migration.
|
||||
SendMailMessageVorlage($pdo, "3", $anfrageid, (string)$templateId);
|
||||
|
||||
echo "<h3>Nachricht abgeschickt!</h3><br>Sie bekommen eine Bestätigung per E-Mail!<br>
|
||||
Überprüfen Sie auch Ihren Spam-Filter!<br><br>";
|
||||
|
||||
} catch (Throwable $t) {
|
||||
echo "<h3>Speicherung nicht erfolgreich</h3><br>Ihre Anfrage konnte nicht gespeichert werden.<br>";
|
||||
echo "<div class='alert alert-danger'>Fehler: " . e($t->getMessage()) . "</div>";
|
||||
}
|
||||
|
||||
echo "<br><br><br><form action='index.php' method='POST'>
|
||||
<input type='submit' class='btn btn-primary' value='Zum Hauptmenü'>
|
||||
</form>";
|
||||
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
// fallback
|
||||
echo "<div class='alert alert-warning'>Unbekannte Aktion.</div>";
|
||||
echo "</div></div>";
|
||||
include(__DIR__ . "/templates/footer.inc.php");
|
||||
|
||||
+111
-111
@@ -1,111 +1,111 @@
|
||||
<?php
|
||||
ob_start();
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
|
||||
/* ---------- Kein direkter Zugriff ---------- */
|
||||
if (empty($_SESSION['2fa_userid'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$error_msg = '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['code'])) {
|
||||
|
||||
$userId = (int)$_SESSION['2fa_userid'];
|
||||
$codeHash = hash('sha256', $_POST['code']);
|
||||
|
||||
// 2FA-Code prüfen
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT id
|
||||
FROM intern_2fa_codes
|
||||
WHERE user_id = :uid
|
||||
AND code = :code
|
||||
AND expires_at > NOW()
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([
|
||||
'uid' => $userId,
|
||||
'code' => $codeHash
|
||||
]);
|
||||
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($row) {
|
||||
|
||||
// Code löschen (Einmalverwendung)
|
||||
$pdo->prepare("DELETE FROM intern_2fa_codes WHERE user_id = :uid")
|
||||
->execute(['uid' => $userId]);
|
||||
|
||||
session_regenerate_id(true);
|
||||
|
||||
$_SESSION['userid'] = $userId;
|
||||
$_SESSION['2fa_verified'] = true;
|
||||
unset($_SESSION['2fa_userid']);
|
||||
|
||||
/* ---------- Gerät merken ---------- */
|
||||
if (!empty($_POST['remember_device'])) {
|
||||
|
||||
$identifier = bin2hex(random_bytes(32));
|
||||
$token = bin2hex(random_bytes(32));
|
||||
|
||||
$pdo->prepare("
|
||||
INSERT INTO intern_securitytokens
|
||||
(user_id, identifier, securitytoken, expires_at)
|
||||
VALUES (:uid, :identifier, :token, :expires)
|
||||
")->execute([
|
||||
'uid' => $userId,
|
||||
'identifier' => $identifier,
|
||||
'token' => hash('sha256', $token),
|
||||
'expires' => date('Y-m-d H:i:s', time() + 30 * 24 * 3600)
|
||||
]);
|
||||
|
||||
$opts = [
|
||||
'expires' => time() + 30 * 24 * 3600,
|
||||
'path' => '/',
|
||||
'secure' => true,
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax'
|
||||
];
|
||||
|
||||
setcookie('remember_device', $identifier, $opts);
|
||||
setcookie('remember_device_token', $token, $opts);
|
||||
}
|
||||
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$error_msg = 'Falscher oder abgelaufener Code.';
|
||||
}
|
||||
|
||||
include("templates/header.inc.php");
|
||||
?>
|
||||
|
||||
<div class="container small-container-330 form-signin">
|
||||
<form action="verify_2fa.php" method="post">
|
||||
<h2 class="form-signin-heading">Zwei-Faktor-Authentifizierung</h2>
|
||||
|
||||
<p>Die Praxis Creutzburg sichert diesen Zugang mit einer Zwei-Faktor-Authentifizierung ab.<br>
|
||||
Sie benötigt neben Ihren Passwort auch den zweiten Faktor: eine zufällig generierte Nummer, die an Ihre E-Mail-Adresse versendet wurde.<br>
|
||||
Der zweite Faktor ist 5 Minuten gültig.<br>
|
||||
Prüfen Sie bitte jetzt Ihr Postfach und auch Ihren Spam-Ordner auf eine E-Mail von uns und geben Sie hier die sechsstellige Nummer ein.<br></p>
|
||||
|
||||
<?php if(!empty($error_msg)) echo $error_msg; ?>
|
||||
<label for="inputCode">6-stelliger Code</label>
|
||||
<input type="text" name="code" class="form-control" placeholder="Code eingeben" required>
|
||||
<br>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="remember_device" value="1"> Dieses Gerät für 30 Tage merken
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-lg btn-primary btn-block" type="submit">Bestätigen</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php include("templates/footer.inc.php"); ?>
|
||||
<?php
|
||||
ob_start();
|
||||
session_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
|
||||
|
||||
/* ---------- Kein direkter Zugriff ---------- */
|
||||
if (empty($_SESSION['2fa_userid'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$error_msg = '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['code'])) {
|
||||
|
||||
$userId = (int)$_SESSION['2fa_userid'];
|
||||
$codeHash = hash('sha256', $_POST['code']);
|
||||
|
||||
// 2FA-Code prüfen
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT id
|
||||
FROM intern_2fa_codes
|
||||
WHERE user_id = :uid
|
||||
AND code = :code
|
||||
AND expires_at > NOW()
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([
|
||||
'uid' => $userId,
|
||||
'code' => $codeHash
|
||||
]);
|
||||
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($row) {
|
||||
|
||||
// Code löschen (Einmalverwendung)
|
||||
$pdo->prepare("DELETE FROM intern_2fa_codes WHERE user_id = :uid")
|
||||
->execute(['uid' => $userId]);
|
||||
|
||||
session_regenerate_id(true);
|
||||
|
||||
$_SESSION['userid'] = $userId;
|
||||
$_SESSION['2fa_verified'] = true;
|
||||
unset($_SESSION['2fa_userid']);
|
||||
|
||||
/* ---------- Gerät merken ---------- */
|
||||
if (!empty($_POST['remember_device'])) {
|
||||
|
||||
$identifier = bin2hex(random_bytes(32));
|
||||
$token = bin2hex(random_bytes(32));
|
||||
|
||||
$pdo->prepare("
|
||||
INSERT INTO intern_securitytokens
|
||||
(user_id, identifier, securitytoken, expires_at)
|
||||
VALUES (:uid, :identifier, :token, :expires)
|
||||
")->execute([
|
||||
'uid' => $userId,
|
||||
'identifier' => $identifier,
|
||||
'token' => hash('sha256', $token),
|
||||
'expires' => date('Y-m-d H:i:s', time() + 30 * 24 * 3600)
|
||||
]);
|
||||
|
||||
$opts = [
|
||||
'expires' => time() + 30 * 24 * 3600,
|
||||
'path' => '/',
|
||||
'secure' => true,
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax'
|
||||
];
|
||||
|
||||
setcookie('remember_device', $identifier, $opts);
|
||||
setcookie('remember_device_token', $token, $opts);
|
||||
}
|
||||
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$error_msg = 'Falscher oder abgelaufener Code.';
|
||||
}
|
||||
|
||||
include("templates/header.inc.php");
|
||||
?>
|
||||
|
||||
<div class="container small-container-330 form-signin">
|
||||
<form action="verify_2fa.php" method="post">
|
||||
<h2 class="form-signin-heading">Zwei-Faktor-Authentifizierung</h2>
|
||||
|
||||
<p>Die Praxis Creutzburg sichert diesen Zugang mit einer Zwei-Faktor-Authentifizierung ab.<br>
|
||||
Sie benötigt neben Ihren Passwort auch den zweiten Faktor: eine zufällig generierte Nummer, die an Ihre E-Mail-Adresse versendet wurde.<br>
|
||||
Der zweite Faktor ist 5 Minuten gültig.<br>
|
||||
Prüfen Sie bitte jetzt Ihr Postfach und auch Ihren Spam-Ordner auf eine E-Mail von uns und geben Sie hier die sechsstellige Nummer ein.<br></p>
|
||||
|
||||
<?php if(!empty($error_msg)) echo $error_msg; ?>
|
||||
<label for="inputCode">6-stelliger Code</label>
|
||||
<input type="text" name="code" class="form-control" placeholder="Code eingeben" required>
|
||||
<br>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="remember_device" value="1"> Dieses Gerät für 30 Tage merken
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-lg btn-primary btn-block" type="submit">Bestätigen</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php include("templates/footer.inc.php"); ?>
|
||||
|
||||
+208
-208
@@ -1,209 +1,209 @@
|
||||
<!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 - Stellenangebote</title>
|
||||
<!-- Meta Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1304867248096206');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=1304867248096206&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Meta Pixel Code -->
|
||||
<!--
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org/",
|
||||
"@type": "JobPosting",
|
||||
"title": "Auszubildende/r zur Medizinischen Fachangestellten (MFA) (m/w/d)",
|
||||
"description": "Starte deine Karriere in unserer modernen Praxis! Bist du kommunikativ, hilfsbereit und interessierst dich für den medizinischen Bereich? Dann bist du bei uns genau richtig! Die Praxis Creutzburg bietet dir die Möglichkeit, eine abwechslungsreiche und spannende Ausbildung zur Medizinischen Fachangestellten (MFA) zu beginnen. Aufgaben: Assistenz bei Untersuchungen und Behandlungen, Patientenbetreuung und -beratung, Praxishygiene, Unterstützung bei Diagnostik und Therapie, Verwaltung und Abrechnung, Notfallmaßnahmen, Datenschutz. Wir bieten: fundierte Ausbildung, freundliches Team, moderne Ausstattung, Weiterbildungsmöglichkeiten, Unterstützung bei Führerschein und Studium.",
|
||||
"datePosted": "2025-08-26",
|
||||
"validThrough": "2025-12-31T23:59",
|
||||
"employmentType": "FULL_TIME",
|
||||
"hiringOrganization": {
|
||||
"@type": "Organization",
|
||||
"name": "Praxis Creutzburg",
|
||||
"sameAs": "https://www.praxis-creutzburg.de",
|
||||
"logo": "https://praxis-creutzburg.de/images/logo-arzt-creutzburg-coppen.gif"
|
||||
},
|
||||
"jobLocation": {
|
||||
"@type": "Place",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "Schlossstraße 18",
|
||||
"addressLocality": "Coppenbrügge",
|
||||
"postalCode": "31863",
|
||||
"addressCountry": "DE"
|
||||
}
|
||||
},
|
||||
"applicantLocationRequirements": {
|
||||
"@type": "Country",
|
||||
"name": "DE"
|
||||
},
|
||||
"educationRequirements": {
|
||||
"@type": "EducationalOccupationalCredential",
|
||||
"credentialCategory": "secondary",
|
||||
"description": "Mindestens Realschulabschluss oder sehr guter Hauptschulabschluss"
|
||||
},
|
||||
"qualifications": "Kommunikative Fähigkeiten, Verschwiegenheit, Kundenorientierung, Belastbarkeit, Teamfähigkeit, Interesse an medizinischen Themen.",
|
||||
"incentiveCompensation": "Faire Vergütung, Weiterbildungsmöglichkeiten (z. B. VERAH), Unterstützung bei Führerschein und Studium.",
|
||||
"industry": "Gesundheitswesen",
|
||||
"occupationalCategory": "3220",
|
||||
"experienceRequirements": "Keine Berufserfahrung erforderlich – Ausbildungsstelle.",
|
||||
"jobBenefits": [
|
||||
"Abwechslungsreiche Ausbildung",
|
||||
"Einblick in alle Bereiche einer Hausarztpraxis",
|
||||
"Engagiertes und freundliches Team",
|
||||
"Aktuelle IT-Ausstattung",
|
||||
"Flache Hierarchien",
|
||||
"Unterstützung bei Führerschein und Studium"
|
||||
],
|
||||
"applicationContact": {
|
||||
"@type": "ContactPoint",
|
||||
"name": "Dalia Alayan-Ibrahim",
|
||||
"email": "alayan@praxis-creutzburg.de",
|
||||
"contactType": "Bewerbung"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body >
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header" class="skel-layers-fixed">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
include('menu.php');
|
||||
include("inc/config.inc.php");
|
||||
include("inc/functions.inc.php");
|
||||
include('inc/functions.impfen.inc.php');
|
||||
?>
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
<!--
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<section class="box">
|
||||
<h2>Auszubildende/r zur Medizinischen Fachangestellten (MFA) (m/w/d)</h2>
|
||||
|
||||
<h3>Starte deine Karriere in unserer modernen Praxis!</h3>
|
||||
<p>Bist du kommunikativ, hilfsbereit und interessierst dich für den medizinischen Bereich? Dann bist du bei uns genau richtig! Die Praxis Creutzburg bietet dir die Möglichkeit, eine abwechslungsreiche und spannende Ausbildung zur Medizinischen Fachangestellten (MFA) zu beginnen. Wir legen großen Wert auf Teamarbeit, eine freundliche Atmosphäre und moderne Arbeitsbedingungen.</p>
|
||||
<p>Werde Teil eines motivierten Teams und profitiere von unserer langjährigen Erfahrung in der Ausbildung. Wir begleiten dich auf deinem Weg zum Erfolg und bieten dir beste Voraussetzungen für deine berufliche Zukunft.</p>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Wir suchen zu <strong>sofort</strong> eine/n motivierte/n Auszubildende/n zur Verstärkung unseres Praxisteams.</p>
|
||||
|
||||
<h3>Deine Aufgaben:</h3>
|
||||
<ul>
|
||||
<li>Assistenz bei Untersuchungen und Behandlungen</li>
|
||||
<li>Patientenbetreuung und -beratung</li>
|
||||
<li>Gesundheitsschutz und Maßnahmen zur Arbeits- und Praxishygiene</li>
|
||||
<li>Gesetzliche und vertragliche Vorgaben der medizinischen Versorgung einhalten</li>
|
||||
<li>Assistenz bei Diagnostik und Therapie</li>
|
||||
<li>Umgang mit Arzneimitteln, Injektionen und Infusionen</li>
|
||||
<li>Planung und Umsetzung von Präventions- und Rehabilitationsmaßnahmen</li>
|
||||
<li>Betriebsorganisation, Verwaltung und Abrechnung durchführen</li>
|
||||
<li>Qualitätsmanagement und Dokumentationen sicherstellen</li>
|
||||
<li>Schriftverkehr und organisatorische Aufgaben übernehmen</li>
|
||||
<li>Notfallmaßnahmen einleiten und begleiten</li>
|
||||
<li>Datenschutz und Datensicherheit gewährleisten</li>
|
||||
</ul>
|
||||
|
||||
<h3>Dein Profil:</h3>
|
||||
<ul>
|
||||
<li>Mindestens einen Realschulabschluss oder sehr guten Hauptschulabschluss</li>
|
||||
<li>Ausgeprägte kommunikative Fähigkeiten und ein hohes Maß an Verschwiegenheit</li>
|
||||
<li>Kundenorientierung und ein sicheres Auftreten</li>
|
||||
<li>Belastbarkeit und exaktes Arbeiten auch unter Druck</li>
|
||||
<li>Selbstständigkeit und Teamfähigkeit</li>
|
||||
<li>Interesse an medizinischen Themen und Organisation</li>
|
||||
</ul>
|
||||
|
||||
<h3>Wir bieten:</h3>
|
||||
<ul>
|
||||
<li>Eine fundierte und abwechslungsreiche Ausbildung</li>
|
||||
<li>Einblick in alle Bereiche einer ländlichen Hausarztpraxis</li>
|
||||
<li>Ein engagiertes und freundliches Team</li>
|
||||
<li>Aktuelle IT-Ausstattung inklusive Telefonanlage</li>
|
||||
<li>Flache Hierarchien und offene Kommunikation</li>
|
||||
<li>Faire Vergütung und Vertrauensarbeitszeit</li>
|
||||
<li>Weiterbildungsmöglichkeiten z.B. VERAH</li>
|
||||
<li>Unterstützung bei einem Führerschein</li>
|
||||
<li>Unterstützung bei einem ausbildungsbegleitendem Studium </li>
|
||||
<li>Raum für patientenorientiere Lösungen, wie z.B. <a href="https://www.dewezet.de/lokales/hameln-pyrmont/hameln/sumpfblume-impfen-bis-die-nadel-glueht-D27ZAZAAF52AY2FFA4365B44YA.html" target="_blank">bei unseren Impfaktionen</a></li>
|
||||
|
||||
</ul>
|
||||
<h3>Fragen:</h3>
|
||||
<p>Du hast grundsätzlich Fragen oder etwas ist unklar?<br>
|
||||
Telefonisch kannst du uns eine Nachricht auf unserem Anrufbeantworter hinterlassen. <br>Unser Praxisteam ruft dich schnellstmöglich zurück.<br>
|
||||
Per Mail wende dich bitte an Dalia Alayan-Ibrahim <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a><br>
|
||||
</p>
|
||||
|
||||
<section class="box" style="border-left:4px solid #2e7; background:#f7fff9;">
|
||||
<h3 style="margin-bottom:.4rem;">Onlinebewerbung</h3>
|
||||
<p style="margin:0 0 .8rem 0;">
|
||||
Bei uns kannst du dich <strong>einfach und schnell</strong> online bewerben! Die Bewerbung dauert 1-2 Minuten.
|
||||
</p>
|
||||
<ul class="actions">
|
||||
<li><a href="kurzbewerbung.php" class="button">Onlinebewerbung</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<h3>Bewerbung:</h3>
|
||||
<p>Bitte sende deine vollständigen Bewerbungsunterlagen an:</p>
|
||||
<p><strong>Praxis Creutzburg</strong><br>
|
||||
z.H. Dalia Alayan-Ibrahim<br>
|
||||
Schlossstraße 18<br>
|
||||
31863 Coppenbrügge<br>
|
||||
E-Mail: <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a></p>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form action="stellenangebote.php" method=POST>
|
||||
<input type=submit class=button value="Zu den Stellenangeboten">
|
||||
</form>
|
||||
</section>
|
||||
-->
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?></body>
|
||||
<!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 - Stellenangebote</title>
|
||||
<!-- Meta Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1304867248096206');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=1304867248096206&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Meta Pixel Code -->
|
||||
<!--
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org/",
|
||||
"@type": "JobPosting",
|
||||
"title": "Auszubildende/r zur Medizinischen Fachangestellten (MFA) (m/w/d)",
|
||||
"description": "Starte deine Karriere in unserer modernen Praxis! Bist du kommunikativ, hilfsbereit und interessierst dich für den medizinischen Bereich? Dann bist du bei uns genau richtig! Die Praxis Creutzburg bietet dir die Möglichkeit, eine abwechslungsreiche und spannende Ausbildung zur Medizinischen Fachangestellten (MFA) zu beginnen. Aufgaben: Assistenz bei Untersuchungen und Behandlungen, Patientenbetreuung und -beratung, Praxishygiene, Unterstützung bei Diagnostik und Therapie, Verwaltung und Abrechnung, Notfallmaßnahmen, Datenschutz. Wir bieten: fundierte Ausbildung, freundliches Team, moderne Ausstattung, Weiterbildungsmöglichkeiten, Unterstützung bei Führerschein und Studium.",
|
||||
"datePosted": "2025-08-26",
|
||||
"validThrough": "2025-12-31T23:59",
|
||||
"employmentType": "FULL_TIME",
|
||||
"hiringOrganization": {
|
||||
"@type": "Organization",
|
||||
"name": "Praxis Creutzburg",
|
||||
"sameAs": "https://www.praxis-creutzburg.de",
|
||||
"logo": "https://praxis-creutzburg.de/images/logo-arzt-creutzburg-coppen.gif"
|
||||
},
|
||||
"jobLocation": {
|
||||
"@type": "Place",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "Schlossstraße 18",
|
||||
"addressLocality": "Coppenbrügge",
|
||||
"postalCode": "31863",
|
||||
"addressCountry": "DE"
|
||||
}
|
||||
},
|
||||
"applicantLocationRequirements": {
|
||||
"@type": "Country",
|
||||
"name": "DE"
|
||||
},
|
||||
"educationRequirements": {
|
||||
"@type": "EducationalOccupationalCredential",
|
||||
"credentialCategory": "secondary",
|
||||
"description": "Mindestens Realschulabschluss oder sehr guter Hauptschulabschluss"
|
||||
},
|
||||
"qualifications": "Kommunikative Fähigkeiten, Verschwiegenheit, Kundenorientierung, Belastbarkeit, Teamfähigkeit, Interesse an medizinischen Themen.",
|
||||
"incentiveCompensation": "Faire Vergütung, Weiterbildungsmöglichkeiten (z. B. VERAH), Unterstützung bei Führerschein und Studium.",
|
||||
"industry": "Gesundheitswesen",
|
||||
"occupationalCategory": "3220",
|
||||
"experienceRequirements": "Keine Berufserfahrung erforderlich – Ausbildungsstelle.",
|
||||
"jobBenefits": [
|
||||
"Abwechslungsreiche Ausbildung",
|
||||
"Einblick in alle Bereiche einer Hausarztpraxis",
|
||||
"Engagiertes und freundliches Team",
|
||||
"Aktuelle IT-Ausstattung",
|
||||
"Flache Hierarchien",
|
||||
"Unterstützung bei Führerschein und Studium"
|
||||
],
|
||||
"applicationContact": {
|
||||
"@type": "ContactPoint",
|
||||
"name": "Dalia Alayan-Ibrahim",
|
||||
"email": "alayan@praxis-creutzburg.de",
|
||||
"contactType": "Bewerbung"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body >
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header" class="skel-layers-fixed">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
include('menu.php');
|
||||
include("inc/config.inc.php");
|
||||
include("inc/functions.inc.php");
|
||||
include('inc/functions.impfen.inc.php');
|
||||
?>
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
<!--
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<section class="box">
|
||||
<h2>Auszubildende/r zur Medizinischen Fachangestellten (MFA) (m/w/d)</h2>
|
||||
|
||||
<h3>Starte deine Karriere in unserer modernen Praxis!</h3>
|
||||
<p>Bist du kommunikativ, hilfsbereit und interessierst dich für den medizinischen Bereich? Dann bist du bei uns genau richtig! Die Praxis Creutzburg bietet dir die Möglichkeit, eine abwechslungsreiche und spannende Ausbildung zur Medizinischen Fachangestellten (MFA) zu beginnen. Wir legen großen Wert auf Teamarbeit, eine freundliche Atmosphäre und moderne Arbeitsbedingungen.</p>
|
||||
<p>Werde Teil eines motivierten Teams und profitiere von unserer langjährigen Erfahrung in der Ausbildung. Wir begleiten dich auf deinem Weg zum Erfolg und bieten dir beste Voraussetzungen für deine berufliche Zukunft.</p>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Wir suchen zu <strong>sofort</strong> eine/n motivierte/n Auszubildende/n zur Verstärkung unseres Praxisteams.</p>
|
||||
|
||||
<h3>Deine Aufgaben:</h3>
|
||||
<ul>
|
||||
<li>Assistenz bei Untersuchungen und Behandlungen</li>
|
||||
<li>Patientenbetreuung und -beratung</li>
|
||||
<li>Gesundheitsschutz und Maßnahmen zur Arbeits- und Praxishygiene</li>
|
||||
<li>Gesetzliche und vertragliche Vorgaben der medizinischen Versorgung einhalten</li>
|
||||
<li>Assistenz bei Diagnostik und Therapie</li>
|
||||
<li>Umgang mit Arzneimitteln, Injektionen und Infusionen</li>
|
||||
<li>Planung und Umsetzung von Präventions- und Rehabilitationsmaßnahmen</li>
|
||||
<li>Betriebsorganisation, Verwaltung und Abrechnung durchführen</li>
|
||||
<li>Qualitätsmanagement und Dokumentationen sicherstellen</li>
|
||||
<li>Schriftverkehr und organisatorische Aufgaben übernehmen</li>
|
||||
<li>Notfallmaßnahmen einleiten und begleiten</li>
|
||||
<li>Datenschutz und Datensicherheit gewährleisten</li>
|
||||
</ul>
|
||||
|
||||
<h3>Dein Profil:</h3>
|
||||
<ul>
|
||||
<li>Mindestens einen Realschulabschluss oder sehr guten Hauptschulabschluss</li>
|
||||
<li>Ausgeprägte kommunikative Fähigkeiten und ein hohes Maß an Verschwiegenheit</li>
|
||||
<li>Kundenorientierung und ein sicheres Auftreten</li>
|
||||
<li>Belastbarkeit und exaktes Arbeiten auch unter Druck</li>
|
||||
<li>Selbstständigkeit und Teamfähigkeit</li>
|
||||
<li>Interesse an medizinischen Themen und Organisation</li>
|
||||
</ul>
|
||||
|
||||
<h3>Wir bieten:</h3>
|
||||
<ul>
|
||||
<li>Eine fundierte und abwechslungsreiche Ausbildung</li>
|
||||
<li>Einblick in alle Bereiche einer ländlichen Hausarztpraxis</li>
|
||||
<li>Ein engagiertes und freundliches Team</li>
|
||||
<li>Aktuelle IT-Ausstattung inklusive Telefonanlage</li>
|
||||
<li>Flache Hierarchien und offene Kommunikation</li>
|
||||
<li>Faire Vergütung und Vertrauensarbeitszeit</li>
|
||||
<li>Weiterbildungsmöglichkeiten z.B. VERAH</li>
|
||||
<li>Unterstützung bei einem Führerschein</li>
|
||||
<li>Unterstützung bei einem ausbildungsbegleitendem Studium </li>
|
||||
<li>Raum für patientenorientiere Lösungen, wie z.B. <a href="https://www.dewezet.de/lokales/hameln-pyrmont/hameln/sumpfblume-impfen-bis-die-nadel-glueht-D27ZAZAAF52AY2FFA4365B44YA.html" target="_blank">bei unseren Impfaktionen</a></li>
|
||||
|
||||
</ul>
|
||||
<h3>Fragen:</h3>
|
||||
<p>Du hast grundsätzlich Fragen oder etwas ist unklar?<br>
|
||||
Telefonisch kannst du uns eine Nachricht auf unserem Anrufbeantworter hinterlassen. <br>Unser Praxisteam ruft dich schnellstmöglich zurück.<br>
|
||||
Per Mail wende dich bitte an Dalia Alayan-Ibrahim <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a><br>
|
||||
</p>
|
||||
|
||||
<section class="box" style="border-left:4px solid #2e7; background:#f7fff9;">
|
||||
<h3 style="margin-bottom:.4rem;">Onlinebewerbung</h3>
|
||||
<p style="margin:0 0 .8rem 0;">
|
||||
Bei uns kannst du dich <strong>einfach und schnell</strong> online bewerben! Die Bewerbung dauert 1-2 Minuten.
|
||||
</p>
|
||||
<ul class="actions">
|
||||
<li><a href="kurzbewerbung.php" class="button">Onlinebewerbung</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<h3>Bewerbung:</h3>
|
||||
<p>Bitte sende deine vollständigen Bewerbungsunterlagen an:</p>
|
||||
<p><strong>Praxis Creutzburg</strong><br>
|
||||
z.H. Dalia Alayan-Ibrahim<br>
|
||||
Schlossstraße 18<br>
|
||||
31863 Coppenbrügge<br>
|
||||
E-Mail: <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a></p>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form action="stellenangebote.php" method=POST>
|
||||
<input type=submit class=button value="Zu den Stellenangeboten">
|
||||
</form>
|
||||
</section>
|
||||
-->
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?></body>
|
||||
</html>
|
||||
+216
-216
@@ -1,217 +1,217 @@
|
||||
<!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 - Stellenangebote</title>
|
||||
<!-- Meta Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1304867248096206');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=1304867248096206&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Meta Pixel Code -->
|
||||
<!--
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org/",
|
||||
"@type": "JobPosting",
|
||||
"title": "Medizinische Fachangestellte (MFA) in Teilzeit (m/w/d)",
|
||||
"description": "Zur Verstärkung unseres Teams suchen wir ab sofort eine Medizinische Fachangestellte (MFA) in Teilzeit mit ca. 20 Stunden pro Woche. Aufgaben: Assistenz bei Untersuchungen und Behandlungen, Patientenbetreuung und -beratung, Praxishygiene, Assistenz bei Diagnostik und Therapie, Umgang mit Arzneimitteln, Injektionen und Infusionen, Organisation und Abrechnung, Notfallmaßnahmen, Datenschutz. Dein Profil: Abgeschlossene Ausbildung als MFA, Teilzeitverfügbarkeit (20 Std./Woche), professionelles Auftreten, Teamgeist, Verschwiegenheit, Laborerfahrung und EDV-Kenntnisse von Vorteil. Wir bieten: Abwechslungsreiche Tätigkeit, modernes Arbeitsumfeld, flache Hierarchien, strukturierte Praxisprozesse, papierlose Patientenakte, Online-Systeme, Weiterbildungsmöglichkeiten (z.B. VERAH), tarifnahe Vergütung, Unterstützung bei Studium, patientenorientierte Lösungen.",
|
||||
"datePosted": "2025-08-26",
|
||||
"validThrough": "2025-12-31T23:59",
|
||||
"employmentType": "PART_TIME",
|
||||
"hiringOrganization": {
|
||||
"@type": "Organization",
|
||||
"name": "Praxis Creutzburg",
|
||||
"sameAs": "https://www.praxis-creutzburg.de",
|
||||
"logo": "https://www.praxis-creutzburg.de/logo.png"
|
||||
},
|
||||
"jobLocation": {
|
||||
"@type": "Place",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "Schlossstraße 18",
|
||||
"addressLocality": "Coppenbrügge",
|
||||
"postalCode": "31863",
|
||||
"addressCountry": "DE"
|
||||
}
|
||||
},
|
||||
"applicantLocationRequirements": {
|
||||
"@type": "Country",
|
||||
"name": "DE"
|
||||
},
|
||||
"educationRequirements": {
|
||||
"@type": "EducationalOccupationalCredential",
|
||||
"credentialCategory": "vocational",
|
||||
"description": "Abgeschlossene Ausbildung als Medizinische Fachangestellte (MFA)"
|
||||
},
|
||||
"qualifications": "Abgeschlossene MFA-Ausbildung, Teilzeitverfügbarkeit (20 Std./Woche), freundliches Auftreten, Teamgeist, Verschwiegenheit, Laborerfahrung und EDV-Kenntnisse von Vorteil.",
|
||||
"incentiveCompensation": "An den Tarif angelehnte Vergütung, Weiterbildungsmöglichkeiten (z.B. VERAH), Unterstützung bei Studium.",
|
||||
"industry": "Gesundheitswesen",
|
||||
"occupationalCategory": "3256",
|
||||
"experienceRequirements": "Berufserfahrung als Medizinische Fachangestellte wünschenswert.",
|
||||
"jobBenefits": [
|
||||
"Abwechslungsreiche Tätigkeit",
|
||||
"Modernes Arbeitsumfeld",
|
||||
"Flache Hierarchien",
|
||||
"Strukturierte Praxisprozesse",
|
||||
"Papierlose Patientenakte & Online-Systeme",
|
||||
"Flexible Arbeitsgestaltung",
|
||||
"Weiterbildungsmöglichkeiten (z. B. VERAH)",
|
||||
"Tarifnahe Vergütung",
|
||||
"Unterstützung bei Studium",
|
||||
"Patientenorientierte Lösungen"
|
||||
],
|
||||
"applicationContact": {
|
||||
"@type": "ContactPoint",
|
||||
"name": "Dalia Alayan-Ibrahim",
|
||||
"email": "alayan@praxis-creutzburg.de",
|
||||
"contactType": "Bewerbung"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
-->
|
||||
|
||||
|
||||
</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');
|
||||
?>
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<!--
|
||||
<section class="box">
|
||||
<h3>Ihre Hausarztpraxis in Coppenbrügge und Bisperode</h3>
|
||||
|
||||
Die Praxis Creutzburg hat aktuell die folgende Stellausschreibungen.<br>
|
||||
|
||||
</section>
|
||||
<section class="box">
|
||||
<h2>Medizinische Fachangestellte (MFA) in Teilzeit (m/w/d)</h2>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Zur Verstärkung unseres Teams suchen wir ab <strong>sofort</strong> eine <strong>Medizinische Fachangestellte (MFA)</strong> in Teilzeit mit ca. <strong>20 Stunden pro Woche</strong>.</p>
|
||||
|
||||
<h3>Deine Aufgaben:</h3>
|
||||
<ul>
|
||||
<li>Assistenz bei Untersuchungen und Behandlungen</li>
|
||||
<li>Patientenbetreuung und -beratung</li>
|
||||
<li>Gesundheitsschutz und Maßnahmen zur Arbeits- und Praxishygiene</li>
|
||||
<li>Gesetzliche und vertragliche Vorgaben der medizinischen Versorgung einhalten</li>
|
||||
<li>Assistenz bei Diagnostik und Therapie</li>
|
||||
<li>Umgang mit Arzneimitteln, Injektionen und Infusionen</li>
|
||||
<li>Planung und Umsetzung von Präventions- und Rehabilitationsmaßnahmen</li>
|
||||
<li>Betriebsorganisation, Verwaltung und Abrechnung durchführen</li>
|
||||
<li>Qualitätsmanagement und Dokumentationen sicherstellen</li>
|
||||
<li>Schriftverkehr und organisatorische Aufgaben übernehmen</li>
|
||||
<li>Notfallmaßnahmen einleiten und begleiten</li>
|
||||
<li>Datenschutz und Datensicherheit gewährleisten</li>
|
||||
</ul>
|
||||
|
||||
<section>
|
||||
<h2>Dein Profil:</h2>
|
||||
<ul>
|
||||
<li>Abgeschlossene Ausbildung als Medizinische Fachangestellte (MFA)</li>
|
||||
<li>Teilzeitverfügbarkeit (20 Stunden pro Woche)</li>
|
||||
<li>Freundliches und professionelles Auftreten</li>
|
||||
<li>Zuverlässigkeit, Verschwiegenheit und Teamgeist</li>
|
||||
<li>Laborerfahrung und EDV-Kenntnisse sind von Vorteil</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<h3>Wir bieten:</h3>
|
||||
<ul>
|
||||
<li>Eine abwechslungsreiche Tätigkeit in einem modernen Arbeitsumfeld</li>
|
||||
<li>Flache Hierarchien und ein familäres Miteinander</li>
|
||||
<li>Sehr gut struktierte Praxisprozesse und Terminplanung</li>
|
||||
<li>Moderne IT-Ausstattung inkl. papierloser Patientenakte, Online-Anfragesystem und Telefonanlage</li>
|
||||
<li>Flexible Anpassung an aktuelle Situationen</li>
|
||||
<li>Weiterbildungsmöglichkeiten z.B. VERAH uvw.</li>
|
||||
<li>Eine an den Tarif angelehnte Vergütung</li>
|
||||
<li>Ein Chef, der hinter seinen Mitarbeitern steht</li>
|
||||
<li>Unterstützung bei einem ausbildungsbegleitendem Studium </li>
|
||||
<li>Raum für patientenorientiere Lösungen, wie z.B. <a href="https://www.dewezet.de/lokales/hameln-pyrmont/hameln/sumpfblume-impfen-bis-die-nadel-glueht-D27ZAZAAF52AY2FFA4365B44YA.html" target="_blank">bei unseren Impfaktionen</a></li>
|
||||
|
||||
</ul>
|
||||
<h3>Fragen:</h3>
|
||||
<p>Du hast grundsätzlich Fragen oder etwas ist unklar?<br>
|
||||
Telefonisch kannst du uns eine Nachricht auf unserem Anrufbeantworter hinterlassen. <br>Unser Praxisteam ruft dich schnellstmöglich zurück.<br>
|
||||
Per Mail wende dich bitte an Dalia Alayan-Ibrahim <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a><br>
|
||||
</p>
|
||||
|
||||
<section class="box" style="border-left:4px solid #2e7; background:#f7fff9;">
|
||||
<h3 style="margin-bottom:.4rem;">Onlinebewerbung</h3>
|
||||
<p style="margin:0 0 .8rem 0;">
|
||||
Bei uns kannst du dich <strong>einfach und schnell</strong> online bewerben! Die Bewerbung dauert 1-2 Minuten.
|
||||
</p>
|
||||
<ul class="actions">
|
||||
<li><a href="kurzbewerbung.php" class="button">Onlinebewerbung</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<h3>Bewerbung:</h3>
|
||||
<p>Bitte sende deine vollständigen Bewerbungsunterlagen an:</p>
|
||||
<p><strong>Praxis Creutzburg</strong><br>
|
||||
z.H. Dalia Alayan-Ibrahim<br>
|
||||
Schlossstraße 18<br>
|
||||
31863 Coppenbrügge<br>
|
||||
E-Mail: <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a></p>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form action="stellenangebote.php" method=POST>
|
||||
<input type=submit class=button value="Zu den Stellenangeboten">
|
||||
</form>
|
||||
</section>
|
||||
-->
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?></body>
|
||||
<!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 - Stellenangebote</title>
|
||||
<!-- Meta Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1304867248096206');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=1304867248096206&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Meta Pixel Code -->
|
||||
<!--
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org/",
|
||||
"@type": "JobPosting",
|
||||
"title": "Medizinische Fachangestellte (MFA) in Teilzeit (m/w/d)",
|
||||
"description": "Zur Verstärkung unseres Teams suchen wir ab sofort eine Medizinische Fachangestellte (MFA) in Teilzeit mit ca. 20 Stunden pro Woche. Aufgaben: Assistenz bei Untersuchungen und Behandlungen, Patientenbetreuung und -beratung, Praxishygiene, Assistenz bei Diagnostik und Therapie, Umgang mit Arzneimitteln, Injektionen und Infusionen, Organisation und Abrechnung, Notfallmaßnahmen, Datenschutz. Dein Profil: Abgeschlossene Ausbildung als MFA, Teilzeitverfügbarkeit (20 Std./Woche), professionelles Auftreten, Teamgeist, Verschwiegenheit, Laborerfahrung und EDV-Kenntnisse von Vorteil. Wir bieten: Abwechslungsreiche Tätigkeit, modernes Arbeitsumfeld, flache Hierarchien, strukturierte Praxisprozesse, papierlose Patientenakte, Online-Systeme, Weiterbildungsmöglichkeiten (z.B. VERAH), tarifnahe Vergütung, Unterstützung bei Studium, patientenorientierte Lösungen.",
|
||||
"datePosted": "2025-08-26",
|
||||
"validThrough": "2025-12-31T23:59",
|
||||
"employmentType": "PART_TIME",
|
||||
"hiringOrganization": {
|
||||
"@type": "Organization",
|
||||
"name": "Praxis Creutzburg",
|
||||
"sameAs": "https://www.praxis-creutzburg.de",
|
||||
"logo": "https://www.praxis-creutzburg.de/logo.png"
|
||||
},
|
||||
"jobLocation": {
|
||||
"@type": "Place",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "Schlossstraße 18",
|
||||
"addressLocality": "Coppenbrügge",
|
||||
"postalCode": "31863",
|
||||
"addressCountry": "DE"
|
||||
}
|
||||
},
|
||||
"applicantLocationRequirements": {
|
||||
"@type": "Country",
|
||||
"name": "DE"
|
||||
},
|
||||
"educationRequirements": {
|
||||
"@type": "EducationalOccupationalCredential",
|
||||
"credentialCategory": "vocational",
|
||||
"description": "Abgeschlossene Ausbildung als Medizinische Fachangestellte (MFA)"
|
||||
},
|
||||
"qualifications": "Abgeschlossene MFA-Ausbildung, Teilzeitverfügbarkeit (20 Std./Woche), freundliches Auftreten, Teamgeist, Verschwiegenheit, Laborerfahrung und EDV-Kenntnisse von Vorteil.",
|
||||
"incentiveCompensation": "An den Tarif angelehnte Vergütung, Weiterbildungsmöglichkeiten (z.B. VERAH), Unterstützung bei Studium.",
|
||||
"industry": "Gesundheitswesen",
|
||||
"occupationalCategory": "3256",
|
||||
"experienceRequirements": "Berufserfahrung als Medizinische Fachangestellte wünschenswert.",
|
||||
"jobBenefits": [
|
||||
"Abwechslungsreiche Tätigkeit",
|
||||
"Modernes Arbeitsumfeld",
|
||||
"Flache Hierarchien",
|
||||
"Strukturierte Praxisprozesse",
|
||||
"Papierlose Patientenakte & Online-Systeme",
|
||||
"Flexible Arbeitsgestaltung",
|
||||
"Weiterbildungsmöglichkeiten (z. B. VERAH)",
|
||||
"Tarifnahe Vergütung",
|
||||
"Unterstützung bei Studium",
|
||||
"Patientenorientierte Lösungen"
|
||||
],
|
||||
"applicationContact": {
|
||||
"@type": "ContactPoint",
|
||||
"name": "Dalia Alayan-Ibrahim",
|
||||
"email": "alayan@praxis-creutzburg.de",
|
||||
"contactType": "Bewerbung"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
-->
|
||||
|
||||
|
||||
</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');
|
||||
?>
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<!--
|
||||
<section class="box">
|
||||
<h3>Ihre Hausarztpraxis in Coppenbrügge und Bisperode</h3>
|
||||
|
||||
Die Praxis Creutzburg hat aktuell die folgende Stellausschreibungen.<br>
|
||||
|
||||
</section>
|
||||
<section class="box">
|
||||
<h2>Medizinische Fachangestellte (MFA) in Teilzeit (m/w/d)</h2>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Zur Verstärkung unseres Teams suchen wir ab <strong>sofort</strong> eine <strong>Medizinische Fachangestellte (MFA)</strong> in Teilzeit mit ca. <strong>20 Stunden pro Woche</strong>.</p>
|
||||
|
||||
<h3>Deine Aufgaben:</h3>
|
||||
<ul>
|
||||
<li>Assistenz bei Untersuchungen und Behandlungen</li>
|
||||
<li>Patientenbetreuung und -beratung</li>
|
||||
<li>Gesundheitsschutz und Maßnahmen zur Arbeits- und Praxishygiene</li>
|
||||
<li>Gesetzliche und vertragliche Vorgaben der medizinischen Versorgung einhalten</li>
|
||||
<li>Assistenz bei Diagnostik und Therapie</li>
|
||||
<li>Umgang mit Arzneimitteln, Injektionen und Infusionen</li>
|
||||
<li>Planung und Umsetzung von Präventions- und Rehabilitationsmaßnahmen</li>
|
||||
<li>Betriebsorganisation, Verwaltung und Abrechnung durchführen</li>
|
||||
<li>Qualitätsmanagement und Dokumentationen sicherstellen</li>
|
||||
<li>Schriftverkehr und organisatorische Aufgaben übernehmen</li>
|
||||
<li>Notfallmaßnahmen einleiten und begleiten</li>
|
||||
<li>Datenschutz und Datensicherheit gewährleisten</li>
|
||||
</ul>
|
||||
|
||||
<section>
|
||||
<h2>Dein Profil:</h2>
|
||||
<ul>
|
||||
<li>Abgeschlossene Ausbildung als Medizinische Fachangestellte (MFA)</li>
|
||||
<li>Teilzeitverfügbarkeit (20 Stunden pro Woche)</li>
|
||||
<li>Freundliches und professionelles Auftreten</li>
|
||||
<li>Zuverlässigkeit, Verschwiegenheit und Teamgeist</li>
|
||||
<li>Laborerfahrung und EDV-Kenntnisse sind von Vorteil</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<h3>Wir bieten:</h3>
|
||||
<ul>
|
||||
<li>Eine abwechslungsreiche Tätigkeit in einem modernen Arbeitsumfeld</li>
|
||||
<li>Flache Hierarchien und ein familäres Miteinander</li>
|
||||
<li>Sehr gut struktierte Praxisprozesse und Terminplanung</li>
|
||||
<li>Moderne IT-Ausstattung inkl. papierloser Patientenakte, Online-Anfragesystem und Telefonanlage</li>
|
||||
<li>Flexible Anpassung an aktuelle Situationen</li>
|
||||
<li>Weiterbildungsmöglichkeiten z.B. VERAH uvw.</li>
|
||||
<li>Eine an den Tarif angelehnte Vergütung</li>
|
||||
<li>Ein Chef, der hinter seinen Mitarbeitern steht</li>
|
||||
<li>Unterstützung bei einem ausbildungsbegleitendem Studium </li>
|
||||
<li>Raum für patientenorientiere Lösungen, wie z.B. <a href="https://www.dewezet.de/lokales/hameln-pyrmont/hameln/sumpfblume-impfen-bis-die-nadel-glueht-D27ZAZAAF52AY2FFA4365B44YA.html" target="_blank">bei unseren Impfaktionen</a></li>
|
||||
|
||||
</ul>
|
||||
<h3>Fragen:</h3>
|
||||
<p>Du hast grundsätzlich Fragen oder etwas ist unklar?<br>
|
||||
Telefonisch kannst du uns eine Nachricht auf unserem Anrufbeantworter hinterlassen. <br>Unser Praxisteam ruft dich schnellstmöglich zurück.<br>
|
||||
Per Mail wende dich bitte an Dalia Alayan-Ibrahim <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a><br>
|
||||
</p>
|
||||
|
||||
<section class="box" style="border-left:4px solid #2e7; background:#f7fff9;">
|
||||
<h3 style="margin-bottom:.4rem;">Onlinebewerbung</h3>
|
||||
<p style="margin:0 0 .8rem 0;">
|
||||
Bei uns kannst du dich <strong>einfach und schnell</strong> online bewerben! Die Bewerbung dauert 1-2 Minuten.
|
||||
</p>
|
||||
<ul class="actions">
|
||||
<li><a href="kurzbewerbung.php" class="button">Onlinebewerbung</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<h3>Bewerbung:</h3>
|
||||
<p>Bitte sende deine vollständigen Bewerbungsunterlagen an:</p>
|
||||
<p><strong>Praxis Creutzburg</strong><br>
|
||||
z.H. Dalia Alayan-Ibrahim<br>
|
||||
Schlossstraße 18<br>
|
||||
31863 Coppenbrügge<br>
|
||||
E-Mail: <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a></p>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form action="stellenangebote.php" method=POST>
|
||||
<input type=submit class=button value="Zu den Stellenangeboten">
|
||||
</form>
|
||||
</section>
|
||||
-->
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?></body>
|
||||
</html>
|
||||
+16
-16
@@ -1,17 +1,17 @@
|
||||
input[type="number"],input[type="date"] {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-o-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
background: #f8f8f8;
|
||||
border-radius: 6px;
|
||||
border: solid 1px #e5e5e5;
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
height: 3em;
|
||||
input[type="number"],input[type="date"] {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-o-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
background: #f8f8f8;
|
||||
border-radius: 6px;
|
||||
border: solid 1px #e5e5e5;
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
height: 3em;
|
||||
}
|
||||
+21
-21
@@ -1,22 +1,22 @@
|
||||
#marquee-cont {
|
||||
background: #ff6363;
|
||||
margin-top:10px;
|
||||
}
|
||||
#marquee-cont marquee {
|
||||
margin-top: 5px;
|
||||
background: #ff6363;
|
||||
}
|
||||
#marquee-news {
|
||||
|
||||
background: #1174A8;
|
||||
padding: 5px;
|
||||
}
|
||||
#ticker-title{
|
||||
border:none;
|
||||
padding:5px 20px;
|
||||
background:#1174A8;
|
||||
color:white;
|
||||
}
|
||||
#ticker-title:focus{
|
||||
outline:none;
|
||||
#marquee-cont {
|
||||
background: #ff6363;
|
||||
margin-top:10px;
|
||||
}
|
||||
#marquee-cont marquee {
|
||||
margin-top: 5px;
|
||||
background: #ff6363;
|
||||
}
|
||||
#marquee-news {
|
||||
|
||||
background: #1174A8;
|
||||
padding: 5px;
|
||||
}
|
||||
#ticker-title{
|
||||
border:none;
|
||||
padding:5px 20px;
|
||||
background:#1174A8;
|
||||
color:white;
|
||||
}
|
||||
#ticker-title:focus{
|
||||
outline:none;
|
||||
}
|
||||
+446
-446
File diff suppressed because one or more lines are too long
+371
-371
@@ -1,372 +1,372 @@
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: false,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: false,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
//lang: 'en',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/#privacy',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/#datenschutz',
|
||||
consentModal: {
|
||||
description:
|
||||
'Hier können Sie einsehen und anpassen, welche Information wir über Sie sammeln. Einträge die als "Beispiel" gekennzeichnet sind dienen lediglich zu Demonstrationszwecken und werden nicht wirklich verwendet.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Anzeigen von Werbeanzeigen (Beispiel)',
|
||||
title: 'Google AdSense Werbezeugs',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Sammeln von Besucherstatistiken',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'Eine Überwachungskamera (nur ein Beispiel zu IMG-Tags)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Schutz gegen DDoS-Angriffe',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat Widget & Sammeln von Besucherstatistiken (nur ein Beispiel)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Echtzeit-Benutzeranalyse (nur ein Beispiel)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>test</u>',
|
||||
description:
|
||||
'Here you can see and customize the information that we collect about you. Entries marked as "Example" are just for demonstration purposes and are not really used on this website.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Displaying of advertisements (just an example)',
|
||||
title: 'Google Adsense Advertisement',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Collecting of visitor statistics',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'A surveillance camera (just an example for an IMG tag)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Protection against DDoS attacks',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat widget & collecting of visitor statistics (just an example)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Real-Time user analytics (just an example)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: false,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
// Each service should have a unique (and short) name.
|
||||
name: 'matomo',
|
||||
|
||||
// If "default" is set to true, the service will be enabled by default
|
||||
// Overwrites global "default" setting.
|
||||
// We recommend leaving this to "false" for services that collect
|
||||
// personal information.
|
||||
default: true,
|
||||
|
||||
// The title of you service as listed in the consent modal.
|
||||
title: 'Matomo/Piwik',
|
||||
|
||||
// The purpose(s) of this service. Will be listed on the consent notice.
|
||||
// Do not forget to add translations for all purposes you list here.
|
||||
purposes: ['analytics'],
|
||||
|
||||
// A list of regex expressions or strings giving the names of
|
||||
// cookies set by this service. If the user withdraws consent for a
|
||||
// given service, Klaro will then automatically delete all matching
|
||||
// cookies.
|
||||
cookies: [
|
||||
// you can also explicitly provide a path and a domain for
|
||||
// a given cookie. This is necessary if you have services that
|
||||
// set cookies for a path that is not "/" or a domain that
|
||||
// is not the current domain. If you do not set these values
|
||||
// properly, the cookie can't be deleted by Klaro
|
||||
// (there is no way to access the path or domain of a cookie in JS)
|
||||
// Notice that it is not possible to delete cookies that were set
|
||||
// on a third-party domain! See the note at mdn:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#new-cookie_domain
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
],
|
||||
|
||||
// An optional callback function that will be called each time
|
||||
// the consent state for the service changes (true=consented). Passes
|
||||
// the `service` config as the second parameter as well.
|
||||
callback: function(consent, service) {
|
||||
// This is an example callback function.
|
||||
console.log(
|
||||
'User consent for service ' + service.name + ': consent=' + consent
|
||||
);
|
||||
// To be used in conjunction with Matomo 'requireCookieConsent' Feature, Matomo 3.14.0 or newer
|
||||
// For further Information see https://matomo.org/faq/new-to-piwik/how-can-i-still-track-a-visitor-without-cookies-even-if-they-decline-the-cookie-consent/
|
||||
/*
|
||||
if(consent==true){
|
||||
_paq.push(['rememberCookieConsentGiven']);
|
||||
} else {
|
||||
_paq.push(['forgetCookieConsentGiven']);
|
||||
}
|
||||
*/
|
||||
},
|
||||
|
||||
// If "required" is set to true, Klaro will not allow this service to
|
||||
// be disabled by the user.
|
||||
required: false,
|
||||
|
||||
// If "optOut" is set to true, Klaro will load this service even before
|
||||
// the user gave explicit consent.
|
||||
// We recommend always leaving this "false".
|
||||
optOut: false,
|
||||
|
||||
// If "onlyOnce" is set to true, the service will only be executed
|
||||
// once regardless how often the user toggles it on and off.
|
||||
onlyOnce: true,
|
||||
},
|
||||
|
||||
// The services will appear in the modal in the same order as defined here.
|
||||
{
|
||||
name: 'inlineTracker',
|
||||
title: 'Inline Tracker',
|
||||
purposes: ['analytics'],
|
||||
cookies: ['inline-tracker'],
|
||||
optOut: false,
|
||||
},
|
||||
{
|
||||
name: 'externalTracker',
|
||||
title: 'External Tracker',
|
||||
purposes: ['analytics', 'security'],
|
||||
cookies: ['external-tracker'],
|
||||
},
|
||||
{
|
||||
name: 'intercom',
|
||||
title: 'Intercom',
|
||||
default: true,
|
||||
purposes: ['livechat'],
|
||||
},
|
||||
{
|
||||
name: 'mouseflow',
|
||||
title: 'Mouseflow',
|
||||
purposes: ['analytics'],
|
||||
},
|
||||
{
|
||||
name: 'adsense',
|
||||
// if you omit the title here Klaro will try to look it up in the
|
||||
// translations
|
||||
//title: 'Google AdSense',
|
||||
purposes: ['advertising'],
|
||||
},
|
||||
{
|
||||
name: 'camera',
|
||||
title: 'Surveillance Camera',
|
||||
purposes: ['security'],
|
||||
},
|
||||
/* {
|
||||
name: 'googleFonts',
|
||||
title: 'Google Fonts',
|
||||
purposes: ['styling'],
|
||||
},*/
|
||||
{
|
||||
name: 'cloudflare',
|
||||
title: 'Cloudflare',
|
||||
purposes: ['security'],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
purposes: ['marketing'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
name: 'google-analytics',
|
||||
purposes: ['marketing'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: false,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: false,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
//lang: 'en',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/#privacy',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/#datenschutz',
|
||||
consentModal: {
|
||||
description:
|
||||
'Hier können Sie einsehen und anpassen, welche Information wir über Sie sammeln. Einträge die als "Beispiel" gekennzeichnet sind dienen lediglich zu Demonstrationszwecken und werden nicht wirklich verwendet.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Anzeigen von Werbeanzeigen (Beispiel)',
|
||||
title: 'Google AdSense Werbezeugs',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Sammeln von Besucherstatistiken',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'Eine Überwachungskamera (nur ein Beispiel zu IMG-Tags)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Schutz gegen DDoS-Angriffe',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat Widget & Sammeln von Besucherstatistiken (nur ein Beispiel)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Echtzeit-Benutzeranalyse (nur ein Beispiel)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>test</u>',
|
||||
description:
|
||||
'Here you can see and customize the information that we collect about you. Entries marked as "Example" are just for demonstration purposes and are not really used on this website.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Displaying of advertisements (just an example)',
|
||||
title: 'Google Adsense Advertisement',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Collecting of visitor statistics',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'A surveillance camera (just an example for an IMG tag)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Protection against DDoS attacks',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat widget & collecting of visitor statistics (just an example)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Real-Time user analytics (just an example)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: false,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
// Each service should have a unique (and short) name.
|
||||
name: 'matomo',
|
||||
|
||||
// If "default" is set to true, the service will be enabled by default
|
||||
// Overwrites global "default" setting.
|
||||
// We recommend leaving this to "false" for services that collect
|
||||
// personal information.
|
||||
default: true,
|
||||
|
||||
// The title of you service as listed in the consent modal.
|
||||
title: 'Matomo/Piwik',
|
||||
|
||||
// The purpose(s) of this service. Will be listed on the consent notice.
|
||||
// Do not forget to add translations for all purposes you list here.
|
||||
purposes: ['analytics'],
|
||||
|
||||
// A list of regex expressions or strings giving the names of
|
||||
// cookies set by this service. If the user withdraws consent for a
|
||||
// given service, Klaro will then automatically delete all matching
|
||||
// cookies.
|
||||
cookies: [
|
||||
// you can also explicitly provide a path and a domain for
|
||||
// a given cookie. This is necessary if you have services that
|
||||
// set cookies for a path that is not "/" or a domain that
|
||||
// is not the current domain. If you do not set these values
|
||||
// properly, the cookie can't be deleted by Klaro
|
||||
// (there is no way to access the path or domain of a cookie in JS)
|
||||
// Notice that it is not possible to delete cookies that were set
|
||||
// on a third-party domain! See the note at mdn:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#new-cookie_domain
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
],
|
||||
|
||||
// An optional callback function that will be called each time
|
||||
// the consent state for the service changes (true=consented). Passes
|
||||
// the `service` config as the second parameter as well.
|
||||
callback: function(consent, service) {
|
||||
// This is an example callback function.
|
||||
console.log(
|
||||
'User consent for service ' + service.name + ': consent=' + consent
|
||||
);
|
||||
// To be used in conjunction with Matomo 'requireCookieConsent' Feature, Matomo 3.14.0 or newer
|
||||
// For further Information see https://matomo.org/faq/new-to-piwik/how-can-i-still-track-a-visitor-without-cookies-even-if-they-decline-the-cookie-consent/
|
||||
/*
|
||||
if(consent==true){
|
||||
_paq.push(['rememberCookieConsentGiven']);
|
||||
} else {
|
||||
_paq.push(['forgetCookieConsentGiven']);
|
||||
}
|
||||
*/
|
||||
},
|
||||
|
||||
// If "required" is set to true, Klaro will not allow this service to
|
||||
// be disabled by the user.
|
||||
required: false,
|
||||
|
||||
// If "optOut" is set to true, Klaro will load this service even before
|
||||
// the user gave explicit consent.
|
||||
// We recommend always leaving this "false".
|
||||
optOut: false,
|
||||
|
||||
// If "onlyOnce" is set to true, the service will only be executed
|
||||
// once regardless how often the user toggles it on and off.
|
||||
onlyOnce: true,
|
||||
},
|
||||
|
||||
// The services will appear in the modal in the same order as defined here.
|
||||
{
|
||||
name: 'inlineTracker',
|
||||
title: 'Inline Tracker',
|
||||
purposes: ['analytics'],
|
||||
cookies: ['inline-tracker'],
|
||||
optOut: false,
|
||||
},
|
||||
{
|
||||
name: 'externalTracker',
|
||||
title: 'External Tracker',
|
||||
purposes: ['analytics', 'security'],
|
||||
cookies: ['external-tracker'],
|
||||
},
|
||||
{
|
||||
name: 'intercom',
|
||||
title: 'Intercom',
|
||||
default: true,
|
||||
purposes: ['livechat'],
|
||||
},
|
||||
{
|
||||
name: 'mouseflow',
|
||||
title: 'Mouseflow',
|
||||
purposes: ['analytics'],
|
||||
},
|
||||
{
|
||||
name: 'adsense',
|
||||
// if you omit the title here Klaro will try to look it up in the
|
||||
// translations
|
||||
//title: 'Google AdSense',
|
||||
purposes: ['advertising'],
|
||||
},
|
||||
{
|
||||
name: 'camera',
|
||||
title: 'Surveillance Camera',
|
||||
purposes: ['security'],
|
||||
},
|
||||
/* {
|
||||
name: 'googleFonts',
|
||||
title: 'Google Fonts',
|
||||
purposes: ['styling'],
|
||||
},*/
|
||||
{
|
||||
name: 'cloudflare',
|
||||
title: 'Cloudflare',
|
||||
purposes: ['security'],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
purposes: ['marketing'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
name: 'google-analytics',
|
||||
purposes: ['marketing'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
};
|
||||
+237
-237
@@ -1,238 +1,238 @@
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: true,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: true,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
lang: 'de',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'Wir verwenden Cookies um Inhalte und Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Ich bin damit einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'We use cookies to provide content and social media features and to analyze traffic to our website. I agree to this and can revoke or change my consent at any time with effect for the future.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: true,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'doctolib',
|
||||
default: true,
|
||||
purposes: ['styling'],
|
||||
|
||||
cookies: [
|
||||
[/^__cf_bm.*$/, '/', '.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^cookies.js.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^esid.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^temporary_appointment_id.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'www.doctolib.de'],
|
||||
[/^ssid.*$/, '/', 'www.doctolib.de'],
|
||||
['temporary_appointment_id', '/', 'www.doctolib.de'],
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
|
||||
],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
default: true,
|
||||
purposes: ['analytics'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
default: true,
|
||||
name: 'google-analytics',
|
||||
purposes: ['analytics'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: true,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: true,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
lang: 'de',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'Wir verwenden Cookies um Inhalte und Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Ich bin damit einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'We use cookies to provide content and social media features and to analyze traffic to our website. I agree to this and can revoke or change my consent at any time with effect for the future.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: true,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'doctolib',
|
||||
default: true,
|
||||
purposes: ['styling'],
|
||||
|
||||
cookies: [
|
||||
[/^__cf_bm.*$/, '/', '.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^cookies.js.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^esid.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^temporary_appointment_id.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'www.doctolib.de'],
|
||||
[/^ssid.*$/, '/', 'www.doctolib.de'],
|
||||
['temporary_appointment_id', '/', 'www.doctolib.de'],
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
|
||||
],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
default: true,
|
||||
purposes: ['analytics'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
default: true,
|
||||
name: 'google-analytics',
|
||||
purposes: ['analytics'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
};
|
||||
+18
-18
@@ -1,19 +1,19 @@
|
||||
function zweitterminpruefen() {
|
||||
var e = document.getElementById("Terminzeitraum");
|
||||
var timeidjs = e.value;
|
||||
var e = document.getElementById("impfart");
|
||||
var impfart = e.value;
|
||||
if(impfart == 2){
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/zweittermin.php',
|
||||
data: ({
|
||||
timeid: timeidjs
|
||||
})
|
||||
}).responseText;
|
||||
|
||||
document.getElementById("Zweittermin").innerHTML = $result;
|
||||
}
|
||||
|
||||
function zweitterminpruefen() {
|
||||
var e = document.getElementById("Terminzeitraum");
|
||||
var timeidjs = e.value;
|
||||
var e = document.getElementById("impfart");
|
||||
var impfart = e.value;
|
||||
if(impfart == 2){
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/zweittermin.php',
|
||||
data: ({
|
||||
timeid: timeidjs
|
||||
})
|
||||
}).responseText;
|
||||
|
||||
document.getElementById("Zweittermin").innerHTML = $result;
|
||||
}
|
||||
|
||||
}
|
||||
+446
-446
File diff suppressed because one or more lines are too long
+371
-371
@@ -1,372 +1,372 @@
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: false,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: false,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
//lang: 'en',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/#privacy',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/#datenschutz',
|
||||
consentModal: {
|
||||
description:
|
||||
'Hier können Sie einsehen und anpassen, welche Information wir über Sie sammeln. Einträge die als "Beispiel" gekennzeichnet sind dienen lediglich zu Demonstrationszwecken und werden nicht wirklich verwendet.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Anzeigen von Werbeanzeigen (Beispiel)',
|
||||
title: 'Google AdSense Werbezeugs',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Sammeln von Besucherstatistiken',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'Eine Überwachungskamera (nur ein Beispiel zu IMG-Tags)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Schutz gegen DDoS-Angriffe',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat Widget & Sammeln von Besucherstatistiken (nur ein Beispiel)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Echtzeit-Benutzeranalyse (nur ein Beispiel)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>test</u>',
|
||||
description:
|
||||
'Here you can see and customize the information that we collect about you. Entries marked as "Example" are just for demonstration purposes and are not really used on this website.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Displaying of advertisements (just an example)',
|
||||
title: 'Google Adsense Advertisement',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Collecting of visitor statistics',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'A surveillance camera (just an example for an IMG tag)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Protection against DDoS attacks',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat widget & collecting of visitor statistics (just an example)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Real-Time user analytics (just an example)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: false,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
// Each service should have a unique (and short) name.
|
||||
name: 'matomo',
|
||||
|
||||
// If "default" is set to true, the service will be enabled by default
|
||||
// Overwrites global "default" setting.
|
||||
// We recommend leaving this to "false" for services that collect
|
||||
// personal information.
|
||||
default: true,
|
||||
|
||||
// The title of you service as listed in the consent modal.
|
||||
title: 'Matomo/Piwik',
|
||||
|
||||
// The purpose(s) of this service. Will be listed on the consent notice.
|
||||
// Do not forget to add translations for all purposes you list here.
|
||||
purposes: ['analytics'],
|
||||
|
||||
// A list of regex expressions or strings giving the names of
|
||||
// cookies set by this service. If the user withdraws consent for a
|
||||
// given service, Klaro will then automatically delete all matching
|
||||
// cookies.
|
||||
cookies: [
|
||||
// you can also explicitly provide a path and a domain for
|
||||
// a given cookie. This is necessary if you have services that
|
||||
// set cookies for a path that is not "/" or a domain that
|
||||
// is not the current domain. If you do not set these values
|
||||
// properly, the cookie can't be deleted by Klaro
|
||||
// (there is no way to access the path or domain of a cookie in JS)
|
||||
// Notice that it is not possible to delete cookies that were set
|
||||
// on a third-party domain! See the note at mdn:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#new-cookie_domain
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
],
|
||||
|
||||
// An optional callback function that will be called each time
|
||||
// the consent state for the service changes (true=consented). Passes
|
||||
// the `service` config as the second parameter as well.
|
||||
callback: function(consent, service) {
|
||||
// This is an example callback function.
|
||||
console.log(
|
||||
'User consent for service ' + service.name + ': consent=' + consent
|
||||
);
|
||||
// To be used in conjunction with Matomo 'requireCookieConsent' Feature, Matomo 3.14.0 or newer
|
||||
// For further Information see https://matomo.org/faq/new-to-piwik/how-can-i-still-track-a-visitor-without-cookies-even-if-they-decline-the-cookie-consent/
|
||||
/*
|
||||
if(consent==true){
|
||||
_paq.push(['rememberCookieConsentGiven']);
|
||||
} else {
|
||||
_paq.push(['forgetCookieConsentGiven']);
|
||||
}
|
||||
*/
|
||||
},
|
||||
|
||||
// If "required" is set to true, Klaro will not allow this service to
|
||||
// be disabled by the user.
|
||||
required: false,
|
||||
|
||||
// If "optOut" is set to true, Klaro will load this service even before
|
||||
// the user gave explicit consent.
|
||||
// We recommend always leaving this "false".
|
||||
optOut: false,
|
||||
|
||||
// If "onlyOnce" is set to true, the service will only be executed
|
||||
// once regardless how often the user toggles it on and off.
|
||||
onlyOnce: true,
|
||||
},
|
||||
|
||||
// The services will appear in the modal in the same order as defined here.
|
||||
{
|
||||
name: 'inlineTracker',
|
||||
title: 'Inline Tracker',
|
||||
purposes: ['analytics'],
|
||||
cookies: ['inline-tracker'],
|
||||
optOut: false,
|
||||
},
|
||||
{
|
||||
name: 'externalTracker',
|
||||
title: 'External Tracker',
|
||||
purposes: ['analytics', 'security'],
|
||||
cookies: ['external-tracker'],
|
||||
},
|
||||
{
|
||||
name: 'intercom',
|
||||
title: 'Intercom',
|
||||
default: true,
|
||||
purposes: ['livechat'],
|
||||
},
|
||||
{
|
||||
name: 'mouseflow',
|
||||
title: 'Mouseflow',
|
||||
purposes: ['analytics'],
|
||||
},
|
||||
{
|
||||
name: 'adsense',
|
||||
// if you omit the title here Klaro will try to look it up in the
|
||||
// translations
|
||||
//title: 'Google AdSense',
|
||||
purposes: ['advertising'],
|
||||
},
|
||||
{
|
||||
name: 'camera',
|
||||
title: 'Surveillance Camera',
|
||||
purposes: ['security'],
|
||||
},
|
||||
/* {
|
||||
name: 'googleFonts',
|
||||
title: 'Google Fonts',
|
||||
purposes: ['styling'],
|
||||
},*/
|
||||
{
|
||||
name: 'cloudflare',
|
||||
title: 'Cloudflare',
|
||||
purposes: ['security'],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
purposes: ['marketing'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
name: 'google-analytics',
|
||||
purposes: ['marketing'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: false,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: false,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
//lang: 'en',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/#privacy',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/#datenschutz',
|
||||
consentModal: {
|
||||
description:
|
||||
'Hier können Sie einsehen und anpassen, welche Information wir über Sie sammeln. Einträge die als "Beispiel" gekennzeichnet sind dienen lediglich zu Demonstrationszwecken und werden nicht wirklich verwendet.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Anzeigen von Werbeanzeigen (Beispiel)',
|
||||
title: 'Google AdSense Werbezeugs',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Sammeln von Besucherstatistiken',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'Eine Überwachungskamera (nur ein Beispiel zu IMG-Tags)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Schutz gegen DDoS-Angriffe',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat Widget & Sammeln von Besucherstatistiken (nur ein Beispiel)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Echtzeit-Benutzeranalyse (nur ein Beispiel)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>test</u>',
|
||||
description:
|
||||
'Here you can see and customize the information that we collect about you. Entries marked as "Example" are just for demonstration purposes and are not really used on this website.',
|
||||
},
|
||||
adsense: {
|
||||
description: 'Displaying of advertisements (just an example)',
|
||||
title: 'Google Adsense Advertisement',
|
||||
},
|
||||
matomo: {
|
||||
description: 'Collecting of visitor statistics',
|
||||
},
|
||||
camera: {
|
||||
description:
|
||||
'A surveillance camera (just an example for an IMG tag)',
|
||||
},
|
||||
cloudflare: {
|
||||
description: 'Protection against DDoS attacks',
|
||||
},
|
||||
intercom: {
|
||||
description:
|
||||
'Chat widget & collecting of visitor statistics (just an example)',
|
||||
},
|
||||
mouseflow: {
|
||||
description: 'Real-Time user analytics (just an example)',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: false,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
// Each service should have a unique (and short) name.
|
||||
name: 'matomo',
|
||||
|
||||
// If "default" is set to true, the service will be enabled by default
|
||||
// Overwrites global "default" setting.
|
||||
// We recommend leaving this to "false" for services that collect
|
||||
// personal information.
|
||||
default: true,
|
||||
|
||||
// The title of you service as listed in the consent modal.
|
||||
title: 'Matomo/Piwik',
|
||||
|
||||
// The purpose(s) of this service. Will be listed on the consent notice.
|
||||
// Do not forget to add translations for all purposes you list here.
|
||||
purposes: ['analytics'],
|
||||
|
||||
// A list of regex expressions or strings giving the names of
|
||||
// cookies set by this service. If the user withdraws consent for a
|
||||
// given service, Klaro will then automatically delete all matching
|
||||
// cookies.
|
||||
cookies: [
|
||||
// you can also explicitly provide a path and a domain for
|
||||
// a given cookie. This is necessary if you have services that
|
||||
// set cookies for a path that is not "/" or a domain that
|
||||
// is not the current domain. If you do not set these values
|
||||
// properly, the cookie can't be deleted by Klaro
|
||||
// (there is no way to access the path or domain of a cookie in JS)
|
||||
// Notice that it is not possible to delete cookies that were set
|
||||
// on a third-party domain! See the note at mdn:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#new-cookie_domain
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
],
|
||||
|
||||
// An optional callback function that will be called each time
|
||||
// the consent state for the service changes (true=consented). Passes
|
||||
// the `service` config as the second parameter as well.
|
||||
callback: function(consent, service) {
|
||||
// This is an example callback function.
|
||||
console.log(
|
||||
'User consent for service ' + service.name + ': consent=' + consent
|
||||
);
|
||||
// To be used in conjunction with Matomo 'requireCookieConsent' Feature, Matomo 3.14.0 or newer
|
||||
// For further Information see https://matomo.org/faq/new-to-piwik/how-can-i-still-track-a-visitor-without-cookies-even-if-they-decline-the-cookie-consent/
|
||||
/*
|
||||
if(consent==true){
|
||||
_paq.push(['rememberCookieConsentGiven']);
|
||||
} else {
|
||||
_paq.push(['forgetCookieConsentGiven']);
|
||||
}
|
||||
*/
|
||||
},
|
||||
|
||||
// If "required" is set to true, Klaro will not allow this service to
|
||||
// be disabled by the user.
|
||||
required: false,
|
||||
|
||||
// If "optOut" is set to true, Klaro will load this service even before
|
||||
// the user gave explicit consent.
|
||||
// We recommend always leaving this "false".
|
||||
optOut: false,
|
||||
|
||||
// If "onlyOnce" is set to true, the service will only be executed
|
||||
// once regardless how often the user toggles it on and off.
|
||||
onlyOnce: true,
|
||||
},
|
||||
|
||||
// The services will appear in the modal in the same order as defined here.
|
||||
{
|
||||
name: 'inlineTracker',
|
||||
title: 'Inline Tracker',
|
||||
purposes: ['analytics'],
|
||||
cookies: ['inline-tracker'],
|
||||
optOut: false,
|
||||
},
|
||||
{
|
||||
name: 'externalTracker',
|
||||
title: 'External Tracker',
|
||||
purposes: ['analytics', 'security'],
|
||||
cookies: ['external-tracker'],
|
||||
},
|
||||
{
|
||||
name: 'intercom',
|
||||
title: 'Intercom',
|
||||
default: true,
|
||||
purposes: ['livechat'],
|
||||
},
|
||||
{
|
||||
name: 'mouseflow',
|
||||
title: 'Mouseflow',
|
||||
purposes: ['analytics'],
|
||||
},
|
||||
{
|
||||
name: 'adsense',
|
||||
// if you omit the title here Klaro will try to look it up in the
|
||||
// translations
|
||||
//title: 'Google AdSense',
|
||||
purposes: ['advertising'],
|
||||
},
|
||||
{
|
||||
name: 'camera',
|
||||
title: 'Surveillance Camera',
|
||||
purposes: ['security'],
|
||||
},
|
||||
/* {
|
||||
name: 'googleFonts',
|
||||
title: 'Google Fonts',
|
||||
purposes: ['styling'],
|
||||
},*/
|
||||
{
|
||||
name: 'cloudflare',
|
||||
title: 'Cloudflare',
|
||||
purposes: ['security'],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
purposes: ['marketing'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
name: 'google-analytics',
|
||||
purposes: ['marketing'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
};
|
||||
+237
-237
@@ -1,238 +1,238 @@
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: true,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: true,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
lang: 'de',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'Wir verwenden Cookies um Inhalte und Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Ich bin damit einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'We use cookies to provide content and social media features and to analyze traffic to our website. I agree to this and can revoke or change my consent at any time with effect for the future.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: true,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'doctolib',
|
||||
default: true,
|
||||
purposes: ['styling'],
|
||||
|
||||
cookies: [
|
||||
[/^__cf_bm.*$/, '/', '.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^cookies.js.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^esid.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^temporary_appointment_id.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'www.doctolib.de'],
|
||||
[/^ssid.*$/, '/', 'www.doctolib.de'],
|
||||
['temporary_appointment_id', '/', 'www.doctolib.de'],
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
|
||||
],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
default: true,
|
||||
purposes: ['analytics'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
default: true,
|
||||
name: 'google-analytics',
|
||||
purposes: ['analytics'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
// By default, Klaro will load the config from a global "klaroConfig" variable.
|
||||
// You can change this by specifying the "data-config" attribute on your
|
||||
// script take, e.g. like this:
|
||||
// <script src="klaro.js" data-config="myConfigVariableName" />
|
||||
var klaroConfig = {
|
||||
// With the 0.7.0 release we introduce a 'version' paramter that will make
|
||||
// if easier for us to keep configuration files backwards-compatible in the future.
|
||||
version: 1,
|
||||
|
||||
// You can customize the ID of the DIV element that Klaro will create
|
||||
// when starting up. If undefined, Klaro will use 'klaro'.
|
||||
elementID: 'klaro',
|
||||
|
||||
// You can override CSS style variables here. For IE11, Klaro will
|
||||
// dynamically inject the variables into the CSS. If you still consider
|
||||
// supporting IE9-10 (which you probably shouldn't) you need to use Klaro
|
||||
// with an external stylesheet as the dynamic replacement won't work there.
|
||||
styling: {
|
||||
theme: ['light', 'top', 'wide'],
|
||||
},
|
||||
|
||||
// Setting this to true will keep Klaro from automatically loading itself
|
||||
// when the page is being loaded.
|
||||
noAutoLoad: false,
|
||||
|
||||
// Setting this to true will render the descriptions of the consent
|
||||
// modal and consent notice are HTML. Use with care.
|
||||
htmlTexts: true,
|
||||
|
||||
// Setting 'embedded' to true will render the Klaro modal and notice without
|
||||
// the modal background, allowing you to e.g. embed them into a specific element
|
||||
// of your website, such as your privacy notice.
|
||||
embedded: false,
|
||||
|
||||
// You can group services by their purpose in the modal. This is advisable
|
||||
// if you have a large number of services. Users can then enable or disable
|
||||
// entire groups of services instead of having to enable or disable every service.
|
||||
groupByPurpose: true,
|
||||
|
||||
// How Klaro should store the user's preferences. It can be either 'cookie'
|
||||
// (the default) or 'localStorage'.
|
||||
storageMethod: 'cookie',
|
||||
|
||||
// You can customize the name of the cookie that Klaro uses for storing
|
||||
// user consent decisions. If undefined, Klaro will use 'klaro'.
|
||||
cookieName: 'klaro',
|
||||
|
||||
// You can also set a custom expiration time for the Klaro cookie.
|
||||
// By default, it will expire after 120 days.
|
||||
cookieExpiresAfterDays: 365,
|
||||
|
||||
// You can change to cookie domain for the consent manager itself.
|
||||
// Use this if you want to get consent once for multiple matching domains.
|
||||
// If undefined, Klaro will use the current domain.
|
||||
//cookieDomain: '.github.com',
|
||||
|
||||
// You can change to cookie path for the consent manager itself.
|
||||
// Use this to restrict the cookie visibility to a specific path.
|
||||
// If undefined, Klaro will use '/' as cookie path.
|
||||
//cookiePath: '/',
|
||||
|
||||
// Defines the default state for services (true=enabled by default).
|
||||
default: false,
|
||||
|
||||
// If "mustConsent" is set to true, Klaro will directly display the consent
|
||||
// manager modal and not allow the user to close it before having actively
|
||||
// consented or declines the use of third-party services.
|
||||
mustConsent: true,
|
||||
|
||||
// Show "accept all" to accept all services instead of "ok" that only accepts
|
||||
// required and "default: true" services
|
||||
acceptAll: true,
|
||||
|
||||
// replace "decline" with cookie manager modal
|
||||
hideDeclineAll: true,
|
||||
|
||||
// hide "learnMore" link
|
||||
hideLearnMore: false,
|
||||
|
||||
// show cookie notice as modal
|
||||
noticeAsModal: false,
|
||||
|
||||
// You can also remove the 'Realized with Klaro!' text in the consent modal.
|
||||
// Please don't do this! We provide Klaro as a free open source tool.
|
||||
// Placing a link to our website helps us spread the word about it,
|
||||
// which ultimately enables us to make Klaro! better for everyone.
|
||||
// So please be fair and keep the link enabled. Thanks :)
|
||||
//disablePoweredBy: true,
|
||||
|
||||
// you can specify an additional class (or classes) that will be added to the Klaro `div`
|
||||
//additionalClass: 'my-klaro',
|
||||
|
||||
// You can define the UI language directly here. If undefined, Klaro will
|
||||
// use the value given in the global "lang" variable. If that does
|
||||
// not exist, it will use the value given in the "lang" attribute of your
|
||||
// HTML tag. If that also doesn't exist, it will use 'en'.
|
||||
lang: 'de',
|
||||
|
||||
// You can overwrite existing translations and add translations for your
|
||||
// service descriptions and purposes. See `src/translations/` for a full
|
||||
// list of translations that can be overwritten:
|
||||
// https://github.com/KIProtect/klaro/tree/master/src/translations
|
||||
|
||||
// Example config that shows how to overwrite translations:
|
||||
// https://github.com/KIProtect/klaro/blob/master/src/configs/i18n.js
|
||||
translations: {
|
||||
// translationsed defined under the 'zz' language code act as default
|
||||
// translations.
|
||||
zz: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
},
|
||||
// If you erase the "consentModal" translations, Klaro will use the
|
||||
// bundled translations.
|
||||
de: {
|
||||
privacyPolicyUrl: '/datenschutz',
|
||||
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'Wir verwenden Cookies um Inhalte und Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Ich bin damit einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web-Schriftarten von Google gehostet',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Besucher-Statistiken',
|
||||
security: 'Sicherheit',
|
||||
livechat: 'Live Chat',
|
||||
advertising: 'Anzeigen von Werbung',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
en: {
|
||||
consentModal: {
|
||||
title: '<u>Cookie Consent Tool</u>',
|
||||
description:
|
||||
'We use cookies to provide content and social media features and to analyze traffic to our website. I agree to this and can revoke or change my consent at any time with effect for the future.',
|
||||
},
|
||||
googleFonts: {
|
||||
description: 'Web fonts hosted by Google',
|
||||
},
|
||||
purposes: {
|
||||
analytics: 'Analytics',
|
||||
security: 'Security',
|
||||
livechat: 'Livechat',
|
||||
advertising: 'Advertising',
|
||||
styling: 'Styling',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This is a list of third-party services that Klaro will manage for you.
|
||||
services: [
|
||||
{
|
||||
name: 'twitter',
|
||||
default: true,
|
||||
contextualConsentOnly: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
default: true,
|
||||
purposes: ['marketing'],
|
||||
},
|
||||
{
|
||||
name: 'doctolib',
|
||||
default: true,
|
||||
purposes: ['styling'],
|
||||
|
||||
cookies: [
|
||||
[/^__cf_bm.*$/, '/', '.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^cookies.js.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^esid.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^temporary_appointment_id.*$/, '/', 'partners.doctolib.de'],
|
||||
[/^_doctolib_session.*$/, '/', 'www.doctolib.de'],
|
||||
[/^ssid.*$/, '/', 'www.doctolib.de'],
|
||||
['temporary_appointment_id', '/', 'www.doctolib.de'],
|
||||
[/^_pk_.*$/, '/', 'klaro.kiprotect.com'], //for the production version
|
||||
[/^_pk_.*$/, '/', 'localhost'], //for the local version
|
||||
'piwik_ignore',
|
||||
|
||||
],
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'google-tag-manager',
|
||||
default: true,
|
||||
purposes: ['analytics'],
|
||||
onAccept: `
|
||||
// we notify the tag manager about all services that were accepted. You can define
|
||||
// a custom event in GTM to load the service if consent was given.
|
||||
for(let k of Object.keys(opts.consents)){
|
||||
if (opts.consents[k]){
|
||||
let eventName = 'klaro-'+k+'-accepted'
|
||||
dataLayer.push({'event': eventName})
|
||||
}
|
||||
}
|
||||
// if consent for Google Analytics was granted we enable analytics storage
|
||||
if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
|
||||
console.log("Google analytics usage was granted")
|
||||
gtag('consent', 'update', {'analytics_storage': 'granted'})
|
||||
}
|
||||
// if consent for Google Ads was granted we enable ad storage
|
||||
if (opts.consents[opts.vars.adStorageName || 'google-ads']){
|
||||
console.log("Google ads usage was granted")
|
||||
gtag('consent', 'update', {'ad_storage': 'granted'})
|
||||
}
|
||||
`,
|
||||
onInit: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
onDecline: `
|
||||
// initialization code here (will be executed only once per page-load)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
window.gtag = function(){dataLayer.push(arguments)}
|
||||
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
|
||||
gtag('set', 'ads_data_redaction', true)
|
||||
`,
|
||||
vars: {
|
||||
googleAnalytics: 'google-analytics'
|
||||
}
|
||||
},
|
||||
{
|
||||
// In GTM, you should define a custom event trigger named `klaro-google-analytics-accepted` which should trigger the Google Analytics integration.
|
||||
default: true,
|
||||
name: 'google-analytics',
|
||||
purposes: ['analytics'],
|
||||
cookies: [
|
||||
/^_ga(_.*)?/ // we delete the Google Analytics cookies if the user declines its use
|
||||
],
|
||||
}
|
||||
],
|
||||
};
|
||||
+18
-18
@@ -1,19 +1,19 @@
|
||||
function zweitterminpruefen() {
|
||||
var e = document.getElementById("Terminzeitraum");
|
||||
var timeidjs = e.value;
|
||||
var e = document.getElementById("impfart");
|
||||
var impfart = e.value;
|
||||
if(impfart == 2){
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/zweittermin.php',
|
||||
data: ({
|
||||
timeid: timeidjs
|
||||
})
|
||||
}).responseText;
|
||||
|
||||
document.getElementById("Zweittermin").innerHTML = $result;
|
||||
}
|
||||
|
||||
function zweitterminpruefen() {
|
||||
var e = document.getElementById("Terminzeitraum");
|
||||
var timeidjs = e.value;
|
||||
var e = document.getElementById("impfart");
|
||||
var impfart = e.value;
|
||||
if(impfart == 2){
|
||||
result = $.ajax({
|
||||
type: 'POST',
|
||||
async: false,
|
||||
url: 'inc/zweittermin.php',
|
||||
data: ({
|
||||
timeid: timeidjs
|
||||
})
|
||||
}).responseText;
|
||||
|
||||
document.getElementById("Zweittermin").innerHTML = $result;
|
||||
}
|
||||
|
||||
}
|
||||
+276
-276
@@ -1,277 +1,277 @@
|
||||
<!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 - Anamnesebogen</title>
|
||||
<link rel="stylesheet" href="css/formulare.css" />
|
||||
|
||||
<script>
|
||||
function toggleDateInput(selectElement, dateInputId) {
|
||||
var dateInput = document.getElementById(dateInputId);
|
||||
var labelText = document.getElementById('text_' + dateInputId);
|
||||
if (selectElement.value === 'ja') {
|
||||
dateInput.style.display = 'inline';
|
||||
labelText.style.display = 'inline';
|
||||
} else {
|
||||
dateInput.style.display = 'none';
|
||||
labelText.style.display = 'none';
|
||||
dateInput.value = '';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</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>Anamnesebogen</h2>
|
||||
|
||||
<?php
|
||||
|
||||
if(isset($_POST["aktion"])){
|
||||
|
||||
if ($con->connect_error) {
|
||||
die("Verbindung fehlgeschlagen: " . $con->connect_error);
|
||||
}
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$stmt = $con->prepare("INSERT INTO patientenaufnahme (name, geburtsdatum, beruf, telefon, handy, email, strasse, ort, krankheiten, raucher, alkohol, allergien, medikamente, groesse, gewicht, bemerkungen) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
|
||||
$name = htmlspecialchars($_POST['name']);
|
||||
$geburtsdatum = htmlspecialchars($_POST['geburtsdatum']);
|
||||
$beruf = htmlspecialchars($_POST['beruf']);
|
||||
$telefon = htmlspecialchars($_POST['telefon']);
|
||||
$handy = htmlspecialchars($_POST['handy']);
|
||||
$email = htmlspecialchars($_POST['email']);
|
||||
$strasse = htmlspecialchars($_POST['strasse']);
|
||||
$ort = htmlspecialchars($_POST['ort']);
|
||||
|
||||
// Erkrankungen speichern
|
||||
$krankheiten = [];
|
||||
foreach ($_POST['krankheiten'] as $krankheit => $details) {
|
||||
$krankheiten[] = "$krankheit: " . ($details['ja_nein'] === 'ja' ? "Ja, seit " . htmlspecialchars($details['seit']) : "Nein");
|
||||
}
|
||||
$krankheiten_json = json_encode($krankheiten);
|
||||
|
||||
$raucher = htmlspecialchars($_POST['raucher']);
|
||||
$alkohol = htmlspecialchars($_POST['alkohol']);
|
||||
$allergien = htmlspecialchars($_POST['allergien']);
|
||||
$medikamente = htmlspecialchars($_POST['medikamente']);
|
||||
$groesse = htmlspecialchars($_POST['groesse']);
|
||||
$gewicht = htmlspecialchars($_POST['gewicht']);
|
||||
$bemerkungen = htmlspecialchars($_POST['bemerkungen']);
|
||||
|
||||
$stmt->bind_param("ssssssssssssssss", $name, $geburtsdatum, $beruf, $telefon, $handy, $email, $strasse, $ort, $krankheiten_json, $raucher, $alkohol, $allergien, $medikamente, $groesse, $gewicht, $bemerkungen);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo "Daten erfolgreich gespeichert!";
|
||||
} else {
|
||||
echo "Fehler: " . $stmt->error;
|
||||
}
|
||||
$stmt->close();
|
||||
}
|
||||
$con->close();
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
// Urlaubsabfrage
|
||||
$query = mysqli_query($con, "SELECT urlaubid FROM urlaub WHERE start<='" . date("Y-m-d") ."' AND ende>='" . date("Y-m-d") ."'");
|
||||
|
||||
if (!$query)
|
||||
{
|
||||
die('Error: ' . mysqli_error($con));
|
||||
}
|
||||
|
||||
#if($query->num_rows == 0){
|
||||
if($true = 1){
|
||||
?>
|
||||
<h3>Bitte füllen Sie das Formular aus und senden Sie es ab.</h3>
|
||||
|
||||
|
||||
|
||||
<?php echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
||||
?>
|
||||
<div class="row uniform 50%">
|
||||
|
||||
<div class="12u">
|
||||
<label>Vorname: <input type="text" name="vorname" required></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Name: <input type="text" name="name" required></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Geburtsdatum: <input type="date" name="geburtsdatum" required></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Beruf: <input type="text" name="beruf"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Telefon: <input type="text" name="telefon"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Handy: <input type="text" name="handy"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Email: <input type="email" name="email"></label><br>
|
||||
</div>
|
||||
|
||||
<h3>Erkrankungen:</h3>
|
||||
<?php
|
||||
$fragen = ['Bluthochdruck', 'Herzkrankheiten', 'Schlaganfall', 'Diabetes', 'Fettstoffwechselstörung', 'Tumorerkrankungen', 'Lebererkrankungen', 'Infektionskrankheiten', 'Blutungsstörungen', 'Lungenerkrankungen', 'Thrombose', 'Augenerkrankungen', 'Krampfanfälle', 'Operationen', 'Unfälle', 'Sonstiges'];
|
||||
foreach ($fragen as $index => $frage) {
|
||||
$dateInputId = 'date_' . $index;
|
||||
echo "<div class='12u'>";
|
||||
echo "<label><h4>$frage:</h4> ";
|
||||
echo "<select name='krankheiten[$frage][ja_nein]' onchange='toggleDateInput(this, \"$dateInputId\")'><option value='nein'>Nein</option><option value='ja'>Ja</option></select></label>";
|
||||
echo " <span id='text_$dateInputId' style='display:none;'>Seit wann / Weitere Angaben:</span> <input type='text' id='$dateInputId' name='krankheiten[$frage][seit]' style='display:none;'></label><br>";
|
||||
echo "</div><br>";
|
||||
}
|
||||
?>
|
||||
<div class="12u">
|
||||
<label>Rauchen Sie? <select name="raucher"><option value="nein">Nein</option><option value="ja">Ja</option></select></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Alkoholkonsum? <select name="alkohol"><option value="nein">Nein</option><option value="ja">Ja</option></select></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Allergien: <textarea name="allergien"></textarea></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Medikamente: <textarea name="medikamente"></textarea></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Größe (cm): <input type="number" name="groesse"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Gewicht (kg): <input type="number" name="gewicht"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Bemerkungen: <textarea name="bemerkungen"></textarea></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<input type="submit" value="Absenden">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<div class="row uniform 50%">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row uniform">
|
||||
<div class="12u">
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="Abschicken" /></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>";
|
||||
$query = mysqli_query($con, "SELECT ende,vertretung,vertretertelefon,vertreteradresse,vertreterurl FROM urlaub WHERE start<='" . date("Y-m-d") ."' AND ende>='" . date("Y-m-d") ."' ORDER BY ende DESC");
|
||||
$row = mysqli_fetch_assoc($query);
|
||||
$vertreter = $row["vertretung"];
|
||||
$vertretertelefon = $row["vertretertelefon"];
|
||||
$vertreteradresse = $row["vertreteradresse"];
|
||||
$vertreterurl = $row["vertreterurl"];
|
||||
$ende = $row["ende"];
|
||||
$endeausgabe= date("d.m.Y", strtotime("+1 day", strtotime($ende )));
|
||||
if($vertreter){
|
||||
echo "Unsere Vertretung: $vertreter <br>";
|
||||
}
|
||||
if($vertreterurl){
|
||||
echo "Webseite Vertretung: $vertreterurl <br>";
|
||||
}
|
||||
if($vertretertelefon){
|
||||
echo "Telefonischer Kontakt Vertretung: $vertretertelefon <br>";
|
||||
}
|
||||
if($vertreteradresse){
|
||||
echo "Adresse Vertretung: $vertreteradresse <br>";
|
||||
}
|
||||
echo "<br>Wir stehen Ihnen ab dem ". $endeausgabe . " 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>
|
||||
<!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 - Anamnesebogen</title>
|
||||
<link rel="stylesheet" href="css/formulare.css" />
|
||||
|
||||
<script>
|
||||
function toggleDateInput(selectElement, dateInputId) {
|
||||
var dateInput = document.getElementById(dateInputId);
|
||||
var labelText = document.getElementById('text_' + dateInputId);
|
||||
if (selectElement.value === 'ja') {
|
||||
dateInput.style.display = 'inline';
|
||||
labelText.style.display = 'inline';
|
||||
} else {
|
||||
dateInput.style.display = 'none';
|
||||
labelText.style.display = 'none';
|
||||
dateInput.value = '';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</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>Anamnesebogen</h2>
|
||||
|
||||
<?php
|
||||
|
||||
if(isset($_POST["aktion"])){
|
||||
|
||||
if ($con->connect_error) {
|
||||
die("Verbindung fehlgeschlagen: " . $con->connect_error);
|
||||
}
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$stmt = $con->prepare("INSERT INTO patientenaufnahme (name, geburtsdatum, beruf, telefon, handy, email, strasse, ort, krankheiten, raucher, alkohol, allergien, medikamente, groesse, gewicht, bemerkungen) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
|
||||
$name = htmlspecialchars($_POST['name']);
|
||||
$geburtsdatum = htmlspecialchars($_POST['geburtsdatum']);
|
||||
$beruf = htmlspecialchars($_POST['beruf']);
|
||||
$telefon = htmlspecialchars($_POST['telefon']);
|
||||
$handy = htmlspecialchars($_POST['handy']);
|
||||
$email = htmlspecialchars($_POST['email']);
|
||||
$strasse = htmlspecialchars($_POST['strasse']);
|
||||
$ort = htmlspecialchars($_POST['ort']);
|
||||
|
||||
// Erkrankungen speichern
|
||||
$krankheiten = [];
|
||||
foreach ($_POST['krankheiten'] as $krankheit => $details) {
|
||||
$krankheiten[] = "$krankheit: " . ($details['ja_nein'] === 'ja' ? "Ja, seit " . htmlspecialchars($details['seit']) : "Nein");
|
||||
}
|
||||
$krankheiten_json = json_encode($krankheiten);
|
||||
|
||||
$raucher = htmlspecialchars($_POST['raucher']);
|
||||
$alkohol = htmlspecialchars($_POST['alkohol']);
|
||||
$allergien = htmlspecialchars($_POST['allergien']);
|
||||
$medikamente = htmlspecialchars($_POST['medikamente']);
|
||||
$groesse = htmlspecialchars($_POST['groesse']);
|
||||
$gewicht = htmlspecialchars($_POST['gewicht']);
|
||||
$bemerkungen = htmlspecialchars($_POST['bemerkungen']);
|
||||
|
||||
$stmt->bind_param("ssssssssssssssss", $name, $geburtsdatum, $beruf, $telefon, $handy, $email, $strasse, $ort, $krankheiten_json, $raucher, $alkohol, $allergien, $medikamente, $groesse, $gewicht, $bemerkungen);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo "Daten erfolgreich gespeichert!";
|
||||
} else {
|
||||
echo "Fehler: " . $stmt->error;
|
||||
}
|
||||
$stmt->close();
|
||||
}
|
||||
$con->close();
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
// Urlaubsabfrage
|
||||
$query = mysqli_query($con, "SELECT urlaubid FROM urlaub WHERE start<='" . date("Y-m-d") ."' AND ende>='" . date("Y-m-d") ."'");
|
||||
|
||||
if (!$query)
|
||||
{
|
||||
die('Error: ' . mysqli_error($con));
|
||||
}
|
||||
|
||||
#if($query->num_rows == 0){
|
||||
if($true = 1){
|
||||
?>
|
||||
<h3>Bitte füllen Sie das Formular aus und senden Sie es ab.</h3>
|
||||
|
||||
|
||||
|
||||
<?php echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
|
||||
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
||||
?>
|
||||
<div class="row uniform 50%">
|
||||
|
||||
<div class="12u">
|
||||
<label>Vorname: <input type="text" name="vorname" required></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Name: <input type="text" name="name" required></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Geburtsdatum: <input type="date" name="geburtsdatum" required></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Beruf: <input type="text" name="beruf"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Telefon: <input type="text" name="telefon"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Handy: <input type="text" name="handy"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Email: <input type="email" name="email"></label><br>
|
||||
</div>
|
||||
|
||||
<h3>Erkrankungen:</h3>
|
||||
<?php
|
||||
$fragen = ['Bluthochdruck', 'Herzkrankheiten', 'Schlaganfall', 'Diabetes', 'Fettstoffwechselstörung', 'Tumorerkrankungen', 'Lebererkrankungen', 'Infektionskrankheiten', 'Blutungsstörungen', 'Lungenerkrankungen', 'Thrombose', 'Augenerkrankungen', 'Krampfanfälle', 'Operationen', 'Unfälle', 'Sonstiges'];
|
||||
foreach ($fragen as $index => $frage) {
|
||||
$dateInputId = 'date_' . $index;
|
||||
echo "<div class='12u'>";
|
||||
echo "<label><h4>$frage:</h4> ";
|
||||
echo "<select name='krankheiten[$frage][ja_nein]' onchange='toggleDateInput(this, \"$dateInputId\")'><option value='nein'>Nein</option><option value='ja'>Ja</option></select></label>";
|
||||
echo " <span id='text_$dateInputId' style='display:none;'>Seit wann / Weitere Angaben:</span> <input type='text' id='$dateInputId' name='krankheiten[$frage][seit]' style='display:none;'></label><br>";
|
||||
echo "</div><br>";
|
||||
}
|
||||
?>
|
||||
<div class="12u">
|
||||
<label>Rauchen Sie? <select name="raucher"><option value="nein">Nein</option><option value="ja">Ja</option></select></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Alkoholkonsum? <select name="alkohol"><option value="nein">Nein</option><option value="ja">Ja</option></select></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Allergien: <textarea name="allergien"></textarea></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Medikamente: <textarea name="medikamente"></textarea></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Größe (cm): <input type="number" name="groesse"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Gewicht (kg): <input type="number" name="gewicht"></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<label>Bemerkungen: <textarea name="bemerkungen"></textarea></label><br>
|
||||
</div>
|
||||
<div class="12u">
|
||||
<input type="submit" value="Absenden">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<div class="row uniform 50%">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row uniform">
|
||||
<div class="12u">
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="Abschicken" /></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>";
|
||||
$query = mysqli_query($con, "SELECT ende,vertretung,vertretertelefon,vertreteradresse,vertreterurl FROM urlaub WHERE start<='" . date("Y-m-d") ."' AND ende>='" . date("Y-m-d") ."' ORDER BY ende DESC");
|
||||
$row = mysqli_fetch_assoc($query);
|
||||
$vertreter = $row["vertretung"];
|
||||
$vertretertelefon = $row["vertretertelefon"];
|
||||
$vertreteradresse = $row["vertreteradresse"];
|
||||
$vertreterurl = $row["vertreterurl"];
|
||||
$ende = $row["ende"];
|
||||
$endeausgabe= date("d.m.Y", strtotime("+1 day", strtotime($ende )));
|
||||
if($vertreter){
|
||||
echo "Unsere Vertretung: $vertreter <br>";
|
||||
}
|
||||
if($vertreterurl){
|
||||
echo "Webseite Vertretung: $vertreterurl <br>";
|
||||
}
|
||||
if($vertretertelefon){
|
||||
echo "Telefonischer Kontakt Vertretung: $vertretertelefon <br>";
|
||||
}
|
||||
if($vertreteradresse){
|
||||
echo "Adresse Vertretung: $vertreteradresse <br>";
|
||||
}
|
||||
echo "<br>Wir stehen Ihnen ab dem ". $endeausgabe . " 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>
|
||||
+133
-133
@@ -1,134 +1,134 @@
|
||||
<!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 - Stellenangebote</title>
|
||||
<!-- Meta Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1304867248096206');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=1304867248096206&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Meta Pixel Code -->
|
||||
|
||||
</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');
|
||||
?>
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
<h3>Ihre Hausarztpraxis in Coppenbrügge und Bisperode</h3>
|
||||
|
||||
Die Praxis Creutzburg hat aktuell die folgende Stellausschreibungen.<br>
|
||||
|
||||
</section>
|
||||
<!--
|
||||
<section class="box">
|
||||
<h2>Medizinische Fachangestellte (MFA) in Teilzeit (m/w/d)</h2>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Zur Verstärkung unseres Teams suchen wir ab <strong>sofort</strong> eine <strong>Medizinische Fachangestellte (MFA)</strong> in Teilzeit mit ca. <strong>20 Stunden pro Woche</strong>.</p>
|
||||
|
||||
|
||||
<p>Weitere Informationen findest du hier:</p>
|
||||
<form action="jobs-mfateilzeit.php" method=POST>
|
||||
<input type=submit class=button value="Stellenangebote MFA">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<section class="box">
|
||||
<h2>Auszubildende/r zur Medizinischen Fachangestellten (MFA) (m/w/d)</h2>
|
||||
|
||||
<h3>Starte deine Karriere in unserer modernen Praxis!</h3>
|
||||
<p>Bist du kommunikativ, hilfsbereit und interessierst dich für den medizinischen Bereich? Dann bist du bei uns genau richtig! Die Praxis Creutzburg bietet dir die Möglichkeit, eine abwechslungsreiche und spannende Ausbildung zur Medizinischen Fachangestellten (MFA) zu beginnen. Wir legen großen Wert auf Teamarbeit, eine freundliche Atmosphäre und moderne Arbeitsbedingungen.</p>
|
||||
<p>Werde Teil eines motivierten Teams und profitiere von unserer langjährigen Erfahrung in der Ausbildung. Wir begleiten dich auf deinem Weg zum Erfolg und bieten dir beste Voraussetzungen für deine berufliche Zukunft.</p>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Wir suchen zu <strong>sofort</strong> eine/n motivierte/n Auszubildende/n zur Verstärkung unseres Praxisteams.</p>
|
||||
|
||||
<p>Weitere Informationen findest du hier:</p>
|
||||
<form action="jobs-mfaazubi.php" method=POST>
|
||||
<input type=submit class=button value="Stellenangebote Azubi MFA">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
||||
<h3>Fragen:</h3>
|
||||
<p>Du hast grundsätzlich Fragen oder etwas ist unklar?<br>
|
||||
Telefonisch kannst du uns eine Nachricht auf unserem Anrufbeantworter hinterlassen. <br>Unser Praxisteam ruft dich schnellstmöglich zurück.<br>
|
||||
Per Mail wende dich bitte an Dalia Alayan-Ibrahim <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a><br>
|
||||
</p>
|
||||
|
||||
|
||||
<section class="box" style="border-left:4px solid #2e7; background:#f7fff9;">
|
||||
<h3 style="margin-bottom:.4rem;">Onlinebewerbung</h3>
|
||||
<p style="margin:0 0 .8rem 0;">
|
||||
Bei uns kannst du dich <strong>einfach und schnell</strong> online bewerben! Die Bewerbung dauert 1-2 Minuten.
|
||||
</p>
|
||||
<ul class="actions">
|
||||
<li><a href="kurzbewerbung.php" class="button">Onlinebewerbung</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
<h3>Bewerbung:</h3>
|
||||
<p>Bitte sende deine vollständigen Bewerbungsunterlagen an:</p>
|
||||
<p><strong>Praxis Creutzburg</strong><br>
|
||||
z.H. Dalia Alayan-Ibrahim<br>
|
||||
Schlossstraße 18<br>
|
||||
31863 Coppenbrügge<br>
|
||||
E-Mail: <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a></p>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?></body>
|
||||
<!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 - Stellenangebote</title>
|
||||
<!-- Meta Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1304867248096206');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=1304867248096206&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Meta Pixel Code -->
|
||||
|
||||
</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');
|
||||
?>
|
||||
</header>
|
||||
|
||||
<!-- Main -->
|
||||
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
<h3>Ihre Hausarztpraxis in Coppenbrügge und Bisperode</h3>
|
||||
|
||||
Die Praxis Creutzburg hat aktuell die folgende Stellausschreibungen.<br>
|
||||
|
||||
</section>
|
||||
<!--
|
||||
<section class="box">
|
||||
<h2>Medizinische Fachangestellte (MFA) in Teilzeit (m/w/d)</h2>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Zur Verstärkung unseres Teams suchen wir ab <strong>sofort</strong> eine <strong>Medizinische Fachangestellte (MFA)</strong> in Teilzeit mit ca. <strong>20 Stunden pro Woche</strong>.</p>
|
||||
|
||||
|
||||
<p>Weitere Informationen findest du hier:</p>
|
||||
<form action="jobs-mfateilzeit.php" method=POST>
|
||||
<input type=submit class=button value="Stellenangebote MFA">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<section class="box">
|
||||
<h2>Auszubildende/r zur Medizinischen Fachangestellten (MFA) (m/w/d)</h2>
|
||||
|
||||
<h3>Starte deine Karriere in unserer modernen Praxis!</h3>
|
||||
<p>Bist du kommunikativ, hilfsbereit und interessierst dich für den medizinischen Bereich? Dann bist du bei uns genau richtig! Die Praxis Creutzburg bietet dir die Möglichkeit, eine abwechslungsreiche und spannende Ausbildung zur Medizinischen Fachangestellten (MFA) zu beginnen. Wir legen großen Wert auf Teamarbeit, eine freundliche Atmosphäre und moderne Arbeitsbedingungen.</p>
|
||||
<p>Werde Teil eines motivierten Teams und profitiere von unserer langjährigen Erfahrung in der Ausbildung. Wir begleiten dich auf deinem Weg zum Erfolg und bieten dir beste Voraussetzungen für deine berufliche Zukunft.</p>
|
||||
|
||||
<h2>Wir suchen dich!</h2>
|
||||
<p>Wir suchen zu <strong>sofort</strong> eine/n motivierte/n Auszubildende/n zur Verstärkung unseres Praxisteams.</p>
|
||||
|
||||
<p>Weitere Informationen findest du hier:</p>
|
||||
<form action="jobs-mfaazubi.php" method=POST>
|
||||
<input type=submit class=button value="Stellenangebote Azubi MFA">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
||||
<h3>Fragen:</h3>
|
||||
<p>Du hast grundsätzlich Fragen oder etwas ist unklar?<br>
|
||||
Telefonisch kannst du uns eine Nachricht auf unserem Anrufbeantworter hinterlassen. <br>Unser Praxisteam ruft dich schnellstmöglich zurück.<br>
|
||||
Per Mail wende dich bitte an Dalia Alayan-Ibrahim <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a><br>
|
||||
</p>
|
||||
|
||||
|
||||
<section class="box" style="border-left:4px solid #2e7; background:#f7fff9;">
|
||||
<h3 style="margin-bottom:.4rem;">Onlinebewerbung</h3>
|
||||
<p style="margin:0 0 .8rem 0;">
|
||||
Bei uns kannst du dich <strong>einfach und schnell</strong> online bewerben! Die Bewerbung dauert 1-2 Minuten.
|
||||
</p>
|
||||
<ul class="actions">
|
||||
<li><a href="kurzbewerbung.php" class="button">Onlinebewerbung</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
<h3>Bewerbung:</h3>
|
||||
<p>Bitte sende deine vollständigen Bewerbungsunterlagen an:</p>
|
||||
<p><strong>Praxis Creutzburg</strong><br>
|
||||
z.H. Dalia Alayan-Ibrahim<br>
|
||||
Schlossstraße 18<br>
|
||||
31863 Coppenbrügge<br>
|
||||
E-Mail: <a href="mailto:alayan@praxis-creutzburg.de">alayan@praxis-creutzburg.de</a></p>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?></body>
|
||||
</html>
|
||||
+70
-70
@@ -1,70 +1,70 @@
|
||||
<?php
|
||||
session_start();
|
||||
/*
|
||||
// Überprüfen, ob der Patient authentifiziert ist
|
||||
if (!isset($_SESSION['patient_id'])) {
|
||||
header("Location: umfrage.php");
|
||||
exit;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
$question_1 = $_POST['question_1'];
|
||||
$question_2 = $_POST['question_2'];
|
||||
$question_3 = $_POST['question_3'];
|
||||
$question_4 = $_POST['question_4'];
|
||||
$question_5 = $_POST['question_5'];
|
||||
$question_6 = $_POST['question_6'];
|
||||
$question_7 = $_POST['question_7'];
|
||||
$question_8 = $_POST['question_8'];
|
||||
$question_9 = $_POST['question_9'];
|
||||
$question_10 = $_POST['question_10'];
|
||||
$message = $_POST['message'];
|
||||
|
||||
include("inc/config.inc.php");
|
||||
if ($con->connect_error) {
|
||||
die("Verbindung fehlgeschlagen: " . $con->connect_error);
|
||||
}
|
||||
// Umfrageantworten speichern
|
||||
// Vorbereiten der SQL-Anfrage
|
||||
$stmt = $con->prepare("INSERT INTO survey_responses
|
||||
(question_1, question_2, question_3, question_4, question_5, question_6, question_7, question_8, question_9, question_10, message)
|
||||
VALUES
|
||||
('". $question_1 . "', '". $question_2 . "', '". $question_3 . "', '". $question_4 . "', '". $question_5 . "', '". $question_6 . "', '". $question_7 . "', '". $question_8 . "', '". $question_9 . "', '". $question_10 . "', '". $message . "');");
|
||||
if ($stmt === false) {
|
||||
die('Fehler bei der Vorbereitung der SQL-Abfrage: ' . $con->error);
|
||||
}
|
||||
// Bindung der Parameter
|
||||
#$stmt->bind_param("ssssssssss", $question_1, $question_2, $question_3, $question_4, $question_5, $question_6, $question_7, $question_8, $question_9, $question_10);
|
||||
|
||||
// Ausführen der SQL-Anfrage
|
||||
if (!$stmt->execute()) {
|
||||
die('Fehler bei der Ausführung der SQL-Abfrage: ' . $stmt->error);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Letzte Umfrage-Teilnahme aktualisieren
|
||||
$stmt = $con->prepare("UPDATE survey_patients SET survey_last_taken = NOW() WHERE id = ?");
|
||||
$stmt->bind_param("i", $_SESSION['patient_id']);
|
||||
$stmt->execute();
|
||||
|
||||
|
||||
// Lösche alle Session-Variablen
|
||||
session_unset();
|
||||
|
||||
// Zerstöre die Session
|
||||
session_destroy();
|
||||
|
||||
// Lösche das Session-Cookie, wenn du es auch am Client löschen möchtest
|
||||
if (ini_get("session.use_cookies")) {
|
||||
$params = session_get_cookie_params();
|
||||
setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
|
||||
}
|
||||
|
||||
// Weiterleitung auf eine andere Seite (optional)
|
||||
header("Location: umfrage_danke.php");
|
||||
exit();
|
||||
?>
|
||||
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
/*
|
||||
// Überprüfen, ob der Patient authentifiziert ist
|
||||
if (!isset($_SESSION['patient_id'])) {
|
||||
header("Location: umfrage.php");
|
||||
exit;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
$question_1 = $_POST['question_1'];
|
||||
$question_2 = $_POST['question_2'];
|
||||
$question_3 = $_POST['question_3'];
|
||||
$question_4 = $_POST['question_4'];
|
||||
$question_5 = $_POST['question_5'];
|
||||
$question_6 = $_POST['question_6'];
|
||||
$question_7 = $_POST['question_7'];
|
||||
$question_8 = $_POST['question_8'];
|
||||
$question_9 = $_POST['question_9'];
|
||||
$question_10 = $_POST['question_10'];
|
||||
$message = $_POST['message'];
|
||||
|
||||
include("inc/config.inc.php");
|
||||
if ($con->connect_error) {
|
||||
die("Verbindung fehlgeschlagen: " . $con->connect_error);
|
||||
}
|
||||
// Umfrageantworten speichern
|
||||
// Vorbereiten der SQL-Anfrage
|
||||
$stmt = $con->prepare("INSERT INTO survey_responses
|
||||
(question_1, question_2, question_3, question_4, question_5, question_6, question_7, question_8, question_9, question_10, message)
|
||||
VALUES
|
||||
('". $question_1 . "', '". $question_2 . "', '". $question_3 . "', '". $question_4 . "', '". $question_5 . "', '". $question_6 . "', '". $question_7 . "', '". $question_8 . "', '". $question_9 . "', '". $question_10 . "', '". $message . "');");
|
||||
if ($stmt === false) {
|
||||
die('Fehler bei der Vorbereitung der SQL-Abfrage: ' . $con->error);
|
||||
}
|
||||
// Bindung der Parameter
|
||||
#$stmt->bind_param("ssssssssss", $question_1, $question_2, $question_3, $question_4, $question_5, $question_6, $question_7, $question_8, $question_9, $question_10);
|
||||
|
||||
// Ausführen der SQL-Anfrage
|
||||
if (!$stmt->execute()) {
|
||||
die('Fehler bei der Ausführung der SQL-Abfrage: ' . $stmt->error);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Letzte Umfrage-Teilnahme aktualisieren
|
||||
$stmt = $con->prepare("UPDATE survey_patients SET survey_last_taken = NOW() WHERE id = ?");
|
||||
$stmt->bind_param("i", $_SESSION['patient_id']);
|
||||
$stmt->execute();
|
||||
|
||||
|
||||
// Lösche alle Session-Variablen
|
||||
session_unset();
|
||||
|
||||
// Zerstöre die Session
|
||||
session_destroy();
|
||||
|
||||
// Lösche das Session-Cookie, wenn du es auch am Client löschen möchtest
|
||||
if (ini_get("session.use_cookies")) {
|
||||
$params = session_get_cookie_params();
|
||||
setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
|
||||
}
|
||||
|
||||
// Weiterleitung auf eine andere Seite (optional)
|
||||
header("Location: umfrage_danke.php");
|
||||
exit();
|
||||
?>
|
||||
|
||||
?>
|
||||
|
||||
+164
-164
@@ -1,165 +1,165 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// Überprüfen, ob der Patient authentifiziert ist
|
||||
if (!isset($_SESSION['patient_id'])) {
|
||||
header("Location: umfrage.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
<!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">
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
// Patientendaten aus der Datenbank holen
|
||||
$patient_id = $_SESSION['patient_id'];
|
||||
$stmt = $con->prepare("SELECT * FROM survey_patients WHERE id = ?");
|
||||
$stmt->bind_param("i", $patient_id);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
$patient = $result->fetch_assoc();
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Patientenbefragung</h2>
|
||||
<form action="submit_survey.php" method="POST">
|
||||
<input type="hidden" name="patient_id" value="<?php echo $patient_id; ?>">
|
||||
|
||||
<div class="12u">
|
||||
<div class="question">
|
||||
<label for="question_1">1. Wie zufrieden sind Sie mit der allgemeinen Betreuung in unserer Praxis? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_1" name="question_1" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_2">2. Wie würden Sie die Freundlichkeit und das Verhalten unserer Mitarbeiter bewerten? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_2" name="question_2" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_3">3. Haben Sie die Wartezeit als zu lang empfunden? (Ja/Nein)</label>
|
||||
<select id="question_3" name="question_3" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_4">4. Wie beurteilen Sie die Sauberkeit und die Ausstattung der Praxisräume? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_4" name="question_4" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_5">5. Haben Sie das Gefühl, dass Ihre Anliegen während des Termins ausreichend behandelt wurden? (Ja/Nein)</label>
|
||||
<select id="question_5" name="question_5" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_6">6. Wie zufrieden sind Sie mit der Erreichbarkeit unserer Praxis? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_6" name="question_6" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_7">7. Haben Sie Empfehlungen, wie wir unseren Service verbessern können?</label>
|
||||
<textarea id="question_7" name="question_7" rows="4" maxlength="500" required></textarea>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_8">8. Wie bewerten Sie die Erklärungen zu Ihrer Diagnose und Behandlung? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_8" name="question_8" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_9">9. Fühlen Sie sich ausreichend über Ihre Behandlungsmöglichkeiten informiert? (Ja/Nein)</label>
|
||||
<select id="question_9" name="question_9" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_10">10. Würden Sie unsere Praxis einem Freund oder Familienmitglied empfehlen? (Ja/Nein)</label>
|
||||
<select id="question_10" name="question_10" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="12u">
|
||||
<div class="question">
|
||||
<label for="message">Haben Sie noch etwas, was Sie uns mitteilen möchten?</label>
|
||||
<textarea name="message" id="message" placeholder="Ihre Nachricht/Bemerkung" rows="6" maxlength="600"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="12u">
|
||||
<br>
|
||||
Ihre Daten werden HTTPS-verschlüsselt an unser System übertragen.
|
||||
<br>
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="Abschicken" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// Überprüfen, ob der Patient authentifiziert ist
|
||||
if (!isset($_SESSION['patient_id'])) {
|
||||
header("Location: umfrage.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
<!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">
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
// Patientendaten aus der Datenbank holen
|
||||
$patient_id = $_SESSION['patient_id'];
|
||||
$stmt = $con->prepare("SELECT * FROM survey_patients WHERE id = ?");
|
||||
$stmt->bind_param("i", $patient_id);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
$patient = $result->fetch_assoc();
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Patientenbefragung</h2>
|
||||
<form action="submit_survey.php" method="POST">
|
||||
<input type="hidden" name="patient_id" value="<?php echo $patient_id; ?>">
|
||||
|
||||
<div class="12u">
|
||||
<div class="question">
|
||||
<label for="question_1">1. Wie zufrieden sind Sie mit der allgemeinen Betreuung in unserer Praxis? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_1" name="question_1" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_2">2. Wie würden Sie die Freundlichkeit und das Verhalten unserer Mitarbeiter bewerten? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_2" name="question_2" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_3">3. Haben Sie die Wartezeit als zu lang empfunden? (Ja/Nein)</label>
|
||||
<select id="question_3" name="question_3" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_4">4. Wie beurteilen Sie die Sauberkeit und die Ausstattung der Praxisräume? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_4" name="question_4" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_5">5. Haben Sie das Gefühl, dass Ihre Anliegen während des Termins ausreichend behandelt wurden? (Ja/Nein)</label>
|
||||
<select id="question_5" name="question_5" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_6">6. Wie zufrieden sind Sie mit der Erreichbarkeit unserer Praxis? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_6" name="question_6" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_7">7. Haben Sie Empfehlungen, wie wir unseren Service verbessern können?</label>
|
||||
<textarea id="question_7" name="question_7" rows="4" maxlength="500" required></textarea>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_8">8. Wie bewerten Sie die Erklärungen zu Ihrer Diagnose und Behandlung? (Skala von 1 bis 5)</label>
|
||||
<input type="number" id="question_8" name="question_8" min="1" max="5" required>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_9">9. Fühlen Sie sich ausreichend über Ihre Behandlungsmöglichkeiten informiert? (Ja/Nein)</label>
|
||||
<select id="question_9" name="question_9" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div class="question">
|
||||
<label for="question_10">10. Würden Sie unsere Praxis einem Freund oder Familienmitglied empfehlen? (Ja/Nein)</label>
|
||||
<select id="question_10" name="question_10" required>
|
||||
<option value="Ja">Ja</option>
|
||||
<option value="Nein">Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="12u">
|
||||
<div class="question">
|
||||
<label for="message">Haben Sie noch etwas, was Sie uns mitteilen möchten?</label>
|
||||
<textarea name="message" id="message" placeholder="Ihre Nachricht/Bemerkung" rows="6" maxlength="600"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="12u">
|
||||
<br>
|
||||
Ihre Daten werden HTTPS-verschlüsselt an unser System übertragen.
|
||||
<br>
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="Abschicken" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+161
-161
@@ -1,162 +1,162 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
include_once("inc/config.inc.php");
|
||||
|
||||
|
||||
// Wenn das Formular abgesendet wird
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
$first_name = $_POST['first_name'];
|
||||
$last_name = $_POST['last_name'];
|
||||
$birthdate = $_POST['birthdate'];
|
||||
|
||||
// Erstelle den unique_key
|
||||
$unique_key = substr($first_name, 0, 2) . substr($last_name, 0, 2) . str_replace('-', '', $birthdate);
|
||||
|
||||
|
||||
// Überprüfen, ob der unique_key in der Datenbank existiert
|
||||
$stmt = $con->prepare("SELECT * FROM survey_patients WHERE unique_key = ?");
|
||||
$stmt->bind_param("s", $unique_key);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
// Wenn der Patient existiert
|
||||
if ($result->num_rows > 0) {
|
||||
$patient = $result->fetch_assoc();
|
||||
// Überprüfen, ob der Patient bereits im aktuellen Jahr an der Umfrage teilgenommen hat
|
||||
$last_taken = $patient['survey_last_taken'];
|
||||
if (strtotime($last_taken) >= strtotime("last year")) {
|
||||
echo "Sie haben bereits in diesem Jahr an der Umfrage teilgenommen.";
|
||||
exit;
|
||||
} else {
|
||||
// Authentifizierung erfolgreich, Fragen anzeigen
|
||||
$_SESSION['patient_id'] = $patient['id']; // ID speichern, um später auf die Antworten zuzugreifen
|
||||
header("Location: survey_form.php");
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
echo "Ungültige Eingaben. Bitte überprüfen Sie Ihre Daten.";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
include_once("inc/functions.inc.php");
|
||||
include_once('inc/functions.impfen.inc.php');
|
||||
include_once('inc/functions.formulare.inc.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 - Umfrage</title>
|
||||
<link rel="stylesheet" href="css/formulare.css" />
|
||||
</head>
|
||||
<body >
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header" class="../skel-layers-fixed">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
include('menu.php');
|
||||
|
||||
|
||||
?>
|
||||
</header>
|
||||
|
||||
|
||||
<!-- Main -->
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<section class="box special">
|
||||
<h2>Patientenbefragung</h2>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
<h2>Authentifizierung</h2>
|
||||
<p>Die Umfrage erfolgt anoym! <br>
|
||||
|
||||
Da nur Patienten der Praxis Creutzburg zur Teilnahme berechtigt sind, muss im Vorfeld eine Authentifizierung erfolgen.<br>
|
||||
Eine Zuordnung der Umfrage zu einem Patienten ist technisch ausgeschlossen.<br><br>
|
||||
|
||||
Das Praxis Team freut sich auf Ihr Feedback und Verbesserungsvorschläge, um das Serviceerlebnis für unsere Patienten und unser Personal zu verbessern.<br><br>
|
||||
Bitte geben Sie Ihre Daten ein, um an der Umfrage teilzunehmen.<br>
|
||||
Bei Vor- und Nachname reichen die ersten beiden Buchstaben.<br>
|
||||
</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%">
|
||||
|
||||
|
||||
<label for="first_name">Vorname:</label>
|
||||
<input type="text" id="first_name" name="first_name" required>
|
||||
|
||||
<label for="last_name">Nachname:</label>
|
||||
<input type="text" id="last_name" name="last_name" required>
|
||||
|
||||
<label for="birthdate">Geburtsdatum:</label>
|
||||
<input type="date" id="birthdate" name="birthdate" required>
|
||||
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="Anmelden" /></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
}
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
include_once("inc/config.inc.php");
|
||||
|
||||
|
||||
// Wenn das Formular abgesendet wird
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
$first_name = $_POST['first_name'];
|
||||
$last_name = $_POST['last_name'];
|
||||
$birthdate = $_POST['birthdate'];
|
||||
|
||||
// Erstelle den unique_key
|
||||
$unique_key = substr($first_name, 0, 2) . substr($last_name, 0, 2) . str_replace('-', '', $birthdate);
|
||||
|
||||
|
||||
// Überprüfen, ob der unique_key in der Datenbank existiert
|
||||
$stmt = $con->prepare("SELECT * FROM survey_patients WHERE unique_key = ?");
|
||||
$stmt->bind_param("s", $unique_key);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
// Wenn der Patient existiert
|
||||
if ($result->num_rows > 0) {
|
||||
$patient = $result->fetch_assoc();
|
||||
// Überprüfen, ob der Patient bereits im aktuellen Jahr an der Umfrage teilgenommen hat
|
||||
$last_taken = $patient['survey_last_taken'];
|
||||
if (strtotime($last_taken) >= strtotime("last year")) {
|
||||
echo "Sie haben bereits in diesem Jahr an der Umfrage teilgenommen.";
|
||||
exit;
|
||||
} else {
|
||||
// Authentifizierung erfolgreich, Fragen anzeigen
|
||||
$_SESSION['patient_id'] = $patient['id']; // ID speichern, um später auf die Antworten zuzugreifen
|
||||
header("Location: survey_form.php");
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
echo "Ungültige Eingaben. Bitte überprüfen Sie Ihre Daten.";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
include_once("inc/functions.inc.php");
|
||||
include_once('inc/functions.impfen.inc.php');
|
||||
include_once('inc/functions.formulare.inc.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 - Umfrage</title>
|
||||
<link rel="stylesheet" href="css/formulare.css" />
|
||||
</head>
|
||||
<body >
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header" class="../skel-layers-fixed">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
include('menu.php');
|
||||
|
||||
|
||||
?>
|
||||
</header>
|
||||
|
||||
|
||||
<!-- Main -->
|
||||
<section id="main" class="container">
|
||||
<?php
|
||||
echo showHeaderpraxis();
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<section class="box special">
|
||||
<h2>Patientenbefragung</h2>
|
||||
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
|
||||
|
||||
<!-- Form -->
|
||||
<section class="box">
|
||||
|
||||
<h2>Authentifizierung</h2>
|
||||
<p>Die Umfrage erfolgt anoym! <br>
|
||||
|
||||
Da nur Patienten der Praxis Creutzburg zur Teilnahme berechtigt sind, muss im Vorfeld eine Authentifizierung erfolgen.<br>
|
||||
Eine Zuordnung der Umfrage zu einem Patienten ist technisch ausgeschlossen.<br><br>
|
||||
|
||||
Das Praxis Team freut sich auf Ihr Feedback und Verbesserungsvorschläge, um das Serviceerlebnis für unsere Patienten und unser Personal zu verbessern.<br><br>
|
||||
Bitte geben Sie Ihre Daten ein, um an der Umfrage teilzunehmen.<br>
|
||||
Bei Vor- und Nachname reichen die ersten beiden Buchstaben.<br>
|
||||
</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%">
|
||||
|
||||
|
||||
<label for="first_name">Vorname:</label>
|
||||
<input type="text" id="first_name" name="first_name" required>
|
||||
|
||||
<label for="last_name">Nachname:</label>
|
||||
<input type="text" id="last_name" name="last_name" required>
|
||||
|
||||
<label for="birthdate">Geburtsdatum:</label>
|
||||
<input type="date" id="birthdate" name="birthdate" required>
|
||||
|
||||
<ul class="actions">
|
||||
<li><input type="submit" value="Anmelden" /></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
}
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+11
-11
@@ -1,12 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="refresh" content="0; url=https://praxis-creutzburg.de/umfrage.php">
|
||||
<title>Weiterleitung</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Du wirst weitergeleitet. Falls die Weiterleitung nicht funktioniert, <a href="https://praxis-creutzburg.de/umfrage.php">klicke hier</a>.</p>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="refresh" content="0; url=https://praxis-creutzburg.de/umfrage.php">
|
||||
<title>Weiterleitung</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Du wirst weitergeleitet. Falls die Weiterleitung nicht funktioniert, <a href="https://praxis-creutzburg.de/umfrage.php">klicke hier</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
+61
-61
@@ -1,62 +1,62 @@
|
||||
|
||||
<!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 - DateiUpload</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/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>Patientenumfrage</h2>
|
||||
|
||||
<?php
|
||||
echo "<h3>Vielen Dank für Ihre Teilnahme an der Umfrage!</h3><br>Sie unterstützen uns dabei unseren Service stätig zu verbessern!<br>";
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
<!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 - DateiUpload</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/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>Patientenumfrage</h2>
|
||||
|
||||
<?php
|
||||
echo "<h3>Vielen Dank für Ihre Teilnahme an der Umfrage!</h3><br>Sie unterstützen uns dabei unseren Service stätig zu verbessern!<br>";
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
include_once('footer.php');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+53
-53
@@ -1,53 +1,53 @@
|
||||
<?php
|
||||
// FTP-Zugangsdaten
|
||||
$ftp_server = 'wp1085322.server-he.de';
|
||||
$ftp_user = 'ftp1085322-creutz';
|
||||
$ftp_pass = 'sV_F323U+Nf-';
|
||||
$remote_directory = 'upload/nexChRvmgyJWCgvWjceFugXpGFQzBBaMtuZlySuFdYkFzYoxNe';
|
||||
|
||||
// Verbindung zum FTP-Server mit explizitem TLS herstellen
|
||||
$conn_id = ftp_ssl_connect($ftp_server, 21);
|
||||
if (!$conn_id) {
|
||||
die("Verbindung zum FTP-Server fehlgeschlagen");
|
||||
}
|
||||
|
||||
// Anmeldung mit Benutzerdaten
|
||||
if (!ftp_login($conn_id, $ftp_user, $ftp_pass)) {
|
||||
ftp_close($conn_id);
|
||||
die("Anmeldung fehlgeschlagen");
|
||||
}
|
||||
|
||||
// Explizite TLS-Verschlüsselung aktivieren
|
||||
if (!ftp_pasv($conn_id, true)) {
|
||||
ftp_close($conn_id);
|
||||
die("TLS-Modus konnte nicht aktiviert werden");
|
||||
}
|
||||
|
||||
// Hole Dateiliste im Verzeichnis
|
||||
ftp_chdir($conn_id, $remote_directory);
|
||||
$files = ftp_nlist($conn_id, ".");
|
||||
|
||||
// Aktueller Zeitstempel
|
||||
$now = time();
|
||||
|
||||
foreach ($files as $file) {
|
||||
// Hole Zeitstempel der Datei
|
||||
$mod_time = ftp_mdtm($conn_id, $file);
|
||||
if ($mod_time == -1) {
|
||||
echo "Konnte Zeitstempel für Datei1 nicht abrufen.\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
// Prüfe, ob die Datei älter als 24 Stunden ist
|
||||
if (($now - $mod_time) > 86400) { // 86400 Sekunden = 24 Stunden
|
||||
if (ftp_delete($conn_id, $file)) {
|
||||
echo "Gelöscht: \n";
|
||||
} else {
|
||||
echo "Fehler beim Löschen: \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Verbindung schließen
|
||||
ftp_close($conn_id);
|
||||
?>
|
||||
<?php
|
||||
// FTP-Zugangsdaten
|
||||
$ftp_server = 'wp1085322.server-he.de';
|
||||
$ftp_user = 'ftp1085322-creutz';
|
||||
$ftp_pass = 'sV_F323U+Nf-';
|
||||
$remote_directory = 'upload/nexChRvmgyJWCgvWjceFugXpGFQzBBaMtuZlySuFdYkFzYoxNe';
|
||||
|
||||
// Verbindung zum FTP-Server mit explizitem TLS herstellen
|
||||
$conn_id = ftp_ssl_connect($ftp_server, 21);
|
||||
if (!$conn_id) {
|
||||
die("Verbindung zum FTP-Server fehlgeschlagen");
|
||||
}
|
||||
|
||||
// Anmeldung mit Benutzerdaten
|
||||
if (!ftp_login($conn_id, $ftp_user, $ftp_pass)) {
|
||||
ftp_close($conn_id);
|
||||
die("Anmeldung fehlgeschlagen");
|
||||
}
|
||||
|
||||
// Explizite TLS-Verschlüsselung aktivieren
|
||||
if (!ftp_pasv($conn_id, true)) {
|
||||
ftp_close($conn_id);
|
||||
die("TLS-Modus konnte nicht aktiviert werden");
|
||||
}
|
||||
|
||||
// Hole Dateiliste im Verzeichnis
|
||||
ftp_chdir($conn_id, $remote_directory);
|
||||
$files = ftp_nlist($conn_id, ".");
|
||||
|
||||
// Aktueller Zeitstempel
|
||||
$now = time();
|
||||
|
||||
foreach ($files as $file) {
|
||||
// Hole Zeitstempel der Datei
|
||||
$mod_time = ftp_mdtm($conn_id, $file);
|
||||
if ($mod_time == -1) {
|
||||
echo "Konnte Zeitstempel für Datei1 nicht abrufen.\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
// Prüfe, ob die Datei älter als 24 Stunden ist
|
||||
if (($now - $mod_time) > 86400) { // 86400 Sekunden = 24 Stunden
|
||||
if (ftp_delete($conn_id, $file)) {
|
||||
echo "Gelöscht: \n";
|
||||
} else {
|
||||
echo "Fehler beim Löschen: \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Verbindung schließen
|
||||
ftp_close($conn_id);
|
||||
?>
|
||||
|
||||
+11
-11
@@ -1,12 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="refresh" content="0; url=https://praxis-creutzburg.de/dateiupload.php">
|
||||
<title>Weiterleitung</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Du wirst weitergeleitet. Falls die Weiterleitung nicht funktioniert, <a href="https://praxis-creutzburg.de/dateiupload.php">klicke hier</a>.</p>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="refresh" content="0; url=https://praxis-creutzburg.de/dateiupload.php">
|
||||
<title>Weiterleitung</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Du wirst weitergeleitet. Falls die Weiterleitung nicht funktioniert, <a href="https://praxis-creutzburg.de/dateiupload.php">klicke hier</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
+133
-133
@@ -1,134 +1,134 @@
|
||||
<?php
|
||||
|
||||
//Since this page writes to a session, initialise it here
|
||||
session_start();
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["action"] == "PDF anzeigen") {
|
||||
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
$userId = $_POST["user"];
|
||||
$selectedMonth = $_POST["month"];
|
||||
$monthYear = explode("/", $selectedMonth);
|
||||
$month = $monthYear[0];
|
||||
$year = $monthYear[1];
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
# echo "Location: createPDF.php?id=$userId&month=$month&year=$year";
|
||||
header("Location: createPDF.php?id=$userId&month=$month&year=$year");
|
||||
exit();
|
||||
|
||||
}
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['userid'];
|
||||
|
||||
// Monate für den Dropdown-Menü erhalten
|
||||
try {
|
||||
$months_stmt = $pdo->prepare("SELECT DISTINCT MONTH(timestamp_datetime) as month, YEAR(timestamp_datetime) as year FROM timestamps WHERE employee_id = ? ORDER BY timestamp_datetime DESC");
|
||||
$months_stmt->bindParam(1, $user_id);
|
||||
$months_stmt->execute();
|
||||
$months = $months_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
$selectedMonth = $_POST['month'] ?? '';
|
||||
#$selectedYear = $_POST['year'] ?? '';
|
||||
|
||||
// Zeiten für den ausgewählten Monat erhalten
|
||||
if ($selectedMonth ) {
|
||||
|
||||
try {
|
||||
$selectedYear = explode('/',$selectedMonth)[1];
|
||||
$times_stmt = $pdo->prepare("SELECT timestamp_datetime, timestamp_type FROM timestamps WHERE employee_id = ? AND MONTH(timestamp_datetime) = ? AND YEAR(timestamp_datetime) = ? ORDER BY timestamp_datetime ASC");
|
||||
$times_stmt->bindParam(1, $user_id);
|
||||
$times_stmt->bindParam(2, $selectedMonth);
|
||||
$times_stmt->bindParam(3, $selectedYear);
|
||||
$times_stmt->execute();
|
||||
$times = $times_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
// Gruppieren der Zeiten nach Tagen
|
||||
$groupedTimes = [];
|
||||
foreach ($times as $time) {
|
||||
$date = date('Y-m-d', strtotime($time['timestamp_datetime']));
|
||||
$groupedTimes[$date][] = $time;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<h2>Zeitenübersicht</h2>
|
||||
|
||||
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
|
||||
<div class="form-group">
|
||||
<label for="month">Monat auswählen:</label>
|
||||
<select name="month" id="month" class="form-control">
|
||||
<?php foreach ($months as $month): ?>
|
||||
<option value="<?php echo $month['month'] . '/' . $month['year']; ?>" <?php if ($month['month'] == $selectedMonth && $month['year'] == $selectedYear) echo 'selected'; ?>>
|
||||
<?php echo $month['month'] . '/' . $month['year']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
<input type="submit" value="Zeiten anzeigen" class="btn btn-primary btn-lg">
|
||||
<!-- Button zum Anzeigen der PDF -->
|
||||
<input type="submit" name="action" value="PDF anzeigen" class="btn btn-primary btn-lg" formtarget="_blank">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php if ($selectedMonth): ?>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Typ</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
<?php foreach ($groupedTimes as $date => $times): ?>
|
||||
<tr>
|
||||
<td><?php echo date('d.m.Y', strtotime($date)); ?></td>
|
||||
<td>
|
||||
<?php foreach ($times as $time): ?>
|
||||
<div><?php echo date('H:i:s', strtotime($time['timestamp_datetime'])) . ' - ' . $time['timestamp_type']; ?></div>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
<td>
|
||||
<!-- Hier können Sie Aktionen für jeden Tag hinzufügen, z.B. Bearbeiten/Löschen des gesamten Tages -->
|
||||
<a href="editDayEntries.php?employee_id=<?php echo $user_id; ?>&datum=<?php echo date('Y-m-d', strtotime($time['timestamp_datetime'])); ?>" class="btn btn-primary">Anpassen</a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
//Since this page writes to a session, initialise it here
|
||||
session_start();
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["action"] == "PDF anzeigen") {
|
||||
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
$userId = $_POST["user"];
|
||||
$selectedMonth = $_POST["month"];
|
||||
$monthYear = explode("/", $selectedMonth);
|
||||
$month = $monthYear[0];
|
||||
$year = $monthYear[1];
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
# echo "Location: createPDF.php?id=$userId&month=$month&year=$year";
|
||||
header("Location: createPDF.php?id=$userId&month=$month&year=$year");
|
||||
exit();
|
||||
|
||||
}
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['userid'];
|
||||
|
||||
// Monate für den Dropdown-Menü erhalten
|
||||
try {
|
||||
$months_stmt = $pdo->prepare("SELECT DISTINCT MONTH(timestamp_datetime) as month, YEAR(timestamp_datetime) as year FROM timestamps WHERE employee_id = ? ORDER BY timestamp_datetime DESC");
|
||||
$months_stmt->bindParam(1, $user_id);
|
||||
$months_stmt->execute();
|
||||
$months = $months_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
$selectedMonth = $_POST['month'] ?? '';
|
||||
#$selectedYear = $_POST['year'] ?? '';
|
||||
|
||||
// Zeiten für den ausgewählten Monat erhalten
|
||||
if ($selectedMonth ) {
|
||||
|
||||
try {
|
||||
$selectedYear = explode('/',$selectedMonth)[1];
|
||||
$times_stmt = $pdo->prepare("SELECT timestamp_datetime, timestamp_type FROM timestamps WHERE employee_id = ? AND MONTH(timestamp_datetime) = ? AND YEAR(timestamp_datetime) = ? ORDER BY timestamp_datetime ASC");
|
||||
$times_stmt->bindParam(1, $user_id);
|
||||
$times_stmt->bindParam(2, $selectedMonth);
|
||||
$times_stmt->bindParam(3, $selectedYear);
|
||||
$times_stmt->execute();
|
||||
$times = $times_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
// Gruppieren der Zeiten nach Tagen
|
||||
$groupedTimes = [];
|
||||
foreach ($times as $time) {
|
||||
$date = date('Y-m-d', strtotime($time['timestamp_datetime']));
|
||||
$groupedTimes[$date][] = $time;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<h2>Zeitenübersicht</h2>
|
||||
|
||||
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
|
||||
<div class="form-group">
|
||||
<label for="month">Monat auswählen:</label>
|
||||
<select name="month" id="month" class="form-control">
|
||||
<?php foreach ($months as $month): ?>
|
||||
<option value="<?php echo $month['month'] . '/' . $month['year']; ?>" <?php if ($month['month'] == $selectedMonth && $month['year'] == $selectedYear) echo 'selected'; ?>>
|
||||
<?php echo $month['month'] . '/' . $month['year']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
<input type="submit" value="Zeiten anzeigen" class="btn btn-primary btn-lg">
|
||||
<!-- Button zum Anzeigen der PDF -->
|
||||
<input type="submit" name="action" value="PDF anzeigen" class="btn btn-primary btn-lg" formtarget="_blank">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php if ($selectedMonth): ?>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Typ</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
<?php foreach ($groupedTimes as $date => $times): ?>
|
||||
<tr>
|
||||
<td><?php echo date('d.m.Y', strtotime($date)); ?></td>
|
||||
<td>
|
||||
<?php foreach ($times as $time): ?>
|
||||
<div><?php echo date('H:i:s', strtotime($time['timestamp_datetime'])) . ' - ' . $time['timestamp_type']; ?></div>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
<td>
|
||||
<!-- Hier können Sie Aktionen für jeden Tag hinzufügen, z.B. Bearbeiten/Löschen des gesamten Tages -->
|
||||
<a href="editDayEntries.php?employee_id=<?php echo $user_id; ?>&datum=<?php echo date('Y-m-d', strtotime($time['timestamp_datetime'])); ?>" class="btn btn-primary">Anpassen</a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
+152
-152
@@ -1,153 +1,153 @@
|
||||
<?php
|
||||
|
||||
//Since this page writes to a session, initialise it here
|
||||
session_start();
|
||||
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// Überprüfen, welcher Button geklickt wurde
|
||||
if ($_POST["action"] == "PDF anzeigen") {
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
$userId = $_POST["user"];
|
||||
$selectedMonth = $_POST["month"];
|
||||
$monthYear = explode("/", $selectedMonth);
|
||||
$month = $monthYear[0];
|
||||
$year = $monthYear[1];
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
# echo "Location: createPDF.php?id=$userId&month=$month&year=$year";
|
||||
header("Location: createPDF.php?id=$userId&month=$month&year=$year");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php
|
||||
// Starten der Session, falls noch nicht geschehen
|
||||
if(session_status() === PHP_SESSION_NONE) session_start();
|
||||
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['userid'];
|
||||
|
||||
// Benutzer aus der Datenbank erhalten
|
||||
try {
|
||||
$users_stmt = $pdo->prepare("SELECT id,vorname, nachname FROM users WHERE zeiterfassung='1' ORDER BY nachname ASC");
|
||||
$users_stmt->execute();
|
||||
$users = $users_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
// Monate für den Dropdown-Menü erhalten
|
||||
try {
|
||||
// Hier sollte die Abfrage angepasst werden, um auf den ausgewählten Benutzer zu filtern
|
||||
$months_stmt = $pdo->prepare("SELECT DISTINCT MONTH(timestamp_datetime) as month, YEAR(timestamp_datetime) as year FROM timestamps ORDER BY timestamp_datetime DESC");
|
||||
#$months_stmt->bindParam(1, $user_id);
|
||||
$months_stmt->execute();
|
||||
$months = $months_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
$selectedUser = $_POST['user'] ?? $user_id; // Standardmäßig der angemeldete Benutzer
|
||||
$selectedMonth = $_POST['month'] ?? '';
|
||||
|
||||
// Zeiten für den ausgewählten Monat und Benutzer erhalten
|
||||
if ($selectedMonth && $selectedUser) {
|
||||
try {
|
||||
$selectedYear = explode('/',$selectedMonth)[1];
|
||||
$times_stmt = $pdo->prepare("SELECT timestamp_datetime, timestamp_type FROM timestamps WHERE employee_id = ? AND MONTH(timestamp_datetime) = ? AND YEAR(timestamp_datetime) = ? ORDER BY timestamp_datetime ASC");
|
||||
$times_stmt->bindParam(1, $selectedUser);
|
||||
$times_stmt->bindParam(2, explode('/', $selectedMonth)[0]); // Monat extrahieren
|
||||
$times_stmt->bindParam(3, $selectedYear);
|
||||
$times_stmt->execute();
|
||||
$times = $times_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
// Gruppieren der Zeiten nach Tagen
|
||||
$groupedTimes = [];
|
||||
foreach ($times as $time) {
|
||||
$date = date('Y-m-d', strtotime($time['timestamp_datetime']));
|
||||
$groupedTimes[$date][] = $time;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<h2>Zeitenübersicht</h2>
|
||||
|
||||
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
|
||||
<div class="form-group">
|
||||
<label for="user">Benutzer auswählen:</label>
|
||||
<select name="user" id="user" class="form-control">
|
||||
<?php foreach ($users as $user): ?>
|
||||
<option value="<?php echo $user['id']; ?>" <?php if ($user['id'] == $selectedUser) echo 'selected'; ?>>
|
||||
<?php echo htmlspecialchars($user['vorname']); ?> <?php echo htmlspecialchars($user['nachname']); ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="month">Monat auswählen:</label>
|
||||
<select name="month" id="month" class="form-control">
|
||||
<?php foreach ($months as $month): ?>
|
||||
<option value="<?php echo $month['month'] . '/' . $month['year']; ?>" <?php if ($month['month'] . '/' . $month['year'] == $selectedMonth) echo 'selected'; ?>>
|
||||
<?php echo $month['month'] . '/' . $month['year']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<input type="submit" value="Zeiten anzeigen" class="btn btn-primary btn-lg">
|
||||
<!-- Button zum Anzeigen der PDF -->
|
||||
<input type="submit" name="action" value="PDF anzeigen" class="btn btn-primary btn-lg" formtarget="_blank">
|
||||
|
||||
</form>
|
||||
|
||||
<?php if ($selectedMonth && $selectedUser): ?>
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Typ</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
<?php foreach ($groupedTimes as $date => $times): ?>
|
||||
<tr>
|
||||
<td><?php echo date('d.m.Y', strtotime($date)); ?></td>
|
||||
<td>
|
||||
<?php foreach ($times as $time): ?>
|
||||
<div><?php echo date('H:i:s', strtotime($time['timestamp_datetime'])) . ' - ' . $time['timestamp_type']; ?></div>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
<td>
|
||||
<a href="editDayEntries.php?employee_id=<?php echo $selectedUser; ?>&datum=<?php echo date('Y-m-d', strtotime($time['timestamp_datetime'])); ?>" class="btn btn-primary">Anpassen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
//Since this page writes to a session, initialise it here
|
||||
session_start();
|
||||
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// Überprüfen, welcher Button geklickt wurde
|
||||
if ($_POST["action"] == "PDF anzeigen") {
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
$userId = $_POST["user"];
|
||||
$selectedMonth = $_POST["month"];
|
||||
$monthYear = explode("/", $selectedMonth);
|
||||
$month = $monthYear[0];
|
||||
$year = $monthYear[1];
|
||||
// Weiterleitung zur createPDF.php mit den Parametern
|
||||
# echo "Location: createPDF.php?id=$userId&month=$month&year=$year";
|
||||
header("Location: createPDF.php?id=$userId&month=$month&year=$year");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php
|
||||
// Starten der Session, falls noch nicht geschehen
|
||||
if(session_status() === PHP_SESSION_NONE) session_start();
|
||||
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['userid'];
|
||||
|
||||
// Benutzer aus der Datenbank erhalten
|
||||
try {
|
||||
$users_stmt = $pdo->prepare("SELECT id,vorname, nachname FROM users WHERE zeiterfassung='1' ORDER BY nachname ASC");
|
||||
$users_stmt->execute();
|
||||
$users = $users_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
// Monate für den Dropdown-Menü erhalten
|
||||
try {
|
||||
// Hier sollte die Abfrage angepasst werden, um auf den ausgewählten Benutzer zu filtern
|
||||
$months_stmt = $pdo->prepare("SELECT DISTINCT MONTH(timestamp_datetime) as month, YEAR(timestamp_datetime) as year FROM timestamps ORDER BY timestamp_datetime DESC");
|
||||
#$months_stmt->bindParam(1, $user_id);
|
||||
$months_stmt->execute();
|
||||
$months = $months_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
$selectedUser = $_POST['user'] ?? $user_id; // Standardmäßig der angemeldete Benutzer
|
||||
$selectedMonth = $_POST['month'] ?? '';
|
||||
|
||||
// Zeiten für den ausgewählten Monat und Benutzer erhalten
|
||||
if ($selectedMonth && $selectedUser) {
|
||||
try {
|
||||
$selectedYear = explode('/',$selectedMonth)[1];
|
||||
$times_stmt = $pdo->prepare("SELECT timestamp_datetime, timestamp_type FROM timestamps WHERE employee_id = ? AND MONTH(timestamp_datetime) = ? AND YEAR(timestamp_datetime) = ? ORDER BY timestamp_datetime ASC");
|
||||
$times_stmt->bindParam(1, $selectedUser);
|
||||
$times_stmt->bindParam(2, explode('/', $selectedMonth)[0]); // Monat extrahieren
|
||||
$times_stmt->bindParam(3, $selectedYear);
|
||||
$times_stmt->execute();
|
||||
$times = $times_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
// Gruppieren der Zeiten nach Tagen
|
||||
$groupedTimes = [];
|
||||
foreach ($times as $time) {
|
||||
$date = date('Y-m-d', strtotime($time['timestamp_datetime']));
|
||||
$groupedTimes[$date][] = $time;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<h2>Zeitenübersicht</h2>
|
||||
|
||||
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
|
||||
<div class="form-group">
|
||||
<label for="user">Benutzer auswählen:</label>
|
||||
<select name="user" id="user" class="form-control">
|
||||
<?php foreach ($users as $user): ?>
|
||||
<option value="<?php echo $user['id']; ?>" <?php if ($user['id'] == $selectedUser) echo 'selected'; ?>>
|
||||
<?php echo htmlspecialchars($user['vorname']); ?> <?php echo htmlspecialchars($user['nachname']); ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="month">Monat auswählen:</label>
|
||||
<select name="month" id="month" class="form-control">
|
||||
<?php foreach ($months as $month): ?>
|
||||
<option value="<?php echo $month['month'] . '/' . $month['year']; ?>" <?php if ($month['month'] . '/' . $month['year'] == $selectedMonth) echo 'selected'; ?>>
|
||||
<?php echo $month['month'] . '/' . $month['year']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<input type="submit" value="Zeiten anzeigen" class="btn btn-primary btn-lg">
|
||||
<!-- Button zum Anzeigen der PDF -->
|
||||
<input type="submit" name="action" value="PDF anzeigen" class="btn btn-primary btn-lg" formtarget="_blank">
|
||||
|
||||
</form>
|
||||
|
||||
<?php if ($selectedMonth && $selectedUser): ?>
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Typ</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
<?php foreach ($groupedTimes as $date => $times): ?>
|
||||
<tr>
|
||||
<td><?php echo date('d.m.Y', strtotime($date)); ?></td>
|
||||
<td>
|
||||
<?php foreach ($times as $time): ?>
|
||||
<div><?php echo date('H:i:s', strtotime($time['timestamp_datetime'])) . ' - ' . $time['timestamp_type']; ?></div>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
<td>
|
||||
<a href="editDayEntries.php?employee_id=<?php echo $selectedUser; ?>&datum=<?php echo date('Y-m-d', strtotime($time['timestamp_datetime'])); ?>" class="btn btn-primary">Anpassen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
+169
-169
@@ -1,170 +1,170 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once('./../admin/tcpdf/tcpdf.php');
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['userid'];
|
||||
$user = check_user();
|
||||
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<h2 class="mb-4">Zeitbuchungsfehler Auswertung</h2>
|
||||
|
||||
<?php
|
||||
|
||||
// Benutzer aus der Datenbank erhalten
|
||||
try {
|
||||
$users_stmt = $pdo->prepare("SELECT id,vorname, nachname FROM users WHERE zeiterfassung='1' ORDER BY nachname ASC");
|
||||
$users_stmt->execute();
|
||||
$users = $users_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
foreach($users AS $user){
|
||||
|
||||
|
||||
try {
|
||||
// Holen Sie die fehlerhaften Zeitbuchungen des Mitarbeiters aus der Datenbank
|
||||
$query = "
|
||||
SELECT
|
||||
DATE(timestamp_datetime) as datum,
|
||||
SUM(CASE WHEN timestamp_type = 'KOMMEN' THEN 1 ELSE 0 END) as kommen_count,
|
||||
SUM(CASE WHEN timestamp_type = 'GEHEN' THEN 1 ELSE 0 END) as gehen_count
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime)
|
||||
HAVING
|
||||
kommen_count != gehen_count";
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$fehlerhafteTage = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
$query2 = "
|
||||
SELECT
|
||||
DATE(timestamp_datetime) AS datum,
|
||||
GROUP_CONCAT(timestamp_type ORDER BY timestamp_datetime) AS day_sequence
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime);";
|
||||
|
||||
$stmt = $pdo->prepare($query2);
|
||||
$stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll();
|
||||
|
||||
$invalidDates = [];
|
||||
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
$query1 = "
|
||||
SELECT
|
||||
vorname,
|
||||
nachname
|
||||
FROM
|
||||
users
|
||||
WHERE
|
||||
id = :employee_id
|
||||
ORDER BY
|
||||
nachname
|
||||
";
|
||||
|
||||
$stmt = $pdo->prepare($query1);
|
||||
$stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$userdaten = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
foreach ($userdaten as $usertag){
|
||||
echo "<h5>" . $usertag["vorname"] . " " . $usertag["nachname"] . "</h5>";
|
||||
|
||||
}
|
||||
|
||||
|
||||
foreach ($result as $row) {
|
||||
if (!isValidSequence($row["day_sequence"])) {
|
||||
$invalidDates[] = $row["datum"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php if (!empty($invalidDates)): ?>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Fehler</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($invalidDates as $date): ?>
|
||||
<tr>
|
||||
<td><?php echo date('d.m.Y', strtotime($date)); ?></td>
|
||||
<td>Fehlerhafte Daten</td>
|
||||
<td>
|
||||
<a href="editDayEntries.php?employee_id=<?php echo $user['id']; ?>&datum=<?php echo $date; ?>" class="btn btn-warning">Anpassen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<div class="alert alert-info" role="alert">
|
||||
Keine Zeitbuchungsfehler gefunden.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
session_start();
|
||||
require_once('./../admin/tcpdf/tcpdf.php');
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['userid'];
|
||||
$user = check_user();
|
||||
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<h2 class="mb-4">Zeitbuchungsfehler Auswertung</h2>
|
||||
|
||||
<?php
|
||||
|
||||
// Benutzer aus der Datenbank erhalten
|
||||
try {
|
||||
$users_stmt = $pdo->prepare("SELECT id,vorname, nachname FROM users WHERE zeiterfassung='1' ORDER BY nachname ASC");
|
||||
$users_stmt->execute();
|
||||
$users = $users_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
foreach($users AS $user){
|
||||
|
||||
|
||||
try {
|
||||
// Holen Sie die fehlerhaften Zeitbuchungen des Mitarbeiters aus der Datenbank
|
||||
$query = "
|
||||
SELECT
|
||||
DATE(timestamp_datetime) as datum,
|
||||
SUM(CASE WHEN timestamp_type = 'KOMMEN' THEN 1 ELSE 0 END) as kommen_count,
|
||||
SUM(CASE WHEN timestamp_type = 'GEHEN' THEN 1 ELSE 0 END) as gehen_count
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime)
|
||||
HAVING
|
||||
kommen_count != gehen_count";
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$fehlerhafteTage = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
$query2 = "
|
||||
SELECT
|
||||
DATE(timestamp_datetime) AS datum,
|
||||
GROUP_CONCAT(timestamp_type ORDER BY timestamp_datetime) AS day_sequence
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime);";
|
||||
|
||||
$stmt = $pdo->prepare($query2);
|
||||
$stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll();
|
||||
|
||||
$invalidDates = [];
|
||||
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
$query1 = "
|
||||
SELECT
|
||||
vorname,
|
||||
nachname
|
||||
FROM
|
||||
users
|
||||
WHERE
|
||||
id = :employee_id
|
||||
ORDER BY
|
||||
nachname
|
||||
";
|
||||
|
||||
$stmt = $pdo->prepare($query1);
|
||||
$stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$userdaten = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
foreach ($userdaten as $usertag){
|
||||
echo "<h5>" . $usertag["vorname"] . " " . $usertag["nachname"] . "</h5>";
|
||||
|
||||
}
|
||||
|
||||
|
||||
foreach ($result as $row) {
|
||||
if (!isValidSequence($row["day_sequence"])) {
|
||||
$invalidDates[] = $row["datum"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php if (!empty($invalidDates)): ?>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Fehler</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($invalidDates as $date): ?>
|
||||
<tr>
|
||||
<td><?php echo date('d.m.Y', strtotime($date)); ?></td>
|
||||
<td>Fehlerhafte Daten</td>
|
||||
<td>
|
||||
<a href="editDayEntries.php?employee_id=<?php echo $user['id']; ?>&datum=<?php echo $date; ?>" class="btn btn-warning">Anpassen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<div class="alert alert-info" role="alert">
|
||||
Keine Zeitbuchungsfehler gefunden.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include 'footer.php'; ?>
|
||||
+197
-197
@@ -1,197 +1,197 @@
|
||||
<?php
|
||||
// API: returns JSON events for FullCalendar
|
||||
session_start();
|
||||
require_once(__DIR__ . '/../inc/config.inc.php');
|
||||
require_once(__DIR__ . '/../inc/functions.inc.php');
|
||||
|
||||
// Enable full error reporting for API debugging
|
||||
ini_set('display_errors', '1');
|
||||
ini_set('display_startup_errors', '1');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$user = check_user();
|
||||
$isAdmin = is_admin_user();
|
||||
|
||||
$start = $_GET['start'] ?? null; // expected ISO date
|
||||
$end = $_GET['end'] ?? null;
|
||||
$onlyApproved = isset($_GET['only_approved']) && ($_GET['only_approved'] == '1' || $_GET['only_approved'] === 'true');
|
||||
// public allows non-admin users to request all *approved* vacations (team view)
|
||||
$public = isset($_GET['public']) && ($_GET['public'] == '1' || $_GET['public'] === 'true');
|
||||
// include_rejected if set to 1 will return rejected entries; default behavior: do not return rejected for regular users
|
||||
$includeRejected = isset($_GET['include_rejected']) && ($_GET['include_rejected'] == '1' || $_GET['include_rejected'] === 'true');
|
||||
// only_personal forces the API to return only the current user's vacations (useful even if the user is admin)
|
||||
$onlyPersonal = isset($_GET['only_personal']) && ($_GET['only_personal'] == '1' || $_GET['only_personal'] === 'true');
|
||||
// public_all when used with public=1 returns all non-rejected team vacations (approved + beantragt)
|
||||
$publicAll = isset($_GET['public_all']) && ($_GET['public_all'] == '1' || $_GET['public_all'] === 'true');
|
||||
|
||||
if (!$start || !$end) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'start and end required']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$events = [];
|
||||
try {
|
||||
$branch = 'unknown';
|
||||
$debugMode = isset($_GET['debug']) && ($_GET['debug'] == '1' || $_GET['debug'] === 'true');
|
||||
|
||||
// Vacations: support a personal-only mode, admin mode, and public/team mode
|
||||
if ($onlyPersonal) {
|
||||
$branch = 'onlyPersonal';
|
||||
if ($onlyApproved) {
|
||||
$branch = 'onlyPersonal_onlyApproved';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
if ($includeRejected) {
|
||||
$branch = 'onlyPersonal_includeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
$branch = 'onlyPersonal_excludeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) != 'abgelehnt') ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
}
|
||||
}
|
||||
} elseif ($isAdmin) {
|
||||
$branch = 'admin';
|
||||
if ($onlyApproved) {
|
||||
$branch = 'admin_onlyApproved';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} else {
|
||||
// By default admins see genehmigt + beantragt; include_rejected=1 can override
|
||||
if ($includeRejected) {
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} else {
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) IN ('genehmigt','beantragt')) ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$branch = 'public_or_regular';
|
||||
if ($public && $onlyApproved) {
|
||||
$branch = 'public_onlyApproved';
|
||||
// public team view: show all approved vacations (read-only)
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} elseif ($public && $publicAll) {
|
||||
$branch = 'public_publicAll';
|
||||
// public team view: explicitly show only approved (genehmigt) and pending (beantragt) vacations
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) IN ('genehmigt','beantragt')) ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} else {
|
||||
if ($onlyApproved) {
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
// By default exclude rejected ('abgelehnt') for regular users; include if include_rejected=1
|
||||
if ($includeRejected) {
|
||||
$branch = 'regular_includeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
$branch = 'regular_excludeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) != 'abgelehnt') ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$vacations = $stmt->fetchAll();
|
||||
|
||||
// If debug mode is enabled, prepare meta information
|
||||
if ($debugMode) {
|
||||
$rawStatuses = array_map(function($r){ return $r['status'] ?? null; }, $vacations);
|
||||
$meta = [
|
||||
'branch' => $branch,
|
||||
'count' => count($vacations),
|
||||
'raw_statuses' => $rawStatuses
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($vacations as $v) {
|
||||
// Normalize status: collapse whitespace (including NBSP), trim, lowercase
|
||||
if (isset($v['status'])) {
|
||||
$normalized = preg_replace('/\s+/u', ' ', $v['status']);
|
||||
$status = mb_strtolower(trim($normalized));
|
||||
} else {
|
||||
$status = '';
|
||||
}
|
||||
// Defensive filter: do not expose rejected ('abgelehnt') entries to non-admins
|
||||
if (!$isAdmin && !$includeRejected && mb_stripos($status, 'abgelehnt') !== false) {
|
||||
continue;
|
||||
}
|
||||
$isApproved = (mb_stripos($status, 'genehmigt') !== false);
|
||||
if ($isAdmin) {
|
||||
$title = $v['vorname'] . ' ' . $v['nachname'] . ' (' . ($v['status'] ?? 'beantragt') . ')';
|
||||
} else {
|
||||
$title = $isApproved ? 'Urlaub' : 'Urlaubsantrag';
|
||||
}
|
||||
// Safely compute end date; fallback to start_date if invalid
|
||||
try {
|
||||
$endInclusive = (new DateTime($v['end_date']))->modify('+1 day')->format('Y-m-d');
|
||||
} catch (Exception $e) {
|
||||
$endInclusive = $v['start_date'];
|
||||
}
|
||||
$events[] = [
|
||||
'id' => 'vac_' . $v['id'],
|
||||
'title' => $title,
|
||||
'start' => $v['start_date'],
|
||||
'end' => $endInclusive,
|
||||
'allDay' => true,
|
||||
'color' => ($isApproved) ? '#28a745' : '#ffc107',
|
||||
'extendedProps' => [
|
||||
'type' => 'user',
|
||||
'user_id' => $v['user_id'],
|
||||
'status' => $v['status'],
|
||||
'comment' => $v['comment_user'] ?? ''
|
||||
]
|
||||
];
|
||||
}
|
||||
} catch (Exception $ex) {
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
$payload = ['error' => $ex->getMessage(), 'branch' => $branch, 'trace' => $ex->getTraceAsString()];
|
||||
echo json_encode($payload);
|
||||
exit;
|
||||
}
|
||||
|
||||
} catch (Exception $ex) {
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
$payload = ['error' => $ex->getMessage(), 'branch' => $branch, 'trace' => $ex->getTraceAsString()];
|
||||
echo json_encode($payload);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Company holidays (visible to all)
|
||||
$stmt = $pdo->prepare("SELECT * FROM company_holidays WHERE start_date <= ? AND end_date >= ? ORDER BY start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
$holidays = $stmt->fetchAll();
|
||||
|
||||
foreach ($holidays as $h) {
|
||||
$endInclusive = (new DateTime($h['end_date']))->modify('+1 day')->format('Y-m-d');
|
||||
$events[] = [
|
||||
'id' => 'com_' . $h['id'],
|
||||
'title' => $h['description'] ?: 'Betriebsurlaub',
|
||||
'start' => $h['start_date'],
|
||||
'end' => $endInclusive,
|
||||
'allDay' => true,
|
||||
'color' => '#007bff',
|
||||
'extendedProps' => [
|
||||
'type' => 'company',
|
||||
'description' => $h['description']
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
if ($debugMode) {
|
||||
echo json_encode(['events' => $events, 'meta' => $meta]);
|
||||
} else {
|
||||
echo json_encode($events);
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
// API: returns JSON events for FullCalendar
|
||||
session_start();
|
||||
require_once(__DIR__ . '/../inc/config.inc.php');
|
||||
require_once(__DIR__ . '/../inc/functions.inc.php');
|
||||
|
||||
// Enable full error reporting for API debugging
|
||||
ini_set('display_errors', '1');
|
||||
ini_set('display_startup_errors', '1');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$user = check_user();
|
||||
$isAdmin = is_admin_user();
|
||||
|
||||
$start = $_GET['start'] ?? null; // expected ISO date
|
||||
$end = $_GET['end'] ?? null;
|
||||
$onlyApproved = isset($_GET['only_approved']) && ($_GET['only_approved'] == '1' || $_GET['only_approved'] === 'true');
|
||||
// public allows non-admin users to request all *approved* vacations (team view)
|
||||
$public = isset($_GET['public']) && ($_GET['public'] == '1' || $_GET['public'] === 'true');
|
||||
// include_rejected if set to 1 will return rejected entries; default behavior: do not return rejected for regular users
|
||||
$includeRejected = isset($_GET['include_rejected']) && ($_GET['include_rejected'] == '1' || $_GET['include_rejected'] === 'true');
|
||||
// only_personal forces the API to return only the current user's vacations (useful even if the user is admin)
|
||||
$onlyPersonal = isset($_GET['only_personal']) && ($_GET['only_personal'] == '1' || $_GET['only_personal'] === 'true');
|
||||
// public_all when used with public=1 returns all non-rejected team vacations (approved + beantragt)
|
||||
$publicAll = isset($_GET['public_all']) && ($_GET['public_all'] == '1' || $_GET['public_all'] === 'true');
|
||||
|
||||
if (!$start || !$end) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'start and end required']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$events = [];
|
||||
try {
|
||||
$branch = 'unknown';
|
||||
$debugMode = isset($_GET['debug']) && ($_GET['debug'] == '1' || $_GET['debug'] === 'true');
|
||||
|
||||
// Vacations: support a personal-only mode, admin mode, and public/team mode
|
||||
if ($onlyPersonal) {
|
||||
$branch = 'onlyPersonal';
|
||||
if ($onlyApproved) {
|
||||
$branch = 'onlyPersonal_onlyApproved';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
if ($includeRejected) {
|
||||
$branch = 'onlyPersonal_includeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
$branch = 'onlyPersonal_excludeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) != 'abgelehnt') ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
}
|
||||
}
|
||||
} elseif ($isAdmin) {
|
||||
$branch = 'admin';
|
||||
if ($onlyApproved) {
|
||||
$branch = 'admin_onlyApproved';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} else {
|
||||
// By default admins see genehmigt + beantragt; include_rejected=1 can override
|
||||
if ($includeRejected) {
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} else {
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) IN ('genehmigt','beantragt')) ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$branch = 'public_or_regular';
|
||||
if ($public && $onlyApproved) {
|
||||
$branch = 'public_onlyApproved';
|
||||
// public team view: show all approved vacations (read-only)
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} elseif ($public && $publicAll) {
|
||||
$branch = 'public_publicAll';
|
||||
// public team view: explicitly show only approved (genehmigt) and pending (beantragt) vacations
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) IN ('genehmigt','beantragt')) ORDER BY v.start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
} else {
|
||||
if ($onlyApproved) {
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND LOWER(TRIM(v.status)) = 'genehmigt' ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
// By default exclude rejected ('abgelehnt') for regular users; include if include_rejected=1
|
||||
if ($includeRejected) {
|
||||
$branch = 'regular_includeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
} else {
|
||||
$branch = 'regular_excludeRejected';
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname FROM vacations v JOIN users u ON v.user_id = u.id WHERE v.user_id = ? AND v.start_date <= ? AND v.end_date >= ? AND (v.status IS NULL OR LOWER(TRIM(v.status)) != 'abgelehnt') ORDER BY v.start_date");
|
||||
$stmt->execute([$_SESSION['userid'], $end, $start]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$vacations = $stmt->fetchAll();
|
||||
|
||||
// If debug mode is enabled, prepare meta information
|
||||
if ($debugMode) {
|
||||
$rawStatuses = array_map(function($r){ return $r['status'] ?? null; }, $vacations);
|
||||
$meta = [
|
||||
'branch' => $branch,
|
||||
'count' => count($vacations),
|
||||
'raw_statuses' => $rawStatuses
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($vacations as $v) {
|
||||
// Normalize status: collapse whitespace (including NBSP), trim, lowercase
|
||||
if (isset($v['status'])) {
|
||||
$normalized = preg_replace('/\s+/u', ' ', $v['status']);
|
||||
$status = mb_strtolower(trim($normalized));
|
||||
} else {
|
||||
$status = '';
|
||||
}
|
||||
// Defensive filter: do not expose rejected ('abgelehnt') entries to non-admins
|
||||
if (!$isAdmin && !$includeRejected && mb_stripos($status, 'abgelehnt') !== false) {
|
||||
continue;
|
||||
}
|
||||
$isApproved = (mb_stripos($status, 'genehmigt') !== false);
|
||||
if ($isAdmin) {
|
||||
$title = $v['vorname'] . ' ' . $v['nachname'] . ' (' . ($v['status'] ?? 'beantragt') . ')';
|
||||
} else {
|
||||
$title = $isApproved ? 'Urlaub' : 'Urlaubsantrag';
|
||||
}
|
||||
// Safely compute end date; fallback to start_date if invalid
|
||||
try {
|
||||
$endInclusive = (new DateTime($v['end_date']))->modify('+1 day')->format('Y-m-d');
|
||||
} catch (Exception $e) {
|
||||
$endInclusive = $v['start_date'];
|
||||
}
|
||||
$events[] = [
|
||||
'id' => 'vac_' . $v['id'],
|
||||
'title' => $title,
|
||||
'start' => $v['start_date'],
|
||||
'end' => $endInclusive,
|
||||
'allDay' => true,
|
||||
'color' => ($isApproved) ? '#28a745' : '#ffc107',
|
||||
'extendedProps' => [
|
||||
'type' => 'user',
|
||||
'user_id' => $v['user_id'],
|
||||
'status' => $v['status'],
|
||||
'comment' => $v['comment_user'] ?? ''
|
||||
]
|
||||
];
|
||||
}
|
||||
} catch (Exception $ex) {
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
$payload = ['error' => $ex->getMessage(), 'branch' => $branch, 'trace' => $ex->getTraceAsString()];
|
||||
echo json_encode($payload);
|
||||
exit;
|
||||
}
|
||||
|
||||
} catch (Exception $ex) {
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
$payload = ['error' => $ex->getMessage(), 'branch' => $branch, 'trace' => $ex->getTraceAsString()];
|
||||
echo json_encode($payload);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Company holidays (visible to all)
|
||||
$stmt = $pdo->prepare("SELECT * FROM company_holidays WHERE start_date <= ? AND end_date >= ? ORDER BY start_date");
|
||||
$stmt->execute([$end, $start]);
|
||||
$holidays = $stmt->fetchAll();
|
||||
|
||||
foreach ($holidays as $h) {
|
||||
$endInclusive = (new DateTime($h['end_date']))->modify('+1 day')->format('Y-m-d');
|
||||
$events[] = [
|
||||
'id' => 'com_' . $h['id'],
|
||||
'title' => $h['description'] ?: 'Betriebsurlaub',
|
||||
'start' => $h['start_date'],
|
||||
'end' => $endInclusive,
|
||||
'allDay' => true,
|
||||
'color' => '#007bff',
|
||||
'extendedProps' => [
|
||||
'type' => 'company',
|
||||
'description' => $h['description']
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
if ($debugMode) {
|
||||
echo json_encode(['events' => $events, 'meta' => $meta]);
|
||||
} else {
|
||||
echo json_encode($events);
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
+105
-105
@@ -1,105 +1,105 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
$user = check_user();
|
||||
if (!is_admin_user()) {
|
||||
die('Zugriff verweigert. Nur Chefs dürfen Anträge genehmigen.');
|
||||
}
|
||||
|
||||
// Handle approve/reject actions
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['id']) && isset($_POST['action'])) {
|
||||
$id = (int)$_POST['id'];
|
||||
$action = $_POST['action'];
|
||||
|
||||
if ($action === 'approve') {
|
||||
$stmt = $pdo->prepare("UPDATE vacations SET status = 'genehmigt', approved_by = ?, approved_at = NOW() WHERE id = ?");
|
||||
$stmt->execute([$_SESSION['userid'], $id]);
|
||||
} elseif ($action === 'reject') {
|
||||
$stmt = $pdo->prepare("UPDATE vacations SET status = 'abgelehnt', approved_by = ?, approved_at = NOW() WHERE id = ?");
|
||||
$stmt->execute([$_SESSION['userid'], $id]);
|
||||
} elseif ($action === 'delete' && is_admin_user()) {
|
||||
$del = $pdo->prepare("DELETE FROM vacations WHERE id = ?");
|
||||
$del->execute([$id]);
|
||||
}
|
||||
|
||||
header('Location: approveVacation.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
include 'header.php';
|
||||
|
||||
// List pending and recent requests
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname, u.email FROM vacations v JOIN users u ON v.user_id = u.id ORDER BY v.created_at DESC");
|
||||
$stmt->execute();
|
||||
$requests = $stmt->fetchAll();
|
||||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Urlaubsanträge - Genehmigung</h2>
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Mitarbeiter</th>
|
||||
<th>Von</th>
|
||||
<th>Bis</th>
|
||||
<th>Tage</th>
|
||||
<th>Kommentar</th>
|
||||
<th>Status</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($requests as $r): ?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($r['vorname'] . ' ' . $r['nachname']); ?></td>
|
||||
<td><?php echo $r['start_date']; ?></td>
|
||||
<td><?php echo $r['end_date']; ?></td>
|
||||
<td><?php echo $r['days']; ?></td>
|
||||
<td><?php echo htmlspecialchars($r['comment_user']); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
if ($r['status'] === 'beantragt' || $r['status'] === null) {
|
||||
echo '<span class="badge badge-warning">Beantragt</span>';
|
||||
} elseif ($r['status'] === 'genehmigt') {
|
||||
echo '<span class="badge badge-success">Genehmigt</span>';
|
||||
} else {
|
||||
echo '<span class="badge badge-danger">Abgelehnt</span>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($r['status'] !== 'genehmigt'): ?>
|
||||
<form method="post" style="display:inline-block; margin-right:6px;">
|
||||
<input type="hidden" name="id" value="<?php echo $r['id']; ?>">
|
||||
<input type="hidden" name="action" value="approve">
|
||||
<button class="btn btn-sm btn-success" type="submit">Genehmigen</button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($r['status'] !== 'abgelehnt'): ?>
|
||||
<form method="post" style="display:inline-block;">
|
||||
<input type="hidden" name="id" value="<?php echo $r['id']; ?>">
|
||||
<input type="hidden" name="action" value="reject">
|
||||
<button class="btn btn-sm btn-danger" type="submit">Ablehnen</button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<form method="post" style="display:inline-block; margin-left:6px;" onsubmit="return confirm('Wirklich löschen?');">
|
||||
<input type="hidden" name="id" value="<?php echo $r['id']; ?>">
|
||||
<input type="hidden" name="action" value="delete">
|
||||
<button class="btn btn-sm btn-outline-danger" type="submit">Löschen</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php';
|
||||
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
$user = check_user();
|
||||
if (!is_admin_user()) {
|
||||
die('Zugriff verweigert. Nur Chefs dürfen Anträge genehmigen.');
|
||||
}
|
||||
|
||||
// Handle approve/reject actions
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['id']) && isset($_POST['action'])) {
|
||||
$id = (int)$_POST['id'];
|
||||
$action = $_POST['action'];
|
||||
|
||||
if ($action === 'approve') {
|
||||
$stmt = $pdo->prepare("UPDATE vacations SET status = 'genehmigt', approved_by = ?, approved_at = NOW() WHERE id = ?");
|
||||
$stmt->execute([$_SESSION['userid'], $id]);
|
||||
} elseif ($action === 'reject') {
|
||||
$stmt = $pdo->prepare("UPDATE vacations SET status = 'abgelehnt', approved_by = ?, approved_at = NOW() WHERE id = ?");
|
||||
$stmt->execute([$_SESSION['userid'], $id]);
|
||||
} elseif ($action === 'delete' && is_admin_user()) {
|
||||
$del = $pdo->prepare("DELETE FROM vacations WHERE id = ?");
|
||||
$del->execute([$id]);
|
||||
}
|
||||
|
||||
header('Location: approveVacation.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
include 'header.php';
|
||||
|
||||
// List pending and recent requests
|
||||
$stmt = $pdo->prepare("SELECT v.*, u.vorname, u.nachname, u.email FROM vacations v JOIN users u ON v.user_id = u.id ORDER BY v.created_at DESC");
|
||||
$stmt->execute();
|
||||
$requests = $stmt->fetchAll();
|
||||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Urlaubsanträge - Genehmigung</h2>
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Mitarbeiter</th>
|
||||
<th>Von</th>
|
||||
<th>Bis</th>
|
||||
<th>Tage</th>
|
||||
<th>Kommentar</th>
|
||||
<th>Status</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($requests as $r): ?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($r['vorname'] . ' ' . $r['nachname']); ?></td>
|
||||
<td><?php echo $r['start_date']; ?></td>
|
||||
<td><?php echo $r['end_date']; ?></td>
|
||||
<td><?php echo $r['days']; ?></td>
|
||||
<td><?php echo htmlspecialchars($r['comment_user']); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
if ($r['status'] === 'beantragt' || $r['status'] === null) {
|
||||
echo '<span class="badge badge-warning">Beantragt</span>';
|
||||
} elseif ($r['status'] === 'genehmigt') {
|
||||
echo '<span class="badge badge-success">Genehmigt</span>';
|
||||
} else {
|
||||
echo '<span class="badge badge-danger">Abgelehnt</span>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($r['status'] !== 'genehmigt'): ?>
|
||||
<form method="post" style="display:inline-block; margin-right:6px;">
|
||||
<input type="hidden" name="id" value="<?php echo $r['id']; ?>">
|
||||
<input type="hidden" name="action" value="approve">
|
||||
<button class="btn btn-sm btn-success" type="submit">Genehmigen</button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($r['status'] !== 'abgelehnt'): ?>
|
||||
<form method="post" style="display:inline-block;">
|
||||
<input type="hidden" name="id" value="<?php echo $r['id']; ?>">
|
||||
<input type="hidden" name="action" value="reject">
|
||||
<button class="btn btn-sm btn-danger" type="submit">Ablehnen</button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<form method="post" style="display:inline-block; margin-left:6px;" onsubmit="return confirm('Wirklich löschen?');">
|
||||
<input type="hidden" name="id" value="<?php echo $r['id']; ?>">
|
||||
<input type="hidden" name="action" value="delete">
|
||||
<button class="btn btn-sm btn-outline-danger" type="submit">Löschen</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php';
|
||||
|
||||
?>
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
#$mitarbeiterId = $_GET['employee_id'] ?? null;
|
||||
#$gewaehlterTag = $_GET['datum'] ?? null;
|
||||
$mitarbeiterId = $_SESSION['userid']; // Angenommen, die Mitarbeiter-ID kommt aus der Session
|
||||
$gewaehlterMonat = '2024-01'; // Format: YYYY-MM
|
||||
$tageImMonat = date('t', strtotime($gewaehlterMonat . '-01'));
|
||||
|
||||
$zeitenProTag = [];
|
||||
|
||||
for($tag = 1; $tag <= $tageImMonat; $tag++) {
|
||||
$datum = $gewaehlterMonat . '-' . str_pad($tag, 2, '0', STR_PAD_LEFT);
|
||||
echo $datum . "<br>";
|
||||
// Abfrage für alle Zeitstempel des Tages
|
||||
$query = "
|
||||
SELECT timestamp_type, timestamp_datetime
|
||||
FROM timestamps
|
||||
WHERE employee_id = :employee_id AND DATE(timestamp_datetime) = :datum
|
||||
ORDER BY timestamp_datetime
|
||||
";
|
||||
try {
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $mitarbeiterId, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':datum', $datum);
|
||||
$stmt->execute();
|
||||
$zeitstempel = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
echo $zeitstempel;
|
||||
} catch(PDOException $e) {
|
||||
$pdo->rollBack();
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
$fruehesteKommenZeit = null;
|
||||
$spaetesteGehenZeit = null;
|
||||
$gesamtarbeitszeit = new DateInterval('PT0S');
|
||||
$gesamtpausenzeit = new DateInterval('PT0S');
|
||||
$letzterGehenZeitstempel = null;
|
||||
echo "test";
|
||||
foreach ($zeitstempel as $index => $eintrag) {
|
||||
$zeit = new DateTime($eintrag['timestamp_datetime']);
|
||||
echo "test2";
|
||||
if ($eintrag['timestamp_type'] === 'KOMMEN') {
|
||||
echo "test3";
|
||||
if ($fruehesteKommenZeit === null || $zeit < $fruehesteKommenZeit) {
|
||||
$fruehesteKommenZeit = $zeit;
|
||||
}
|
||||
if ($letzterGehenZeitstempel) {
|
||||
$pause = $letzterGehenZeitstempel->diff($zeit);
|
||||
$gesamtpausenzeit = $gesamtpausenzeit->add($pause);
|
||||
}
|
||||
} else if ($eintrag['timestamp_type'] === 'GEHEN') {
|
||||
if ($spaetesteGehenZeit === null || $zeit > $spaetesteGehenZeit) {
|
||||
$spaetesteGehenZeit = $zeit;
|
||||
}
|
||||
$letzterGehenZeitstempel = $zeit;
|
||||
}
|
||||
}
|
||||
|
||||
if ($fruehesteKommenZeit && $spaetesteGehenZeit) {
|
||||
$gesamtarbeitszeit = $fruehesteKommenZeit->diff($spaetesteGehenZeit)->subtract($gesamtpausenzeit);
|
||||
}
|
||||
#echo $gesamtarbeitszeit;
|
||||
$zeitenProTag[$datum] = [
|
||||
'fruehesteKommenZeit' => $fruehesteKommenZeit ? $fruehesteKommenZeit->format('H:i:s') : '',
|
||||
'spaetesteGehenZeit' => $spaetesteGehenZeit ? $spaetesteGehenZeit->format('H:i:s') : '',
|
||||
'gesamtarbeitszeit' => $gesamtarbeitszeit->format('%H:%I:%S'),
|
||||
'gesamtpausenzeit' => $gesamtpausenzeit->format('%H:%I:%S')
|
||||
];
|
||||
}
|
||||
|
||||
// Ausgabe der Ergebnisse für Testzwecke
|
||||
echo '<pre>';
|
||||
print_r($zeitenProTag);
|
||||
echo '</pre>';
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
#$mitarbeiterId = $_GET['employee_id'] ?? null;
|
||||
#$gewaehlterTag = $_GET['datum'] ?? null;
|
||||
$mitarbeiterId = $_SESSION['userid']; // Angenommen, die Mitarbeiter-ID kommt aus der Session
|
||||
$gewaehlterMonat = '2024-01'; // Format: YYYY-MM
|
||||
$tageImMonat = date('t', strtotime($gewaehlterMonat . '-01'));
|
||||
|
||||
$zeitenProTag = [];
|
||||
|
||||
for($tag = 1; $tag <= $tageImMonat; $tag++) {
|
||||
$datum = $gewaehlterMonat . '-' . str_pad($tag, 2, '0', STR_PAD_LEFT);
|
||||
echo $datum . "<br>";
|
||||
// Abfrage für alle Zeitstempel des Tages
|
||||
$query = "
|
||||
SELECT timestamp_type, timestamp_datetime
|
||||
FROM timestamps
|
||||
WHERE employee_id = :employee_id AND DATE(timestamp_datetime) = :datum
|
||||
ORDER BY timestamp_datetime
|
||||
";
|
||||
try {
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $mitarbeiterId, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':datum', $datum);
|
||||
$stmt->execute();
|
||||
$zeitstempel = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
echo $zeitstempel;
|
||||
} catch(PDOException $e) {
|
||||
$pdo->rollBack();
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
$fruehesteKommenZeit = null;
|
||||
$spaetesteGehenZeit = null;
|
||||
$gesamtarbeitszeit = new DateInterval('PT0S');
|
||||
$gesamtpausenzeit = new DateInterval('PT0S');
|
||||
$letzterGehenZeitstempel = null;
|
||||
echo "test";
|
||||
foreach ($zeitstempel as $index => $eintrag) {
|
||||
$zeit = new DateTime($eintrag['timestamp_datetime']);
|
||||
echo "test2";
|
||||
if ($eintrag['timestamp_type'] === 'KOMMEN') {
|
||||
echo "test3";
|
||||
if ($fruehesteKommenZeit === null || $zeit < $fruehesteKommenZeit) {
|
||||
$fruehesteKommenZeit = $zeit;
|
||||
}
|
||||
if ($letzterGehenZeitstempel) {
|
||||
$pause = $letzterGehenZeitstempel->diff($zeit);
|
||||
$gesamtpausenzeit = $gesamtpausenzeit->add($pause);
|
||||
}
|
||||
} else if ($eintrag['timestamp_type'] === 'GEHEN') {
|
||||
if ($spaetesteGehenZeit === null || $zeit > $spaetesteGehenZeit) {
|
||||
$spaetesteGehenZeit = $zeit;
|
||||
}
|
||||
$letzterGehenZeitstempel = $zeit;
|
||||
}
|
||||
}
|
||||
|
||||
if ($fruehesteKommenZeit && $spaetesteGehenZeit) {
|
||||
$gesamtarbeitszeit = $fruehesteKommenZeit->diff($spaetesteGehenZeit)->subtract($gesamtpausenzeit);
|
||||
}
|
||||
#echo $gesamtarbeitszeit;
|
||||
$zeitenProTag[$datum] = [
|
||||
'fruehesteKommenZeit' => $fruehesteKommenZeit ? $fruehesteKommenZeit->format('H:i:s') : '',
|
||||
'spaetesteGehenZeit' => $spaetesteGehenZeit ? $spaetesteGehenZeit->format('H:i:s') : '',
|
||||
'gesamtarbeitszeit' => $gesamtarbeitszeit->format('%H:%I:%S'),
|
||||
'gesamtpausenzeit' => $gesamtpausenzeit->format('%H:%I:%S')
|
||||
];
|
||||
}
|
||||
|
||||
// Ausgabe der Ergebnisse für Testzwecke
|
||||
echo '<pre>';
|
||||
print_r($zeitenProTag);
|
||||
echo '</pre>';
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
@@ -1,90 +1,90 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once('inc/config.inc.php');
|
||||
require_once('inc/functions.inc.php');
|
||||
|
||||
$user = check_user();
|
||||
if (!is_admin_user()) {
|
||||
die('Zugriff verweigert. Nur Chefs dürfen Betriebsurlaub verwalten.');
|
||||
}
|
||||
|
||||
// Create table if not exists (optional helper)
|
||||
// Administrators can also run the SQL directly in DB. This is just a convenience.
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['start_date']) && isset($_POST['end_date'])) {
|
||||
$start = $_POST['start_date'];
|
||||
$end = $_POST['end_date'];
|
||||
$desc = trim($_POST['description'] ?? 'Betriebsurlaub');
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO company_holidays (start_date, end_date, description, created_by) VALUES (?, ?, ?, ?)");
|
||||
$stmt->execute([$start, $end, $desc, $_SESSION['userid']]);
|
||||
|
||||
header('Location: company_holidays.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
include 'header.php';
|
||||
|
||||
$stmt = $pdo->prepare("SELECT * FROM company_holidays ORDER BY start_date DESC");
|
||||
$stmt->execute();
|
||||
$holidays = $stmt->fetchAll();
|
||||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Betriebsurlaub verwalten</h2>
|
||||
|
||||
<form method="post" class="form-inline mb-3">
|
||||
<div class="form-group mr-2">
|
||||
<label>Von:</label>
|
||||
<input type="date" name="start_date" class="form-control" required>
|
||||
</div>
|
||||
<div class="form-group mr-2">
|
||||
<label>Bis:</label>
|
||||
<input type="date" name="end_date" class="form-control" required>
|
||||
</div>
|
||||
<div class="form-group mr-2">
|
||||
<label>Beschreibung:</label>
|
||||
<input type="text" name="description" class="form-control" placeholder="z. B. Betriebsurlaub Weihnachten">
|
||||
</div>
|
||||
<button class="btn btn-primary">Hinzufügen</button>
|
||||
</form>
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Von</th>
|
||||
<th>Bis</th>
|
||||
<th>Beschreibung</th>
|
||||
<th>Erstellt von</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($holidays as $h): ?>
|
||||
<tr>
|
||||
<td><?php echo $h['start_date']; ?></td>
|
||||
<td><?php echo $h['end_date']; ?></td>
|
||||
<td><?php echo htmlspecialchars($h['description']); ?></td>
|
||||
<td><?php
|
||||
$s = $pdo->prepare("SELECT vorname, nachname FROM users WHERE id = ?");
|
||||
$s->execute([$h['created_by']]);
|
||||
$u = $s->fetch();
|
||||
echo htmlspecialchars($u['vorname'] . ' ' . $u['nachname']);
|
||||
?></td>
|
||||
<td>
|
||||
<form method="post" action="deleteCompanyHoliday.php" onsubmit="return confirm('Betriebsurlaub wirklich löschen?');">
|
||||
<input type="hidden" name="id" value="<?php echo intval($h['id']); ?>">
|
||||
<button class="btn btn-sm btn-danger">Löschen</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php';
|
||||
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once('inc/config.inc.php');
|
||||
require_once('inc/functions.inc.php');
|
||||
|
||||
$user = check_user();
|
||||
if (!is_admin_user()) {
|
||||
die('Zugriff verweigert. Nur Chefs dürfen Betriebsurlaub verwalten.');
|
||||
}
|
||||
|
||||
// Create table if not exists (optional helper)
|
||||
// Administrators can also run the SQL directly in DB. This is just a convenience.
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['start_date']) && isset($_POST['end_date'])) {
|
||||
$start = $_POST['start_date'];
|
||||
$end = $_POST['end_date'];
|
||||
$desc = trim($_POST['description'] ?? 'Betriebsurlaub');
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO company_holidays (start_date, end_date, description, created_by) VALUES (?, ?, ?, ?)");
|
||||
$stmt->execute([$start, $end, $desc, $_SESSION['userid']]);
|
||||
|
||||
header('Location: company_holidays.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
include 'header.php';
|
||||
|
||||
$stmt = $pdo->prepare("SELECT * FROM company_holidays ORDER BY start_date DESC");
|
||||
$stmt->execute();
|
||||
$holidays = $stmt->fetchAll();
|
||||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<h2>Betriebsurlaub verwalten</h2>
|
||||
|
||||
<form method="post" class="form-inline mb-3">
|
||||
<div class="form-group mr-2">
|
||||
<label>Von:</label>
|
||||
<input type="date" name="start_date" class="form-control" required>
|
||||
</div>
|
||||
<div class="form-group mr-2">
|
||||
<label>Bis:</label>
|
||||
<input type="date" name="end_date" class="form-control" required>
|
||||
</div>
|
||||
<div class="form-group mr-2">
|
||||
<label>Beschreibung:</label>
|
||||
<input type="text" name="description" class="form-control" placeholder="z. B. Betriebsurlaub Weihnachten">
|
||||
</div>
|
||||
<button class="btn btn-primary">Hinzufügen</button>
|
||||
</form>
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Von</th>
|
||||
<th>Bis</th>
|
||||
<th>Beschreibung</th>
|
||||
<th>Erstellt von</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($holidays as $h): ?>
|
||||
<tr>
|
||||
<td><?php echo $h['start_date']; ?></td>
|
||||
<td><?php echo $h['end_date']; ?></td>
|
||||
<td><?php echo htmlspecialchars($h['description']); ?></td>
|
||||
<td><?php
|
||||
$s = $pdo->prepare("SELECT vorname, nachname FROM users WHERE id = ?");
|
||||
$s->execute([$h['created_by']]);
|
||||
$u = $s->fetch();
|
||||
echo htmlspecialchars($u['vorname'] . ' ' . $u['nachname']);
|
||||
?></td>
|
||||
<td>
|
||||
<form method="post" action="deleteCompanyHoliday.php" onsubmit="return confirm('Betriebsurlaub wirklich löschen?');">
|
||||
<input type="hidden" name="id" value="<?php echo intval($h['id']); ?>">
|
||||
<button class="btn btn-sm btn-danger">Löschen</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php';
|
||||
|
||||
?>
|
||||
|
||||
+240
-240
@@ -1,241 +1,241 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once('./../admin/tcpdf/tcpdf.php');
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user = check_user();
|
||||
|
||||
if($_GET['id'] && $user["admin"] == 1){
|
||||
$user_id = $_GET['id'];
|
||||
}else{
|
||||
$user_id = $_SESSION['userid'];
|
||||
}
|
||||
|
||||
$mitarbeiterName = ""; // Holen Sie den Namen des Mitarbeiters aus der Datenbank
|
||||
$firmaName = "Praxis Creutzburg"; // Setzen Sie den Firmennamen
|
||||
|
||||
|
||||
$selectedMonth = $_GET['month'] ?? date('m'); // Monat vom Benutzer oder aktueller Monat
|
||||
$selectedYear = $_GET['year'] ?? date('Y'); // Jahr vom Benutzer oder aktuelles Jahr
|
||||
|
||||
$selectedMonthSQL = str_pad($selectedMonth, 2, '0', STR_PAD_LEFT);
|
||||
|
||||
#echo $selectedMonthSQL;
|
||||
|
||||
try {
|
||||
|
||||
$query2 = "
|
||||
SELECT
|
||||
DATE(timestamp_datetime) AS datum,
|
||||
GROUP_CONCAT(timestamp_type ORDER BY timestamp_datetime) AS day_sequence
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id AND
|
||||
MONTH(timestamp_datetime) = :selectedMonth AND
|
||||
YEAR(timestamp_datetime) = :selectedYear
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime);";
|
||||
|
||||
$stmt = $pdo->prepare($query2);
|
||||
$stmt->bindParam(':employee_id', $user_id, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':selectedMonth', $selectedMonth, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':selectedYear', $selectedYear, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll();
|
||||
|
||||
#$invalidDates = [];
|
||||
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
foreach ($result as $row) {
|
||||
|
||||
if (!isValidSequence($row["day_sequence"])) {
|
||||
$fehlerhafteTage[] = $row["datum"];
|
||||
}
|
||||
}
|
||||
|
||||
if ($fehlerhafteTage){
|
||||
|
||||
include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
<?php
|
||||
|
||||
echo "<h1>Fehlzeiten erkannt</h1><br><h4>Bitte erst beheben.</h4><br>";
|
||||
|
||||
?>
|
||||
|
||||
<a href="index.php" class="btn btn-info btn-lg btn-block">Zurück</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php';
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
// Holen Sie den Namen des Mitarbeiters aus der Datenbank
|
||||
$user_stmt = $pdo->prepare("SELECT vorname, nachname FROM users WHERE id = ?");
|
||||
$user_stmt->bindParam(1, $user_id);
|
||||
$user_stmt->execute();
|
||||
$user = $user_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($user) {
|
||||
$mitarbeiterName = $user['vorname'] . ' ' . $user['nachname'];
|
||||
} else {
|
||||
die("Mitarbeiter nicht gefunden.");
|
||||
}
|
||||
|
||||
// Holen Sie die Zeiten des Mitarbeiters aus der Datenbank
|
||||
$times_stmt = $pdo->prepare("SELECT
|
||||
DATE(timestamp_datetime) AS day,
|
||||
MIN(CASE WHEN timestamp_type = 'KOMMEN' THEN timestamp_datetime END) AS first_come,
|
||||
MAX(CASE WHEN timestamp_type = 'GEHEN' THEN timestamp_datetime END) AS last_go,
|
||||
|
||||
SEC_TO_TIME(SUM(
|
||||
CASE
|
||||
WHEN timestamp_type = 'GEHEN' THEN UNIX_TIMESTAMP(timestamp_datetime)
|
||||
WHEN timestamp_type = 'KOMMEN' THEN -UNIX_TIMESTAMP(timestamp_datetime)
|
||||
ELSE 0
|
||||
END
|
||||
)) AS total_time,
|
||||
SEC_TO_TIME(
|
||||
TIME_TO_SEC(
|
||||
SEC_TO_TIME(
|
||||
UNIX_TIMESTAMP(
|
||||
MAX(CASE WHEN timestamp_type = 'GEHEN' THEN timestamp_datetime END)
|
||||
) - UNIX_TIMESTAMP(
|
||||
MIN(CASE WHEN timestamp_type = 'KOMMEN' THEN timestamp_datetime END)
|
||||
)
|
||||
)
|
||||
) - TIME_TO_SEC(SEC_TO_TIME(SUM(
|
||||
CASE
|
||||
WHEN timestamp_type = 'GEHEN' THEN UNIX_TIMESTAMP(timestamp_datetime)
|
||||
WHEN timestamp_type = 'KOMMEN' THEN -UNIX_TIMESTAMP(timestamp_datetime)
|
||||
ELSE 0
|
||||
END
|
||||
)))
|
||||
) AS difference_between_total_time_and_pause_time
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id AND
|
||||
MONTH(timestamp_datetime) = :month AND
|
||||
YEAR(timestamp_datetime) = :year
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime)");
|
||||
|
||||
$times_stmt->bindParam(':employee_id', $user_id, PDO::PARAM_INT);
|
||||
$times_stmt->bindParam(':month', $selectedMonth, PDO::PARAM_INT);
|
||||
$times_stmt->bindParam(':year', $selectedYear, PDO::PARAM_INT);
|
||||
$times_stmt->execute();
|
||||
// Ergebnisse abrufen
|
||||
#$result = $times_stmt->fetchAll();
|
||||
|
||||
#if (count($result) > 0) {
|
||||
|
||||
// Erstellen eines leeren Arrays, um die gesammelten Daten zu speichern
|
||||
$times_data = [];
|
||||
|
||||
// Schleife durch die Ergebnisse der Abfrage und Speichern der Daten in einem assoziativen Array mit dem Tag als Schlüssel
|
||||
while ($row = $times_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$day = date('d', strtotime($row['day']));
|
||||
$times_data[$day] = $row;
|
||||
}
|
||||
|
||||
|
||||
// Erstellen des PDF-Dokuments
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
$pdf->SetCreator(PDF_CREATOR);
|
||||
$pdf->SetAuthor($mitarbeiterName);
|
||||
$pdf->SetTitle('Arbeitszeiten');
|
||||
$pdf->SetSubject('Arbeitszeiten von ' . $mitarbeiterName);
|
||||
|
||||
$pdf->AddPage();
|
||||
$stempdate = $selectedYear . "-" . $selectedMonth . "-1" ;
|
||||
$date = new DateTime($stempdate);
|
||||
|
||||
// the international date formater object
|
||||
$formatter = new IntlDateFormatter(
|
||||
"de-DE",
|
||||
IntlDateFormatter::LONG,
|
||||
IntlDateFormatter::NONE,
|
||||
"Europe/Berlin",
|
||||
IntlDateFormatter::GREGORIAN,
|
||||
"MMMM"
|
||||
);
|
||||
|
||||
// Konvertieren Sie die Monatsnummer in einen Monatsnamen
|
||||
#$dateObj = DateTime::createFromFormat('!m', $selectedMonth);
|
||||
$monthName = $formatter->format($date); // z.B. March
|
||||
|
||||
|
||||
|
||||
$html = '<h1>Arbeitszeiten - ' . $firmaName . '</h1>';
|
||||
$html .= '<h2>Mitarbeiter: ' . $mitarbeiterName . '</h2>';
|
||||
$html .= '<h3>Monat: ' . $monthName . ' ' . $selectedYear . '</h3>';
|
||||
$html .= '<table border="1" style="font-size:14px;" width=100%>';
|
||||
$html .= '<tr><th style="width: 7%;">Tag</th><th style="width: 12%;">Start</th><th style="width: 12%;">Pause</th><th style="width: 12%;">Ende</th><th>Gesamtzeit</th><th style="width: 20%;font-size:12px;">aufgezeichnet am:</th><th style="width: 23%;">Bemerkung</th></tr>';
|
||||
|
||||
// Schleife durch die Tage 1-31
|
||||
for ($day = 1; $day <= 31; $day++) {
|
||||
|
||||
$daytwo = str_pad($day, 2, '0', STR_PAD_LEFT);
|
||||
// Überprüfen, ob Daten für diesen Tag vorhanden sind
|
||||
if (isset($times_data[$daytwo])) {
|
||||
// Daten für diesen Tag aus dem Array abrufen
|
||||
$row = $times_data[$daytwo];
|
||||
|
||||
$html .= '<tr><td>' . $day . '</td><td>' . date('H:i:s', strtotime($row['first_come'])) . '</td><td>' . $row['difference_between_total_time_and_pause_time'] . '</td><td>' . date('H:i:s', strtotime($row['last_go'])) . '</td><td>' . $row['total_time'] . '</td><td>' . date('d.m.Y', strtotime($row['day'])) . '</td><td></td></tr>';
|
||||
list($hours, $minutes, $seconds) = explode(':', $row["total_time"]);
|
||||
$totalSeconds += $hours * 3600 + $minutes * 60 + $seconds;
|
||||
|
||||
|
||||
} else {
|
||||
// Wenn keine Daten für diesen Tag vorhanden sind, eine leere Zeile ausgeben
|
||||
$html .= '<tr><td>' . $day . '</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// Umwandeln der gesamten Sekunden zurück in Stunden, Minuten, Sekunden
|
||||
$hours = floor($totalSeconds / 3600);
|
||||
$mins = floor($totalSeconds / 60 % 60);
|
||||
$secs = floor($totalSeconds % 60);
|
||||
$totalTime = sprintf('%02d:%02d:%02d', $hours, $mins, $secs);
|
||||
|
||||
#echo "Gesamtzeit über alle Tage: " . $totalTime;
|
||||
$html .= '<tr><td></td><td></td><td></td><td><b>Gesamt</b></td><td><b>' . $totalTime .'</b></td><td></td><td></td></tr>';
|
||||
|
||||
$html .= '</table>';
|
||||
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
$pdf->Output('Arbeitszeiten_' . $user['nachname'] . '_' . $selectedYear . '_' . $selectedMonth . '.pdf', 'I');
|
||||
#} else {
|
||||
# echo "Keine Ergebnisse gefunden";
|
||||
#}
|
||||
|
||||
|
||||
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
<?php
|
||||
session_start();
|
||||
require_once('./../admin/tcpdf/tcpdf.php');
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
$user = check_user();
|
||||
|
||||
if($_GET['id'] && $user["admin"] == 1){
|
||||
$user_id = $_GET['id'];
|
||||
}else{
|
||||
$user_id = $_SESSION['userid'];
|
||||
}
|
||||
|
||||
$mitarbeiterName = ""; // Holen Sie den Namen des Mitarbeiters aus der Datenbank
|
||||
$firmaName = "Praxis Creutzburg"; // Setzen Sie den Firmennamen
|
||||
|
||||
|
||||
$selectedMonth = $_GET['month'] ?? date('m'); // Monat vom Benutzer oder aktueller Monat
|
||||
$selectedYear = $_GET['year'] ?? date('Y'); // Jahr vom Benutzer oder aktuelles Jahr
|
||||
|
||||
$selectedMonthSQL = str_pad($selectedMonth, 2, '0', STR_PAD_LEFT);
|
||||
|
||||
#echo $selectedMonthSQL;
|
||||
|
||||
try {
|
||||
|
||||
$query2 = "
|
||||
SELECT
|
||||
DATE(timestamp_datetime) AS datum,
|
||||
GROUP_CONCAT(timestamp_type ORDER BY timestamp_datetime) AS day_sequence
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id AND
|
||||
MONTH(timestamp_datetime) = :selectedMonth AND
|
||||
YEAR(timestamp_datetime) = :selectedYear
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime);";
|
||||
|
||||
$stmt = $pdo->prepare($query2);
|
||||
$stmt->bindParam(':employee_id', $user_id, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':selectedMonth', $selectedMonth, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':selectedYear', $selectedYear, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll();
|
||||
|
||||
#$invalidDates = [];
|
||||
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
foreach ($result as $row) {
|
||||
|
||||
if (!isValidSequence($row["day_sequence"])) {
|
||||
$fehlerhafteTage[] = $row["datum"];
|
||||
}
|
||||
}
|
||||
|
||||
if ($fehlerhafteTage){
|
||||
|
||||
include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
<?php
|
||||
|
||||
echo "<h1>Fehlzeiten erkannt</h1><br><h4>Bitte erst beheben.</h4><br>";
|
||||
|
||||
?>
|
||||
|
||||
<a href="index.php" class="btn btn-info btn-lg btn-block">Zurück</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php';
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
// Holen Sie den Namen des Mitarbeiters aus der Datenbank
|
||||
$user_stmt = $pdo->prepare("SELECT vorname, nachname FROM users WHERE id = ?");
|
||||
$user_stmt->bindParam(1, $user_id);
|
||||
$user_stmt->execute();
|
||||
$user = $user_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($user) {
|
||||
$mitarbeiterName = $user['vorname'] . ' ' . $user['nachname'];
|
||||
} else {
|
||||
die("Mitarbeiter nicht gefunden.");
|
||||
}
|
||||
|
||||
// Holen Sie die Zeiten des Mitarbeiters aus der Datenbank
|
||||
$times_stmt = $pdo->prepare("SELECT
|
||||
DATE(timestamp_datetime) AS day,
|
||||
MIN(CASE WHEN timestamp_type = 'KOMMEN' THEN timestamp_datetime END) AS first_come,
|
||||
MAX(CASE WHEN timestamp_type = 'GEHEN' THEN timestamp_datetime END) AS last_go,
|
||||
|
||||
SEC_TO_TIME(SUM(
|
||||
CASE
|
||||
WHEN timestamp_type = 'GEHEN' THEN UNIX_TIMESTAMP(timestamp_datetime)
|
||||
WHEN timestamp_type = 'KOMMEN' THEN -UNIX_TIMESTAMP(timestamp_datetime)
|
||||
ELSE 0
|
||||
END
|
||||
)) AS total_time,
|
||||
SEC_TO_TIME(
|
||||
TIME_TO_SEC(
|
||||
SEC_TO_TIME(
|
||||
UNIX_TIMESTAMP(
|
||||
MAX(CASE WHEN timestamp_type = 'GEHEN' THEN timestamp_datetime END)
|
||||
) - UNIX_TIMESTAMP(
|
||||
MIN(CASE WHEN timestamp_type = 'KOMMEN' THEN timestamp_datetime END)
|
||||
)
|
||||
)
|
||||
) - TIME_TO_SEC(SEC_TO_TIME(SUM(
|
||||
CASE
|
||||
WHEN timestamp_type = 'GEHEN' THEN UNIX_TIMESTAMP(timestamp_datetime)
|
||||
WHEN timestamp_type = 'KOMMEN' THEN -UNIX_TIMESTAMP(timestamp_datetime)
|
||||
ELSE 0
|
||||
END
|
||||
)))
|
||||
) AS difference_between_total_time_and_pause_time
|
||||
FROM
|
||||
timestamps
|
||||
WHERE
|
||||
employee_id = :employee_id AND
|
||||
MONTH(timestamp_datetime) = :month AND
|
||||
YEAR(timestamp_datetime) = :year
|
||||
GROUP BY
|
||||
DATE(timestamp_datetime)");
|
||||
|
||||
$times_stmt->bindParam(':employee_id', $user_id, PDO::PARAM_INT);
|
||||
$times_stmt->bindParam(':month', $selectedMonth, PDO::PARAM_INT);
|
||||
$times_stmt->bindParam(':year', $selectedYear, PDO::PARAM_INT);
|
||||
$times_stmt->execute();
|
||||
// Ergebnisse abrufen
|
||||
#$result = $times_stmt->fetchAll();
|
||||
|
||||
#if (count($result) > 0) {
|
||||
|
||||
// Erstellen eines leeren Arrays, um die gesammelten Daten zu speichern
|
||||
$times_data = [];
|
||||
|
||||
// Schleife durch die Ergebnisse der Abfrage und Speichern der Daten in einem assoziativen Array mit dem Tag als Schlüssel
|
||||
while ($row = $times_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$day = date('d', strtotime($row['day']));
|
||||
$times_data[$day] = $row;
|
||||
}
|
||||
|
||||
|
||||
// Erstellen des PDF-Dokuments
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
$pdf->SetCreator(PDF_CREATOR);
|
||||
$pdf->SetAuthor($mitarbeiterName);
|
||||
$pdf->SetTitle('Arbeitszeiten');
|
||||
$pdf->SetSubject('Arbeitszeiten von ' . $mitarbeiterName);
|
||||
|
||||
$pdf->AddPage();
|
||||
$stempdate = $selectedYear . "-" . $selectedMonth . "-1" ;
|
||||
$date = new DateTime($stempdate);
|
||||
|
||||
// the international date formater object
|
||||
$formatter = new IntlDateFormatter(
|
||||
"de-DE",
|
||||
IntlDateFormatter::LONG,
|
||||
IntlDateFormatter::NONE,
|
||||
"Europe/Berlin",
|
||||
IntlDateFormatter::GREGORIAN,
|
||||
"MMMM"
|
||||
);
|
||||
|
||||
// Konvertieren Sie die Monatsnummer in einen Monatsnamen
|
||||
#$dateObj = DateTime::createFromFormat('!m', $selectedMonth);
|
||||
$monthName = $formatter->format($date); // z.B. March
|
||||
|
||||
|
||||
|
||||
$html = '<h1>Arbeitszeiten - ' . $firmaName . '</h1>';
|
||||
$html .= '<h2>Mitarbeiter: ' . $mitarbeiterName . '</h2>';
|
||||
$html .= '<h3>Monat: ' . $monthName . ' ' . $selectedYear . '</h3>';
|
||||
$html .= '<table border="1" style="font-size:14px;" width=100%>';
|
||||
$html .= '<tr><th style="width: 7%;">Tag</th><th style="width: 12%;">Start</th><th style="width: 12%;">Pause</th><th style="width: 12%;">Ende</th><th>Gesamtzeit</th><th style="width: 20%;font-size:12px;">aufgezeichnet am:</th><th style="width: 23%;">Bemerkung</th></tr>';
|
||||
|
||||
// Schleife durch die Tage 1-31
|
||||
for ($day = 1; $day <= 31; $day++) {
|
||||
|
||||
$daytwo = str_pad($day, 2, '0', STR_PAD_LEFT);
|
||||
// Überprüfen, ob Daten für diesen Tag vorhanden sind
|
||||
if (isset($times_data[$daytwo])) {
|
||||
// Daten für diesen Tag aus dem Array abrufen
|
||||
$row = $times_data[$daytwo];
|
||||
|
||||
$html .= '<tr><td>' . $day . '</td><td>' . date('H:i:s', strtotime($row['first_come'])) . '</td><td>' . $row['difference_between_total_time_and_pause_time'] . '</td><td>' . date('H:i:s', strtotime($row['last_go'])) . '</td><td>' . $row['total_time'] . '</td><td>' . date('d.m.Y', strtotime($row['day'])) . '</td><td></td></tr>';
|
||||
list($hours, $minutes, $seconds) = explode(':', $row["total_time"]);
|
||||
$totalSeconds += $hours * 3600 + $minutes * 60 + $seconds;
|
||||
|
||||
|
||||
} else {
|
||||
// Wenn keine Daten für diesen Tag vorhanden sind, eine leere Zeile ausgeben
|
||||
$html .= '<tr><td>' . $day . '</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// Umwandeln der gesamten Sekunden zurück in Stunden, Minuten, Sekunden
|
||||
$hours = floor($totalSeconds / 3600);
|
||||
$mins = floor($totalSeconds / 60 % 60);
|
||||
$secs = floor($totalSeconds % 60);
|
||||
$totalTime = sprintf('%02d:%02d:%02d', $hours, $mins, $secs);
|
||||
|
||||
#echo "Gesamtzeit über alle Tage: " . $totalTime;
|
||||
$html .= '<tr><td></td><td></td><td></td><td><b>Gesamt</b></td><td><b>' . $totalTime .'</b></td><td></td><td></td></tr>';
|
||||
|
||||
$html .= '</table>';
|
||||
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
$pdf->Output('Arbeitszeiten_' . $user['nachname'] . '_' . $selectedYear . '_' . $selectedMonth . '.pdf', 'I');
|
||||
#} else {
|
||||
# echo "Keine Ergebnisse gefunden";
|
||||
#}
|
||||
|
||||
|
||||
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
?>
|
||||
@@ -1,26 +1,26 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once('inc/config.inc.php');
|
||||
require_once('inc/functions.inc.php');
|
||||
|
||||
$user = check_user();
|
||||
if (!is_admin_user()) {
|
||||
http_response_code(403);
|
||||
echo 'Zugriff verweigert.';
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['id'])) {
|
||||
http_response_code(400);
|
||||
echo 'Ungültige Anfrage.';
|
||||
exit;
|
||||
}
|
||||
|
||||
$id = intval($_POST['id']);
|
||||
|
||||
$stmt = $pdo->prepare("DELETE FROM company_holidays WHERE id = ?");
|
||||
$stmt->execute([$id]);
|
||||
|
||||
header('Location: company_holidays.php');
|
||||
exit;
|
||||
<?php
|
||||
session_start();
|
||||
require_once('inc/config.inc.php');
|
||||
require_once('inc/functions.inc.php');
|
||||
|
||||
$user = check_user();
|
||||
if (!is_admin_user()) {
|
||||
http_response_code(403);
|
||||
echo 'Zugriff verweigert.';
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['id'])) {
|
||||
http_response_code(400);
|
||||
echo 'Ungültige Anfrage.';
|
||||
exit;
|
||||
}
|
||||
|
||||
$id = intval($_POST['id']);
|
||||
|
||||
$stmt = $pdo->prepare("DELETE FROM company_holidays WHERE id = ?");
|
||||
$stmt->execute([$id]);
|
||||
|
||||
header('Location: company_holidays.php');
|
||||
exit;
|
||||
?>
|
||||
@@ -1,51 +1,51 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php"); // Stellen Sie sicher, dass die Datenbankkonfiguration korrekt ist
|
||||
require_once("inc/functions.inc.php"); // Enthält Funktionen für die Benutzerauthentifizierung und mehr
|
||||
|
||||
// Überprüfen, ob der Benutzer angemeldet ist
|
||||
$user = check_user();
|
||||
|
||||
include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<?php
|
||||
try {
|
||||
// Überprüfen, ob die erforderlichen POST-Daten vorhanden sind
|
||||
if (isset($_GET['timestamp_id'])) {
|
||||
// Die timestamp_id aus dem POST-Array holen
|
||||
$timestamp_id = $_GET['timestamp_id'];
|
||||
|
||||
// SQL-Abfrage zum Löschen der Buchung
|
||||
$sql = "DELETE FROM timestamps WHERE timestamp_id = :timestamp_id";
|
||||
|
||||
// Vorbereiten der SQL-Abfrage
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Binden von Parametern
|
||||
$stmt->bindParam(':timestamp_id', $timestamp_id, PDO::PARAM_INT);
|
||||
|
||||
// Ausführen der vorbereiteten Abfrage
|
||||
$stmt->execute();
|
||||
|
||||
// Erfolgreich gelöscht
|
||||
echo "Buchung erfolgreich gelöscht";
|
||||
} else {
|
||||
// Fehler, wenn timestamp_id nicht im POST-Array gefunden wurde
|
||||
echo "Fehler: timestamp_id nicht gefunden";
|
||||
}
|
||||
} catch(PDOException $e) {
|
||||
// Fehler beim Verbindungsaufbau oder bei der Abfrage
|
||||
echo "Fehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php"); // Stellen Sie sicher, dass die Datenbankkonfiguration korrekt ist
|
||||
require_once("inc/functions.inc.php"); // Enthält Funktionen für die Benutzerauthentifizierung und mehr
|
||||
|
||||
// Überprüfen, ob der Benutzer angemeldet ist
|
||||
$user = check_user();
|
||||
|
||||
include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<?php
|
||||
try {
|
||||
// Überprüfen, ob die erforderlichen POST-Daten vorhanden sind
|
||||
if (isset($_GET['timestamp_id'])) {
|
||||
// Die timestamp_id aus dem POST-Array holen
|
||||
$timestamp_id = $_GET['timestamp_id'];
|
||||
|
||||
// SQL-Abfrage zum Löschen der Buchung
|
||||
$sql = "DELETE FROM timestamps WHERE timestamp_id = :timestamp_id";
|
||||
|
||||
// Vorbereiten der SQL-Abfrage
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Binden von Parametern
|
||||
$stmt->bindParam(':timestamp_id', $timestamp_id, PDO::PARAM_INT);
|
||||
|
||||
// Ausführen der vorbereiteten Abfrage
|
||||
$stmt->execute();
|
||||
|
||||
// Erfolgreich gelöscht
|
||||
echo "Buchung erfolgreich gelöscht";
|
||||
} else {
|
||||
// Fehler, wenn timestamp_id nicht im POST-Array gefunden wurde
|
||||
echo "Fehler: timestamp_id nicht gefunden";
|
||||
}
|
||||
} catch(PDOException $e) {
|
||||
// Fehler beim Verbindungsaufbau oder bei der Abfrage
|
||||
echo "Fehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
@@ -1,39 +1,39 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php"); // Stellen Sie sicher, dass die Datenbankkonfiguration korrekt ist
|
||||
require_once("inc/functions.inc.php"); // Enthält Funktionen für die Benutzerauthentifizierung und mehr
|
||||
|
||||
// Überprüfen, ob der Benutzer angemeldet ist
|
||||
$user = check_user();
|
||||
|
||||
try {
|
||||
// Überprüfen, ob die erforderlichen POST-Daten vorhanden sind
|
||||
if (isset($_POST['timestamp_id'])) {
|
||||
// Die timestamp_id aus dem POST-Array holen
|
||||
$timestamp_id = $_POST['timestamp_id'];
|
||||
|
||||
// SQL-Abfrage zum Löschen der Buchung
|
||||
$sql = "DELETE FROM buchungen WHERE timestamp_id = :timestamp_id";
|
||||
|
||||
// Vorbereiten der SQL-Abfrage
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Binden von Parametern
|
||||
$stmt->bindParam(':timestamp_id', $timestamp_id, PDO::PARAM_INT);
|
||||
|
||||
// Ausführen der vorbereiteten Abfrage
|
||||
$stmt->execute();
|
||||
|
||||
// Erfolgreich gelöscht
|
||||
echo "Buchung erfolgreich gelöscht";
|
||||
} else {
|
||||
// Fehler, wenn timestamp_id nicht im POST-Array gefunden wurde
|
||||
echo "Fehler: timestamp_id nicht gefunden";
|
||||
}
|
||||
} catch(PDOException $e) {
|
||||
// Fehler beim Verbindungsaufbau oder bei der Abfrage
|
||||
echo "Fehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php"); // Stellen Sie sicher, dass die Datenbankkonfiguration korrekt ist
|
||||
require_once("inc/functions.inc.php"); // Enthält Funktionen für die Benutzerauthentifizierung und mehr
|
||||
|
||||
// Überprüfen, ob der Benutzer angemeldet ist
|
||||
$user = check_user();
|
||||
|
||||
try {
|
||||
// Überprüfen, ob die erforderlichen POST-Daten vorhanden sind
|
||||
if (isset($_POST['timestamp_id'])) {
|
||||
// Die timestamp_id aus dem POST-Array holen
|
||||
$timestamp_id = $_POST['timestamp_id'];
|
||||
|
||||
// SQL-Abfrage zum Löschen der Buchung
|
||||
$sql = "DELETE FROM buchungen WHERE timestamp_id = :timestamp_id";
|
||||
|
||||
// Vorbereiten der SQL-Abfrage
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Binden von Parametern
|
||||
$stmt->bindParam(':timestamp_id', $timestamp_id, PDO::PARAM_INT);
|
||||
|
||||
// Ausführen der vorbereiteten Abfrage
|
||||
$stmt->execute();
|
||||
|
||||
// Erfolgreich gelöscht
|
||||
echo "Buchung erfolgreich gelöscht";
|
||||
} else {
|
||||
// Fehler, wenn timestamp_id nicht im POST-Array gefunden wurde
|
||||
echo "Fehler: timestamp_id nicht gefunden";
|
||||
}
|
||||
} catch(PDOException $e) {
|
||||
// Fehler beim Verbindungsaufbau oder bei der Abfrage
|
||||
echo "Fehler: " . $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -1,38 +1,38 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once('inc/config.inc.php');
|
||||
require_once('inc/functions.inc.php');
|
||||
|
||||
$user = check_user();
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['id'])) {
|
||||
http_response_code(400);
|
||||
die('Bad request');
|
||||
}
|
||||
|
||||
$id = (int)$_POST['id'];
|
||||
$referer = $_POST['referer'] ?? 'urlaubsantrag.php';
|
||||
|
||||
// Fetch vacation to verify ownership
|
||||
$stmt = $pdo->prepare("SELECT user_id, status FROM vacations WHERE id = ?");
|
||||
$stmt->execute([$id]);
|
||||
$vac = $stmt->fetch();
|
||||
|
||||
if (!$vac) {
|
||||
die('Urlaubseintrag nicht gefunden.');
|
||||
}
|
||||
|
||||
$isAdmin = is_admin_user();
|
||||
|
||||
if (!$isAdmin && $vac['user_id'] != $_SESSION['userid']) {
|
||||
die('Zugriff verweigert.');
|
||||
}
|
||||
|
||||
// Allow deletion for admins or owner
|
||||
$del = $pdo->prepare("DELETE FROM vacations WHERE id = ?");
|
||||
$del->execute([$id]);
|
||||
|
||||
header('Location: ' . $referer);
|
||||
exit();
|
||||
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
require_once('inc/config.inc.php');
|
||||
require_once('inc/functions.inc.php');
|
||||
|
||||
$user = check_user();
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['id'])) {
|
||||
http_response_code(400);
|
||||
die('Bad request');
|
||||
}
|
||||
|
||||
$id = (int)$_POST['id'];
|
||||
$referer = $_POST['referer'] ?? 'urlaubsantrag.php';
|
||||
|
||||
// Fetch vacation to verify ownership
|
||||
$stmt = $pdo->prepare("SELECT user_id, status FROM vacations WHERE id = ?");
|
||||
$stmt->execute([$id]);
|
||||
$vac = $stmt->fetch();
|
||||
|
||||
if (!$vac) {
|
||||
die('Urlaubseintrag nicht gefunden.');
|
||||
}
|
||||
|
||||
$isAdmin = is_admin_user();
|
||||
|
||||
if (!$isAdmin && $vac['user_id'] != $_SESSION['userid']) {
|
||||
die('Zugriff verweigert.');
|
||||
}
|
||||
|
||||
// Allow deletion for admins or owner
|
||||
$del = $pdo->prepare("DELETE FROM vacations WHERE id = ?");
|
||||
$del->execute([$id]);
|
||||
|
||||
header('Location: ' . $referer);
|
||||
exit();
|
||||
|
||||
?>
|
||||
|
||||
+115
-115
@@ -1,116 +1,116 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
#$user_id = $_SESSION['userid'];
|
||||
|
||||
$user_id = $_GET['employee_id'] ?? null;
|
||||
$datum = $_GET['datum'] ?? null;
|
||||
|
||||
if ($user_id && $datum) {
|
||||
try {
|
||||
// Holen Sie alle Zeitbuchungen des Tages für den Mitarbeiter
|
||||
$query = "SELECT * FROM timestamps WHERE employee_id = :employee_id AND DATE(timestamp_datetime) = :datum ORDER BY timestamp_datetime ASC";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $user_id, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':datum', $datum);
|
||||
$stmt->execute();
|
||||
$buchungen = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
} else {
|
||||
die("Fehler: Mitarbeiter-ID oder Datum fehlt.");
|
||||
}
|
||||
|
||||
// ... [Hier könnten Sie PHP-Code für die Bearbeitung der Buchungen hinzufügen]
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Tageseinträge bearbeiten</title>
|
||||
<!-- ... [Bootstrap-CSS und optional JavaScript] -->
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h3>Tageseinträge bearbeiten - <?php echo date('d.m.Y', strtotime($datum)); ?></h3>
|
||||
|
||||
<!-- Formular zum Bearbeiten der Zeitbuchungen -->
|
||||
<form id="mainForm" action="saveDayEntries.php" method="post">
|
||||
<input type="hidden" name="employee_id" value="<?php echo $user_id; ?>">
|
||||
<input type="hidden" name="datum" value="<?php echo $datum; ?>">
|
||||
<?php foreach ($buchungen as $index => $buchung): ?>
|
||||
<div class="form-group" id="entry_<?php echo $buchung['timestamp_id']; ?>">
|
||||
<label>Zeitbuchung <?php echo $index + 1; ?>:</label>
|
||||
<input type="datetime-local" class="form-control" name="buchungen[<?php echo $buchung['timestamp_id']; ?>][timestamp_datetime]" value="<?php echo $buchung['timestamp_datetime']; ?>">
|
||||
<select class="form-control" name="buchungen[<?php echo $buchung['timestamp_id']; ?>][timestamp_type]">
|
||||
<option value="KOMMEN" <?php if ($buchung['timestamp_type'] == 'KOMMEN') echo 'selected'; ?>>KOMMEN</option>
|
||||
<option value="GEHEN" <?php if ($buchung['timestamp_type'] == 'GEHEN') echo 'selected'; ?>>GEHEN</option>
|
||||
</select>
|
||||
|
||||
<a href="deleteDayEntry.php?timestamp_id=<?php echo $buchung['timestamp_id']; ?>" class="btn btn-danger">Löschen</a>
|
||||
|
||||
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<div id="newEnty"></div>
|
||||
<button type="submit" class="btn btn-primary">Speichern</button>
|
||||
</form>
|
||||
<br>
|
||||
<button onclick="addEntry()" class="btn btn-success">Neue Buchung hinzufügen</button>
|
||||
<br><br>
|
||||
<button type="button" class="btn btn-secondary" onclick="history.back();">Zurück</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
let entryIndex = <?php echo count($buchungen); ?>;
|
||||
function addEntry() {
|
||||
entryIndex++;
|
||||
const container = document.createElement('div');
|
||||
container.className = 'form-group';
|
||||
container.innerHTML = `
|
||||
<label>Zeitbuchung ${entryIndex}:</label>
|
||||
<input type="datetime-local" class="form-control" name="buchungen[new_${entryIndex}][timestamp_datetime]" placeholder="YYYY-MM-DD HH:MM:SS">
|
||||
<select class="form-control" name="buchungen[new_${entryIndex}][timestamp_type]">
|
||||
<option value="KOMMEN">KOMMEN</option>
|
||||
<option value="GEHEN">GEHEN</option>
|
||||
</select>
|
||||
|
||||
`;
|
||||
document.getElementById('newEnty').appendChild(container);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
|
||||
#$user_id = $_SESSION['userid'];
|
||||
|
||||
$user_id = $_GET['employee_id'] ?? null;
|
||||
$datum = $_GET['datum'] ?? null;
|
||||
|
||||
if ($user_id && $datum) {
|
||||
try {
|
||||
// Holen Sie alle Zeitbuchungen des Tages für den Mitarbeiter
|
||||
$query = "SELECT * FROM timestamps WHERE employee_id = :employee_id AND DATE(timestamp_datetime) = :datum ORDER BY timestamp_datetime ASC";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $user_id, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':datum', $datum);
|
||||
$stmt->execute();
|
||||
$buchungen = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
} else {
|
||||
die("Fehler: Mitarbeiter-ID oder Datum fehlt.");
|
||||
}
|
||||
|
||||
// ... [Hier könnten Sie PHP-Code für die Bearbeitung der Buchungen hinzufügen]
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Tageseinträge bearbeiten</title>
|
||||
<!-- ... [Bootstrap-CSS und optional JavaScript] -->
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<h3>Tageseinträge bearbeiten - <?php echo date('d.m.Y', strtotime($datum)); ?></h3>
|
||||
|
||||
<!-- Formular zum Bearbeiten der Zeitbuchungen -->
|
||||
<form id="mainForm" action="saveDayEntries.php" method="post">
|
||||
<input type="hidden" name="employee_id" value="<?php echo $user_id; ?>">
|
||||
<input type="hidden" name="datum" value="<?php echo $datum; ?>">
|
||||
<?php foreach ($buchungen as $index => $buchung): ?>
|
||||
<div class="form-group" id="entry_<?php echo $buchung['timestamp_id']; ?>">
|
||||
<label>Zeitbuchung <?php echo $index + 1; ?>:</label>
|
||||
<input type="datetime-local" class="form-control" name="buchungen[<?php echo $buchung['timestamp_id']; ?>][timestamp_datetime]" value="<?php echo $buchung['timestamp_datetime']; ?>">
|
||||
<select class="form-control" name="buchungen[<?php echo $buchung['timestamp_id']; ?>][timestamp_type]">
|
||||
<option value="KOMMEN" <?php if ($buchung['timestamp_type'] == 'KOMMEN') echo 'selected'; ?>>KOMMEN</option>
|
||||
<option value="GEHEN" <?php if ($buchung['timestamp_type'] == 'GEHEN') echo 'selected'; ?>>GEHEN</option>
|
||||
</select>
|
||||
|
||||
<a href="deleteDayEntry.php?timestamp_id=<?php echo $buchung['timestamp_id']; ?>" class="btn btn-danger">Löschen</a>
|
||||
|
||||
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<div id="newEnty"></div>
|
||||
<button type="submit" class="btn btn-primary">Speichern</button>
|
||||
</form>
|
||||
<br>
|
||||
<button onclick="addEntry()" class="btn btn-success">Neue Buchung hinzufügen</button>
|
||||
<br><br>
|
||||
<button type="button" class="btn btn-secondary" onclick="history.back();">Zurück</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
let entryIndex = <?php echo count($buchungen); ?>;
|
||||
function addEntry() {
|
||||
entryIndex++;
|
||||
const container = document.createElement('div');
|
||||
container.className = 'form-group';
|
||||
container.innerHTML = `
|
||||
<label>Zeitbuchung ${entryIndex}:</label>
|
||||
<input type="datetime-local" class="form-control" name="buchungen[new_${entryIndex}][timestamp_datetime]" placeholder="YYYY-MM-DD HH:MM:SS">
|
||||
<select class="form-control" name="buchungen[new_${entryIndex}][timestamp_type]">
|
||||
<option value="KOMMEN">KOMMEN</option>
|
||||
<option value="GEHEN">GEHEN</option>
|
||||
</select>
|
||||
|
||||
`;
|
||||
document.getElementById('newEnty').appendChild(container);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user