Commit 3f09f843 authored by Vitaly Lipatov's avatar Vitaly Lipatov

server.php: divide accept typo request and send emails

parent 92494a78
...@@ -63,7 +63,7 @@ if (!validate()) { ...@@ -63,7 +63,7 @@ if (!validate()) {
return false; return false;
} }
//TODO - работу со старыми бразуерами будем подерживать или нет? Если будем, то надо доработать работу на стороне сервера (закрытие окна) //TODO - работу со старыми браузерами будем подерживать или нет? Если будем, то надо доработать работу на стороне сервера (закрытие окна)
$userdata['old_browser'] = getRequest('old_browser', 0); $userdata['old_browser'] = getRequest('old_browser', 0);
$userdata['comment'] = htmlspecialchars(rawurldecode(getRequest('comment', ''))); $userdata['comment'] = htmlspecialchars(rawurldecode(getRequest('comment', '')));
$userdata['corrected'] = htmlspecialchars(rawurldecode(getRequest('corrected', ''))); $userdata['corrected'] = htmlspecialchars(rawurldecode(getRequest('corrected', '')));
...@@ -85,77 +85,60 @@ if (!isset($mas_url['host'])) { ...@@ -85,77 +85,60 @@ if (!isset($mas_url['host'])) {
* - отправка писем * - отправка писем
* ******************************** */ * ******************************** */
/* Достаем номер сайта и email-ы пользователей */
try { try {
/* $id_site = get_site_id($DBH, $userdata['url']);
$query_emails = "SELECT r.id_site AS id_site, } catch (PDOException $e) {
u.email AS email error_log($e);
FROM users AS u, responsible AS r echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]["error_support_site"]));
WHERE r.id IN ( return;
SELECT r.id }
FROM responsible AS r
JOIN sites AS s
WHERE s.site REGEXP ?
AND r.id_site = s.id
AND r.status = '1')
AND r.id_user = u.id";
$STH = $DBH->prepare($query_emails); try {
$data = array(null, $id_site, $userdata['url'], $userdata['text'], $userdata['context'], $userdata['corrected'], $userdata['comment'], 0, getIp());
$STH = $DBH->prepare("INSERT INTO messages (id, site_id, link, text, context, corrected, comment, date, status, user_ip) VALUES (?, ?, ?, ?, ?, ?, ?, DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), ?, ?)");
$result = $STH->execute($data);
// 08.06.17: supports every protocol if ($result !== true) {
// ^(https?://)*(www.)*etersoft.com/?$ // TODO: повторение с catch ниже
$STH->execute(array("^(https?://)*(www.)*" . $mas_url["host"] . "/?$")); $errorInfo = $STH->errorInfo();
*/ error_log("Возникла ошибка при добавлении опечатки в базу данных. Код SQLSTATE: {$errorInfo[0]}.
$id_site = get_site_id($DBH, $userdata['url']); Код ошибки драйвера: {$errorInfo[1]}. Текст ошибки: {$errorInfo[2]}");
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database']));
return;
}
} catch (PDOException $e) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database']));
return;
}
try {
$email_users = array();
$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 FROM users AS u
INNER JOIN responsible AS r ON r.id_user = u.id INNER JOIN responsible AS r ON r.id_user = u.id
WHERE r.id_site = $id_site WHERE r.id_site = $id_site
AND r.status = '1'"; AND r.status = '1'";
//error_log($query_emails);
$STH = $DBH->prepare($query_emails); $STH = $DBH->prepare($query_emails);
$STH->execute(array($id_site)); $STH->execute(array($id_site));
if ($STH->rowCount() > 0) { if ($STH->rowCount() > 0) {
$email_users = array();
while ($row = $STH->fetch(PDO::FETCH_ASSOC)) { while ($row = $STH->fetch(PDO::FETCH_ASSOC)) {
$email_users[] = array( $email_users[] = array(
'id_site' => $row['id_site'], 'id_site' => $row['id_site'],
'email' => $row['email'] 'email' => $row['email']
); );
} }
} 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"]));
return; return;
} }
/* Если активных пользователей за сайт нет, то возвращаем сообщение об ошибке */
if ($email_users) { if ($email_users) {
try {
$data = array(null, $email_users[0]['id_site'], $userdata['url'], $userdata['text'], $userdata['context'], $userdata['corrected'], $userdata['comment'], 0, getIp());
$STH = $DBH->prepare("INSERT INTO messages (id, site_id, link, text, context, corrected, comment, date, status, user_ip) VALUES (?, ?, ?, ?, ?, ?, ?, DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), ?, ?)");
$result = $STH->execute($data);
if ($result !== true) {
$errorInfo = $STH->errorInfo();
error_log("Возникла ошибка при добавлении опечатки в базу данных. Код SQLSTATE: {$errorInfo[0]}.
Код ошибки драйвера: {$errorInfo[1]}. Текст ошибки: {$errorInfo[2]}");
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database']));
return;
}
} catch (PDOException $e) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['error_database']));
return;
}
$controlPanelUrl = getControlPanelUrl(); $controlPanelUrl = getControlPanelUrl();
$message_email = ""; $message_email = "";
...@@ -181,8 +164,10 @@ if ($email_users) { ...@@ -181,8 +164,10 @@ if ($email_users) {
echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['mail_error'])); echoJsonData(array('success' => 'false', 'message' => $_language[$code_language]['mail_error']));
return; return;
} }
/*
} else { } else {
error_log("No active users for {$mas_url["scheme"]}://{$mas_url["host"]}"); error_log("No active users for {$mas_url["scheme"]}://{$mas_url["host"]}");
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