ACC SHELL
<?php
$valid = true;
function sendMessageToAdmin($arr) {
$mail = new NMail;
$mail->setFrom('Diskuse ' . EMAIL_FROM);
$mail->addTo(EMAIL_TO);
if (MARTIN) {
$mail->addBcc(MARTIN);
}
if (TOMAS) {
$mail->addBcc(TOMAS);
}
$mail->setSubject('Nový příspěvek do diskuse - ' . $arr['nadpis']);
$mail_text = 'Zpráva od uživatele: ' . $arr['jmeno'] . '<br /><br />';
$mail_text .= 'Text: ' . $arr['text'] . '<br /><br />';
$mail->setHTMLBody($mail_text);
$mail->send();
}
if ($_POST['robot'] * 1 != 6) {
$_SESSION['message_ko'][] = 'Zodpověděli jste špatně kontrolní otázku.';
$valid = false;
} else {
$mail = '';
if (!empty($_POST['email'])) {
if ($_POST['email'] != '@') {
$mail = Validate::validateMail($_POST['email']);
if (!$mail) {
$valid = false;
}
}
}
$jmeno = Validate::validateString($_POST['jmeno'], 'Jméno');
if (!$jmeno) {
$valid = false;
}
$nadpis = Validate::validateString($_POST['nadpis'], 'Nadpis');
if (!$nadpis) {
$valid = false;
}
$text = Validate::validateString($_POST['text'], 'Text');
if (!$text) {
$valid = false;
}
$ip = Validate::validateIp($_SERVER['REMOTE_ADDR']);
if (!$ip) {
$valid = false;
} else {
$ban = $F->checkIp($_SERVER['REMOTE_ADDR']);
NDebugger::barDump($ban, 'ban');
if (isset($ban->ban) && $ban->ban == 1) {
$_SESSION['message_ko'][] =
'Vaše IP adresa je na seznamu blokovaných. Pokud si myslíte že neoprávněně, zašlete informaci správci
<a href="mailto:' . EMAIL_FROM . '" title="Odeslat email"> webu</a>';
$valid = false;
}
}
}
if ($valid) {
$arr = array(
'id' => isset($_POST['id']) ? $_POST['id'] : false,
'jmeno' => $jmeno,
'email' => $mail,
'nadpis' => $nadpis,
'text' => $text,
'ip' => $_SERVER['REMOTE_ADDR'],
'parent_id' => isset($_POST['parent_id']) ? $_POST['parent_id'] : false,
'ban' => isset($_POST['ban']) ? 1 : 0,
'datum' => isset($_POST['datum']) ? $_POST['datum'] : new DateTime,
);
//print_r($arr);exit;
if ($arr['parent_id'] != false) {
//Pri ok validaci redirect zpet
$F->insertReakci($arr);
/*
* 1. Pri reakci na prispevek, v pripade ze byl v prispevku zadany mail, posilame info
* 2. Jedna se o novy prispevek, posilame info adminovi
*/
$email = dibi::query('SELECT email FROM knihanavstev WHERE id=%i', $arr['parent_id'], ' LIMIT 1')->fetch();
if (!empty($email)) {
$mail = new NMail;
$mail->setFrom('Diskuse ' . EMAIL_FROM);
$mail->addTo(EMAIL_TO);
if (MARTIN) {
$mail->addTo(MARTIN);
}
if (TOMAS) {
$mail->addTo(TOMAS);
}
$mail->setSubject('Reakce na Váš příspěvek do diskuse - ' . $arr['nadpis']);
$mail_text = 'Zpráva od uživatele: ' . $arr['jmeno'] . '<br /><br />';
$mail_text .= 'Text: ' . $arr['text'] . '<br /><br />';
$mail->setHTMLBody($mail_text);
$mail->send();
//Prispevek posleme administratorovi v pripade, ze prispevek neni od admina (ip v configu)
if ($arr['ip'] != ADMIN_IP) {
sendMessageToAdmin($arr);
}
}
//NDebugger::barDump($email, 'email taty');
Tools::redirect('/' . $page_id);
} else {
if ($F->insertPrispevek($arr)) {
//Prispevek posleme administratorovi v pripade, ze prispevek neni od admina (ip v configu)
if ($arr['ip'] != ADMIN_IP) {
sendMessageToAdmin($arr);
}
Tools::redirect('/' . $page_id);
}
}
}
?>
ACC SHELL 2018