refactor code

parent 4d01ca5d
<?php <?php
/* Цель: Скрипт обработки опечаток
* автор: barbass@ /* Цель: Скрипт обработки опечаток
* дата: 2012-04-24 * автор: barbass@
*/ * дата: 2012-04-24
*/
header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Origin: *');
...@@ -11,49 +12,49 @@ require_once('functions.php'); ...@@ -11,49 +12,49 @@ require_once('functions.php');
require_once('language.php'); require_once('language.php');
require_once('constants.php'); require_once('constants.php');
/*Начинаем сессию*/ /* Начинаем сессию */
if (!session_id()) { if (!session_id()) {
session_start(); session_start();
} }
/*Определяем переменные*/ /* Определяем переменные */
$error = ''; $error = '';
$userdata = array( $userdata = array(
'url' => '', 'url' => '',
'text' => '', 'text' => '',
'comment' => '', 'comment' => '',
'old_browser' => 0 'old_browser' => 0
); );
$code_language = DEFAULT_LANGUAGE; $code_language = DEFAULT_LANGUAGE;
/*Определяем какой язык использовать (или же оставляем по-умолчанию)*/ /* Определяем какой язык использовать (или же оставляем по-умолчанию) */
if (in_array(getRequest('language', 'ru'), $_language)) { if (in_array(getRequest('language', 'ru'), $_language)) {
$code_language = getRequest('language', 'ru'); $code_language = getRequest('language', 'ru');
} }
/*Если часто отправляет (более 1 раза в минуту)*/ /* Если часто отправляет (более 1 раза в минуту) */
$last_time_activity = getSession('last_activity'); $last_time_activity = getSession('last_activity');
setSession('last_activity', time()); setSession('last_activity', time());
if ($last_time_activity) { if ($last_time_activity) {
if ((time() - $last_time_activity) <= MIN_TIME) { if ((time() - $last_time_activity) <= MIN_TIME) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_time_activity'])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_time_activity']));
return; return;
} }
} }
/*Подключение к базе данных*/ /* Подключение к базе данных */
try { try {
$DBH = new PDO(DB_DRIVER.":host=".DB_HOSTNAME.";dbname=".DB_DATABASE, DB_USERNAME, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'')); $DBH = new PDO(DB_DRIVER . ":host=" . DB_HOSTNAME . ";dbname=" . DB_DATABASE, DB_USERNAME, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
} catch (PDOException $e) { } catch (PDOException $e) {
error_log($e); error_log($e);
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_connect_database'])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_connect_database']));
return false; return false;
} }
if (!validate()) { if (!validate()) {
echoJsonData(array('success' => 'false', 'message' => $error)); echoJsonData(array('success' => 'false', 'message' => $error));
return false; return false;
} }
//TODO - работу со старыми бразуерами будем подерживать или нет? Если будем, то надо доработать работу на стороне сервера (закрытие окна) //TODO - работу со старыми бразуерами будем подерживать или нет? Если будем, то надо доработать работу на стороне сервера (закрытие окна)
...@@ -62,87 +63,87 @@ $userdata['comment'] = htmlspecialchars(rawurldecode(getRequest('comment', ''))) ...@@ -62,87 +63,87 @@ $userdata['comment'] = htmlspecialchars(rawurldecode(getRequest('comment', '')))
$userdata['url'] = getFormatingUrl(rawurldecode(getRequest('url', ''))); $userdata['url'] = getFormatingUrl(rawurldecode(getRequest('url', '')));
$userdata['text'] = htmlspecialchars(rawurldecode(getRequest('text', ''))); $userdata['text'] = htmlspecialchars(rawurldecode(getRequest('text', '')));
/*Парсим сайт для получения коренного сайта*/ /* Парсим сайт для получения коренного сайта */
$mas_url = parse_url($userdata['url']); $mas_url = parse_url($userdata['url']);
if (!isset($mas_url['host'])) { if (!isset($mas_url['host'])) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_valid_url"])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_valid_url"]));
return; return;
} }
/********************************** /* * ********************************
* Основная часть работы: * Основная часть работы:
* - получения данных по сайту * - получения данных по сайту
* - сохранение текста с ошибкой * - сохранение текста с ошибкой
* - отправка писем * - отправка писем
**********************************/ * ******************************** */
error_log("Host = {$mas_url["host"]}"); error_log("Host = {$mas_url["host"]}");
/*Достаем номер сайта и email-ы пользователей*/ /* Достаем номер сайта и email-ы пользователей */
try { try {
$query_emails = "SELECT r.id_site AS id_site, $query_emails = "SELECT r.id_site AS id_site,
u.email AS email u.email AS email
FROM users AS u, responsible AS r FROM users AS u, responsible AS r
WHERE r.id IN ( WHERE r.id IN (
SELECT r.id SELECT r.id
FROM responsible AS r FROM responsible AS r
JOIN sites AS s JOIN sites AS s
WHERE s.site = ? WHERE s.site = ?
AND r.id_site = s.id AND r.id_site = s.id
AND r.status = '1') AND r.status = '1')
AND r.id_user = u.id"; AND r.id_user = u.id";
$STH = $DBH->prepare($query_emails);
$STH->execute(array($mas_url["scheme"]."://".$mas_url["host"])); $STH = $DBH->prepare($query_emails);
if ($STH->rowCount() > 0) { $STH->execute(array($mas_url["scheme"] . "://" . $mas_url["host"]));
$email_users = array(); if ($STH->rowCount() > 0) {
while ($row = $STH->fetch(PDO::FETCH_ASSOC)) { $email_users = array();
$email_users[] = array( while ($row = $STH->fetch(PDO::FETCH_ASSOC)) {
'id_site' => $row['id_site'], $email_users[] = array(
'email' => $row['email'] 'id_site' => $row['id_site'],
); 'email' => $row['email']
} );
} else { }
$email_users = false; } else {
} $email_users = false;
}
} catch (PDOException $e) { } catch (PDOException $e) {
error_log($e); error_log($e);
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_support_site"])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_support_site"]));
return; return;
} }
/*Если активных пользователей за сайт нет, то возвращаем сообщение об ошибке*/ /* Если активных пользователей за сайт нет, то возвращаем сообщение об ошибке */
if ($email_users) { if ($email_users) {
try { try {
$data = array('NULL', $email_users[0]['id_site'], $userdata['url'], $userdata['text'], $userdata['comment'], 0); $data = array('NULL', $email_users[0]['id_site'], $userdata['url'], $userdata['text'], $userdata['comment'], 0);
$STH = $DBH->prepare("INSERT INTO messages (id, id_site, link, error_text, comment, datetime, status) VALUES (?, ?, ?, ?, ?, DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), ?)"); $STH = $DBH->prepare("INSERT INTO messages (id, id_site, link, error_text, comment, datetime, status) VALUES (?, ?, ?, ?, ?, DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), ?)");
$STH->execute($data); $STH->execute($data);
} catch (PDOException $e) { } catch (PDOException $e) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database'])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database']));
return; return;
} }
$message_email = "<p>".$_language[$code_language]['mail_site']." <a href=".$mas_url["scheme"]."://".$mas_url["host"].">".$mas_url["scheme"]."://".$mas_url["host"]."</a></p>"; $message_email = "<p>" . $_language[$code_language]['mail_site'] . " <a href=" . $mas_url["scheme"] . "://" . $mas_url["host"] . ">" . $mas_url["scheme"] . "://" . $mas_url["host"] . "</a></p>";
$message_email .= "<p>".$_language[$code_language]['mail_url']." <a href=".htmlspecialchars($userdata['url']).">".$_language[$code_language]['mail_click_url']."</a>"." (".$userdata['url'].")"."</p>"; $message_email .= "<p>" . $_language[$code_language]['mail_url'] . " <a href=" . htmlspecialchars($userdata['url']) . ">" . $_language[$code_language]['mail_click_url'] . "</a>" . " (" . $userdata['url'] . ")" . "</p>";
$message_email .= "<p>".$_language[$code_language]['mail_text']." ".htmlspecialchars($userdata['text'])."</p>"; $message_email .= "<p>" . $_language[$code_language]['mail_text'] . " " . htmlspecialchars($userdata['text']) . "</p>";
$message_email .= "<p>".$_language[$code_language]['mail_comment']." ".htmlspecialchars($userdata['comment'])."</p>"; $message_email .= "<p>" . $_language[$code_language]['mail_comment'] . " " . htmlspecialchars($userdata['comment']) . "</p>";
$subject = '=?utf-8?B?'.base64_encode($_language[$code_language]['mail_subject']).'?='; $subject = '=?utf-8?B?' . base64_encode($_language[$code_language]['mail_subject']) . '?=';
$to = toEmail($email_users); $to = toEmail($email_users);
$from_email = EMAIL; $from_email = EMAIL;
$from_name = '=?utf-8?B?'.base64_encode($_language[$code_language]['mail_from']).'?='; $from_name = '=?utf-8?B?' . base64_encode($_language[$code_language]['mail_from']) . '?=';
if(sendMail($subject, $message_email, $to, $from_email, $from_name, 'html')) { if (sendMail($subject, $message_email, $to, $from_email, $from_name, 'html')) {
echoJsonData(array('success' => 'true', 'message' => $_language[$code_language]['text_success'])); echoJsonData(array('success' => 'true', 'message' => $_language[$code_language]['text_success']));
return; return;
} else { } else {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['mail_error'])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['mail_error']));
return; return;
} }
} else { } else {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_support_site'])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_support_site']));
return; return;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment