Current Path : /data/web/virtuals/51568/virtual/www/www/jidelnaQ/ |
Current File : /data/web/virtuals/51568/virtual/www/www/jidelnaQ/jidelna.php |
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; if (!isset($pdo)){ if (file_exists("class/pdoDB.class.php")) {require "class/pdoDB.class.php";} else {require "../../class/pdoDB.class.php"; } } if (file_exists('vendor/PHPMailer/src/Exception.php')) { require 'vendor/PHPMailer/src/Exception.php'; require 'vendor/PHPMailer/src/PHPMailer.php'; require 'vendor/PHPMailer/src/SMTP.php'; } else { require '../../vendor/PHPMailer/src/Exception.php'; require '../../vendor/PHPMailer/src/PHPMailer.php'; require '../../vendor/PHPMailer/src/SMTP.php'; } require __DIR__ .'/Tabulky.php'; $data = (isset($_POST['data'])) ? $_POST['data'] : ""; $data = json_decode($data); $command = ($data) ? $data->command : 'forma'; switch ($command) { case 'odeslatPrihlasku':{ echo odeslatPrihlasku($data); break; }; case 'forma':{ echo jidelnaPrihlaskaForma(); break; } } function jidelnaPrihlaskaForma(){ $mesic = date('n'); $rok = date('Y'); $den = date('j'); $datumDospelec = ($den > 25) ? date('Y-m-d', mktime(0, 0, 0, $mesic + 2, 1, $rok)) : date('Y-m-d', mktime(0, 0, 0, $mesic + 1, 1, $rok)); $datumZak = (in_array($mesic, [5, 6, 7, 8])) ? date('Y-m-d', mktime(0, 0, 0, 9, 1, $rok)) : $datumDospelec; $html = <<<HTML <div class="card rounded-0 shadow" style="border: 1px solid #0f9adc; "> <div class="card-header h5 rounded-0" style="background-color: #0f9adc; border-bottom: 1px solid #0f9adc; color: #ffffff;">Přihláška ke stravování</div> <div id="jidelnaCardMain"> <div class="card-body"> <form id="jidelnaForma" action=""> <div class="form-group d-flex justify-content-between flex-column flex-sm-row p-1 px-2" style="border: 1px solid #0f9adc; "> <label class="mr-2 pt-1"><strong>Typ strávníka:</strong></label> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="typStravnika" id="typStravnikaz" style="width: 18px; height: 18px" value="z" checked onclick="typZmena('z')"> <label class="form-check-label" for="typStravnikaz">žák</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="typStravnika" id="typStravnikaa" style="width: 18px; height: 18px" value="a" onclick="typZmena('a')"> <label class="form-check-label" for="typStravnikaa">zaměstnanec</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="typStravnika" id="typStravnikae" style="width: 18px; height: 18px" value="e" onclick="typZmena('e')"> <label class="form-check-label" for="typStravnikae">cizí strávník </label> </div> </div> <div id="zacatekZakDiv" class="form-group row align-items-center"> <label for="zacatekZak" class="col-sm-3 col-form-label">Začátek stravování:</label> <div class="col-sm-4"> <input type="date" class="form-control rounded-0" name="zacatekZak" id="zacatekZak" required value="$datumZak"> </div> </div> <div id="zacatekDospelecDiv" class="form-group row align-items-center d-none"> <label for="zacatekDospelec" class="col-sm-3 col-form-label">Začátek stravování:</label> <div class="col-sm-4"> <input type="date" class="form-control rounded-0" name="zacatekDospelec" id="zacatekDospelec" required value="$datumDospelec"> </div> </div> <div class="form-group row align-items-center"> <label for="prijmenijmeno" class="col-sm-3 col-form-label" >Příjmení a jméno:</label> <div id="idPrijmeniJmeno" class="col-md-6 col-sm-5"> <input type="text" class="form-control rounded-0 " name="prijmenijmeno" id="prijmenijmeno" required placeholder="např. Novák Jan"> </div> <div id="tridaInput" class="col-sm-4 col-md-3 mt-3 mt-sm-0 text-md-right"> <label for="trida" class="col-form-label mr-2">Třída: </label> <input type="text" style="max-width:70px; height:38px;" class="py-2 rounded-0" name="trida" id="trida" required pattern="[1-9]\.[A-C]" length="3" style="width: 4rem;" onkeyup="this.value = this.value.toUpperCase();"> </div> </div> <div id="datumNarozeniZakDiv" class="form-group row align-items-center"> <label for="datumNarozeniZak" class="col-sm-3 col-form-label">Datum narození:</label> <div class="col-sm-4"> <input type="date" class="form-control rounded-0" name="datumNarozeniZak" id="datumNarozeniZak" required value=""> </div> </div> <div class="form-group row align-items-center"> <label for="bydliste" class="col-sm-3 col-form-label">Bydliště:</label> <div class="col-sm-9"> <input type="text" class="form-control rounded-0" name="bydliste" id="bydliste" required placeholder="např. Perníková ulice 157, Pardubice"> </div> </div> <div id="rodiceZakaKontakt"> <div class="form-group row align-items-center"> <label for="otec" class="col-md-3 col-form-label">Otec: </label> <div class="col-md-5"> <input type="text" class="form-control rounded-0" name="otec" id="otec" required placeholder="příjmení jméno otce"> </div> <div id="otecTelefonInput" class="col-md-4 mt-3 mt-md-0 text-md-right pl-md-0"> <label for="otectelefon" class="col-form-label mr-1" style="max-width:48px">Mobil: </label> <input style="max-width:150px; height:38px; padding-left: 5px" type=text" class="rounded-0 py-2" name="otectelefon" id="otectelefon" required placeholder="9 číslic bez mezer" pattern="[0-9]{9}"> </div> </div> <div class="form-group row align-items-center"> <label for="matka" class="col-md-3 col-form-label">Matka:</label> <div class="col-md-5"> <input type="text" class="form-control rounded-0" name="matka" id="matka" required placeholder="příjmení jméno matky"> </div> <div id="matkaTelefonInput" class="col-md-4 mt-3 mt-md-0 text-md-right pl-md-0"> <label for="matkatelefon" class="col-form-label mr-1" style="max-width:48px">Mobil:</label> <input style="max-width:150px; height:38px; padding-left: 5px" type="text" class="rounded-0 py-2" name="matkatelefon" id="matkatelefon" required placeholder="9 číslic bez mezer" pattern="[0-9]{9}"> </div> </div> <div class="form-group row align-items-center"> <label for="email" class="col-sm-3 col-form-label">E-mail rodiče: </label> <div class="col-sm-9"> <input type="email" class="form-control rounded-0" name="email" id="email" required placeholder="e-mail jednoho z rodičů"> </div> </div> </div> <div id="zakCoObjednavam"> <div class="form-group d-flex justify-content-between flex-column flex-sm-row p-1 px-2" style="border: 1px solid #0f9adc; "> <label class="mr-2 pt-1"><strong>Objednávám:</strong></label> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" name="objednavamo" id="objednavamo" checked style="width: 18px; height: 18px"> <label class="form-check-label" for="objednavamo">obědy</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" name="objednavams" id="objednavams" style="width: 18px; height: 18px"> <label class="form-check-label" for="objednavams">svačiny (až od 4. třídy)</label> </div> </div> </div> <div id="dospelecKontakt" class="d-none"> <div class="form-group row align-items-center"> <label for="emailDospelec" class="col-md-3 col-form-label">E-mail: </label> <div class="col-md-5"> <input type="email" class="form-control rounded-0" name="emailDospelec" id="emailDospelec" required placeholder="kontaktní e-mail"> </div> <div id="dospelecTelefonInput" class="col-md-4 mt-3 mt-md-0 text-md-right pl-md-0""> <label for="telefonDospelec" class="col-form-label mr-1" style="max-width:48px">Mobil:</label> <input style="max-width:150px; height:38px; padding-left: 5px" type="text" class="rounded-0 py-2" name="telefonDospelec" id="telefonDospelec" required placeholder="9 číslic bez mezer" pattern="[0-9]{9}"> </div> </div> </div> <div class="p-1 px-2 mb-2" style="border: 1px solid #0f9adc; "> <div class="form-group d-flex justify-content-between flex-column flex-sm-row mb-0"> <label class="mr-2 pt-1"><strong>Způsob úhrady:</strong></label> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="zpusobUhrady" id="zpusobUhradyh" value="h" style="width:18px; height: 18px" onclick="uhradaZmena('h')"> <label class="form-check-label" for="zpusobUhradyh">hotovost</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="zpusobUhrady" id="zpusobUhradyb" value="b" style="width: 18px; height: 18px" onclick="uhradaZmena('b')" checked> <label class="form-check-label" for="zpusobUhradyb">souhlas s inkasem</label> </div> </div> </div> <div id="cisloUctu"> <ul class="pl-3"> <li>uveďtě číslo Vašeho účtu, z něhož budeme stravné inkasovat</li> <li>ve Vaší bance musíte pro tento Váš účet <strong>nastavit souhlas s inkasem</strong> ve prospěch našeho účtu <strong>123-6705940227/0100</strong></li> </ul> <div class="form-row align-items-center"> <div class="col-md-3 mb-3"> <label for="ucetPredcisli">Předčíslí</label> <input type="text" class="form-control rounded-0" name="ucetPredcisli" id="ucetPredcisli" placeholder="max 6 číslic" pattern="[0-9]{0,6}"> </div> <div class="col-md-6 mb-3"> <label for="ucetCislo">Číslo účtu</label> <input type="text" class="form-control rounded-0" name="ucetCislo" id="ucetCislo" placeholder="max 10 číslic" required pattern="[0-9]{3,10}"> </div> <div class="col-md-3 mb-3"> <label for="ucetBanka">Kód banky</label> <input type="text" class="form-control rounded-0" name="ucetBanka" id="ucetBanka" placeholder="4 číslice" required pattern="[0-9]{4}"> </div> </div> </div> <!--/form--> </div> <div class="card-body " style="border-top: 1px solid #0f9adc; "> <ul class="pl-3"> <li> po odeslání přihlášky bude na výše uvedený e-mail zaslán odkaz, na kterém <strong>je nutné přihlášku potvrdit</strong> (bez potvrzení bude přihláška neplatná)</li> <li>součástí tohoto e-mailu bude i rekapitulace Vaší přihlášky</li> <li>v případě, že e-mail nedorazí v obvyklé době, doporučujeme podívat se do spamů</li> </ul> <div class="form-check pl-3"> <input class="form-check-input" type="checkbox" name="gdpr" id="gdpr" style="width: 18px; height: 18px"> <label class="form-check-label ml-3" for="gdpr"> odesláním přihlášky vyslovuji souhlas se zpracováním výše uvedených údajů pro potřeby vedení evidence strávníků školní jídelny Základní školy, Znojmo, náměstí Republiky 9 </label> </div> </div> <div class="card-footer rounded-0 d-md-flex" style="background-color: #ffffff; border-top: 1px solid #0f9adc; "> <div id="msg-jidelna" class="mr-2 alert alert-danger mb-0 rounded-0 d-none"></div> <button id="btn-odeslat" type="submit" class="btn ml-auto mt-3 mt-md-0 rounded-0" style="background-color: #0f9adc; color: #fff; max-height: 38px;" onclick="emailJidelnaPrihlaska()">Odeslat přihlášku</button> </div> </div> </div> <div id="naTlacitko"></div> <script src="www/jidelna/jidelna.js"></script> HTML; return $html; } function zapisDoDB($data){ try{ $db = new pdoDB(); $token = bin2hex(openssl_random_pseudo_bytes(10)); $data->token = $token; $zapis = "INSERT INTO `jidelna`(`zacatek`, `typstravnika`, `prijmenijmeno`, `trida`, `otec`, `otectelefon`, `matka`, `matkatelefon`, `datumnarozeni`, `bydliste`, `zpusobuhrady`, `predcisliuctu`, `cislouctu`, `bankakod`, `email`, `obed`, `svacina`, `token`, `datumpodani`) VALUES (:zacatek, :typstravnika, :prijmenijmeno, :trida, :otec, :otectelefon, :matka, :matkatelefon, :datumnarozeni, :bydliste, :zpusobuhrady, :predcisliuctu, :cislouctu, :bankakod, :email, :obed, :svacina, :token, NOW())"; $db->execute($zapis, array(':zacatek'=>htmlspecialchars($data->zacatek), ':typstravnika'=>htmlspecialchars($data->typstravnika), ':prijmenijmeno'=>htmlspecialchars($data-> prijmenijmeno), ':trida'=>htmlspecialchars($data->trida), ':otec'=>htmlspecialchars($data->otec), ':otectelefon'=>htmlspecialchars($data->otectelefon), ':matka'=>htmlspecialchars($data->matka), ':matkatelefon'=>htmlspecialchars($data->matkatelefon), ':datumnarozeni'=>htmlspecialchars($data->datumnarozeni), ':bydliste'=>htmlspecialchars($data->bydliste), ':zpusobuhrady'=>htmlspecialchars($data->zpusobuhrady), ':predcisliuctu'=>htmlspecialchars($data->predcisliuctu), ':cislouctu'=>htmlspecialchars($data->cislouctu), ':bankakod'=>htmlspecialchars($data->bankakod), ':email'=>htmlspecialchars($data->email), ':obed'=>htmlspecialchars($data->obed), ':svacina'=>htmlspecialchars($data->svacina), ':token'=>$data->token )); return '1'; } catch (Exception $e){ return '0'; } } function pripravMail(){ $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Mailer = "smtp"; $mail->setLanguage('cs'); $mail->CharSet = PHPMailer::CHARSET_UTF8; $mail->SMTPDebug = 0; $mail->SMTPAuth = TRUE; $mail->SMTPSecure = "tls"; $mail->Port = 587; $mail->Host = "wes1-smtp.wedos.net"; $mail->Username = "mailer@zsrepubliky.cz"; $mail->Password = "Mail*er*2022"; $mail->SetFrom("mailer@zsrepubliky.cz", "Mailer zsrepubliky.cz"); // $mail->addReplyTo('skolni.jidelna@zsrepubliky.cz', 'Školní jídelna'); $mail->isHTML(TRUE); return $mail; } function emailBody($data){ $tabulky = new Tabulky($data); return $tabulky->tabulkaEmail (); } function rekapitulace($data){ $tabulky = new Tabulky($data); return $tabulky->tabulkaRekapitulace (); } function odeslatPrihlasku($data){ $result = new stdClass(); $result->rekapitulace = rekapitulace($data); if (zapisDoDB($data)){ $result->zapisDoDB = '1'; } else { $result->zapisDoDB = '0'; } $mail = pripravMail(); $mail->Subject = 'Přihláška ke stravování'; $body = emailBody($data); $mail->Body = $body; $mail->AltBody = strip_tags($body); try { $mail->addAddress($data->email); $mail->send(); $result->email = '1'; } catch (Exception $e) { $result->email = $e; } catch (\Exception $e) { $result->email = $e; } return json_encode($result); } ?>