| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/hotellesnizatisi_cz/new/ |
Upload File : |
<?php
// ============================================================
// Zpracování kontaktního formuláře z veřejného webu.
// Cílový e-mail se bere z administrace (Nastavení).
// ============================================================
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/smtp.php';
require_once __DIR__ . '/includes/email-templates.php';
$lang = in_array($_POST['lang'] ?? '', ['cs', 'en', 'de'], true) ? $_POST['lang'] : 'cs';
$redirectBase = $lang === 'cs' ? './' : $lang . '/';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header('Location: ' . $redirectBase);
exit;
}
// Honeypot — skryté pole, lidé ho nevyplní, boti často ano.
// Tváříme se navenek jako úspěch, ať bota nenavádíme k dalším pokusům.
if (!empty($_POST['web'])) {
header('Location: ' . $redirectBase . '?kontakt=ok#kontakt');
exit;
}
function clean_field(string $s): string
{
return trim(str_replace(["\r", "\n"], ' ', $s));
}
$jmeno = clean_field($_POST['jmeno'] ?? '');
$email = clean_field($_POST['email'] ?? '');
$telefon = clean_field($_POST['telefon'] ?? '');
$predmet = clean_field($_POST['predmet'] ?? '');
$zprava = trim($_POST['zprava'] ?? '');
if ($jmeno === '' || $email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
header('Location: ' . $redirectBase . '?kontakt=chyba#kontakt');
exit;
}
$stmt = db()->prepare('SELECT hodnota FROM web_nastaveni WHERE klic = ?');
$stmt->execute(['kontakt_email']);
$to = $stmt->fetchColumn() ?: 'lesni.zatisi@email.cz';
// E-mail pro hotel
$hotelMail = build_hotel_notify_email($jmeno, $email, $telefon, $predmet, $zprava);
$ok = smtp_send_mail($to, $hotelMail['subject'], $hotelMail['text'], $hotelMail['html'], $email, $jmeno);
// Skrytá kopie pro webmastera (jen pokud je v Nastavení zapnutá — viditelné pouze adminovi)
if ($ok) {
$bccStmt = db()->prepare("SELECT klic, hodnota FROM web_nastaveni WHERE klic IN ('bcc_email', 'bcc_aktivni')");
$bccStmt->execute();
$bccSettings = [];
foreach ($bccStmt->fetchAll() as $row) {
$bccSettings[$row['klic']] = $row['hodnota'];
}
if (($bccSettings['bcc_aktivni'] ?? '0') === '1'
&& !empty($bccSettings['bcc_email'])
&& filter_var($bccSettings['bcc_email'], FILTER_VALIDATE_EMAIL)
) {
smtp_send_mail($bccSettings['bcc_email'], '[Kontrola webu] ' . $hotelMail['subject'], $hotelMail['text'], $hotelMail['html']);
}
}
// Potvrzovací kopie zákazníkovi (best-effort — neovlivní hlášku o úspěchu hlavní zprávy)
if ($ok) {
$customerMail = build_customer_confirm_email($lang, $jmeno, $predmet, $zprava);
smtp_send_mail($email, $customerMail['subject'], $customerMail['text'], $customerMail['html'], $to, 'Hotel Lesní zátiší');
}
header('Location: ' . $redirectBase . '?kontakt=' . ($ok ? 'ok' : 'chyba') . '#kontakt');
exit;