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_hodnoceni.php
<?php
// ============================================================
//  Hotel DEMO — cron_hodnoceni.php
//  Odesílá žádost o hodnocení hostům po odjezdu
//  Spouštět každých 15 minut přes DSM Plánovač úloh:
//  php /path/to/cron_hodnoceni.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';

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

$zapnuto = nastaveni('hodnoceni_zapnuto', '1');
if ($zapnuto !== '1') {
    echo '[' . date('Y-m-d H:i:s') . '] Žádosti o hodnocení jsou vypnuty v nastavení.' . PHP_EOL;
    exit;
}

$hodin_po = (int)nastaveni('hodnoceni_hodin_po', '24');

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

$checkout_vychozi = nastaveni('checkout_cas', '10:00');

$rezervace = db_rows(
    "SELECT r.id, r.jmeno, r.prijmeni, r.email, r.jazyk,
            r.datum_odjezdu, r.checkout_cas, r.token_zmena
     FROM rezervace r
     WHERE r.stav = 'potvrzena'
       AND r.hodnoceni_zadost_odeslana = 0
       AND NOT EXISTS (SELECT 1 FROM hodnoceni h WHERE h.rezervace_id = r.id)
       AND CONCAT(r.datum_odjezdu, ' ', COALESCE(r.checkout_cas, ?))
           BETWEEN ? AND ?",
    [$checkout_vychozi, $okno_od, $okno_do]
);

$odeslano = 0;
$chyby    = 0;

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

        if ($ok) {
            db_query(
                'UPDATE rezervace SET hodnoceni_zadost_odeslana = 1 WHERE id = ?',
                [$rez['id']]
            );
            $odeslano++;
            echo '[' . date('Y-m-d H:i:s') . '] Žádost o hodnocení 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') . '] Hodnocení dokončeno.'
    . ' Odesláno: ' . $odeslano . ', Chyby: ' . $chyby . PHP_EOL;

Youez - 2016 - github.com/yon3zu
LinuXploit