Files
Dialyse-Webseite/contact.php

65 lines
2.6 KiB
PHP

<?php
require_once __DIR__ . '/lib/SendMail.php';
require_once __DIR__ . '/lib/Session.php';
require_once __DIR__ . '/lib/Helper.php';
$session = new Session();
$lang = 'de';
if (isset($_POST['lang']) && in_array($_POST['lang'], ['de', 'en'], true)) {
$lang = $_POST['lang'];
} elseif ($session->has('lang') && in_array($session->get('lang'), ['de', 'en'], true)) {
$lang = $session->get('lang');
}
$isEn = ($lang === 'en');
function validate($data) {
$hasContact = !empty(trim($data['email'] ?? '')) || !empty(trim($data['phone'] ?? ''));
return !empty(trim($data['name'] ?? '')) && $hasContact && !empty(trim($data['message'] ?? ''));
}
function isBot($data) {
return !empty($data['company']) || (($data['check'] ?? '') != 'send' && (time() - (int)($data['timestamp'] ?? 0)) <= 5);
}
if($_POST && count($_POST) > 0) {
if(isBot($_POST)) {
exit();
}
if(!validate($_POST)) {
$session->set('form', $_POST);
$session->set('alert-class', 'alert-danger');
$session->set('alert', $isEn
? 'Please fill out all mandatory fields and provide at least an email address or a phone number.'
: 'Bitte füllen Sie alle Pflichtfelder aus und geben Sie mindestens eine E-Mail-Adresse oder Telefonnummer an.');
} else {
$ip = $_SERVER['REMOTE_ADDR'];
$mail = new SendMail();
if(!empty(trim($_POST['email'] ?? ''))) {
$mail->setReplyTo(trim($_POST['email']), trim($_POST['name']));
}
$mail->setTo('kontakt@dialyse-berlin.net', 'Kontaktformular');
// $mail->setTo('dominic.zirpel@web.de', 'Kontaktformular');
$mail->setSubject('Kontaktformular - Dialyse Homepage');
$mail->setBody(sprintf("Name: %s %s\nTelefon: %s\nIP: %s\nE-Mail: %s\n-----------------------------\n%s", $_POST['surname'] ?? '', $_POST['name'] ?? '', $_POST['phone'] ?? '', $ip, $_POST['email'] ?? '', $_POST['message'] ?? ''));
if($mail->send()) {
$session->remove('form');
$session->set('alert-class', 'alert-success');
$session->set('alert', $isEn
? 'Your inquiry has been sent successfully.'
: 'Ihre Anfrage wurde erfolgreich verschickt');
} else {
$session->set('form', $_POST);
$session->set('alert-class', 'alert-danger');
$session->set('alert', $isEn
? 'An error occurred while sending your inquiry!'
: 'Beim Verschicken Ihrer Anfrage ist ein Fehler aufgetreten!');
}
}
}
header('Location: ' . Helper::url('/kontakt-formular.html', $lang));