File: /home/retile.ru/public_html/post_one.php
<?php
require $_SERVER['DOCUMENT_ROOT'] . '/config.php';
require_once(DIR_SYSTEM . 'engine/action.php');
require_once(DIR_SYSTEM . 'engine/controller.php');
require_once(DIR_SYSTEM . 'engine/event.php');
require_once(DIR_SYSTEM . 'engine/loader.php');
require_once(DIR_SYSTEM . 'engine/registry.php');
require_once(DIR_SYSTEM . 'library/db/mysqli.php');
require_once(DIR_SYSTEM . 'library/db.php');
require_once(DIR_SYSTEM . 'library/language.php');
require_once(DIR_SYSTEM . 'library/config.php');
require_once(DIR_SYSTEM . 'library/session.php');
// Upload
$allowed = array('png', 'jpg', 'gif', 'svg', 'zip', 'txt', 'doc', 'docx', 'cdr', 'ai', 'eps');
if (isset($_FILES['upl']) && $_FILES['upl']['error'] == 0) {
$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);
if (!in_array(strtolower($extension), $allowed)) {
echo '{"status":"error"}';
exit;
}
if (move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/' . $_FILES['upl']['name'])) {
echo '{"status":"success"}';
exit;
}
}
/*
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$obTbPhn = $db->query("SELECT COUNT(*) AS `count` FROM `feedback_list` WHERE `date`='" . date("Y-m-d") . "' AND `phone`='".trim($_POST['Телефон'])."'");
if ($obTbPhn->row['count'] == '0') {
$nosend = false;
$db->query("INSERT INTO `feedback_list` (`phone`, `date`) VALUES ('".trim($_POST['Телефон'])."', '" . date("Y-m-d") . "')");
} else {
$nosend = true;
}
if($nosend) {
echo 'Не пройдена валидация запроса!';
exit;
}
*/
$string = file_get_contents('php://input');
$arPost = explode('&', $string);
foreach($arPost as $k => $aPost) {
$arPost[$k] = urldecode($aPost);
[$key, $value] = explode('=', $arPost[$k]);
if(empty($_POST[$key])) {
$_POST[$key] = $value;
}
}
// Registry
$registry = new Registry();
$event = new Event($registry);
$registry->set('event', $event);
$config = new Config();
$config->load('default');
$registry->set('config', $config);
$load = new Loader($registry);
$registry->set('load', $load);
// Database
if ($config->get('db_autostart')) {
$registry->set('db', new DB($config->get('db_engine'), $config->get('db_hostname'), $config->get('db_username'), $config->get('db_password'), $config->get('db_database'), $config->get('db_port')));
}
// Session
$session = new Session($config->get('session_engine'), $registry);
$registry->set('session', $session);
// Language
$language = new Language($config->get('language_directory'));
$registry->set('language', $language);
if ($config->get('session_autostart')) {
if (isset($_COOKIE[$config->get('session_name')])) {
$session_id = $_COOKIE[$config->get('session_name')];
} else {
$session_id = '';
}
$session->start($session_id);
setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));
}
$captcha = $load->controller('extension/captcha/basic/validate');
var_dump($captcha); exit;
if ($captcha) {
$json['error']['captcha'] = $captcha;
exit;
}
// Mail
// Если скрытое поле заполнено
if ($_POST['name'] != '') {
die('BOTS!');
} else {
unset($_POST['name'], $_POST['captcha'], $_POST['Политика принята']);
// Обработка формы
function send_mime_mail($name_from, // имя отправителя
$email_from, // email отправителя
$name_to, // имя получателя
$email_to, // email получателя
$data_charset, // кодировка переданных данных
$send_charset, // кодировка письма
$subject, // тема письма
$body // текст письма
)
{
$to = mime_header_encode($name_to, $data_charset, $send_charset)
. ' <' . $email_to . '>';
$subject = mime_header_encode($subject, $data_charset, $send_charset);
$from = mime_header_encode($name_from, $data_charset, $send_charset)
. ' <' . $email_from . '>';
if ($data_charset != $send_charset) {
$body = iconv($data_charset, $send_charset, $body);
}
$headers = "From: $from\r\n";
$headers .= "Content-type:text/html; charset=$send_charset\r\n";
return mail($to, $subject, $body, $headers);
}
////////////////////////////////////////////
function mime_header_encode($str, $data_charset, $send_charset)
{
if ($data_charset != $send_charset) {
$str = iconv($data_charset, $send_charset, $str);
}
return '=?' . $send_charset . '?B?' . base64_encode($str) . '?=';
}
//////////////////////////////////////
$i = 0;
while (list($cle, $val) = each($_POST)) {
$key[$i] = $cle;
$value[$i] = $val;
$i++;
}
$message = "";
for ($i = 0; $i < count($key); $i++)
$message .= "<strong>" . $key[$i] . ": </strong>" . $value[$i] . "<p />";
if (send_mime_mail('Бесплатная консультация',
'admin@retile.ru',
"ADMIN",
"info@retile.ru",
'UTF-8',
'KOI8-R',
'Запрос консультации с сайта retile.ru',
$message) == true) {
echo '';
} else
echo '';
exit;
}
?>