require_once "set/sys.php";
require_once "lib/mysqli.php";
require_once "lib/functions.php";
require_once "lib/arrays.php";
require_once "lib/mail.php";
require_once "set/per-conf.php";
require_once "kcaptcha/kcaptcha.php";
$nowtime = time();
$show_for = 'pc';
if (isset($_SERVER["HTTP_USER_AGENT"]) && !empty($_SERVER["HTTP_USER_AGENT"]))
{
if (preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos|iphone|ipad|ipod|windows\sphone|symbian|blazer|mobile|windows\sce|pda|ubuntu|opera\smini)/i", $_SERVER["HTTP_USER_AGENT"]))
{
$show_for = 'mobile';
}
}
session_start();
if (!empty($_GET['curlid']) AND isset($_GET['curlid']))
{
$curlid = $_GET['curlid'];
}
elseif (!empty($_POST['curlid']) AND isset($_POST['curlid']))
{
$curlid = $_POST['curlid'];
}
else
{
setcookie ("auth", "");
header("HTTP/1.1 404 Not Found");
include "src/arrore_404.php";
exit;
}
reload_site:
$sites = q("select * from campaigns where url='$curlid'");
if(!e($sites))
{
$site = f($sites);
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['message'], $_POST['keystring']))
// if (!empty($_POST['freemess']) AND isset($_POST['keystring']) AND isset($_POST['message']))
{
if (!empty($_POST['website_check'])) {
// Тихая блокировка: логируем и перенаправляем без обработки
error_log("Spam blocked from IP: " . $_SERVER['REMOTE_ADDR']);
header("Location: " . $GLOBALS['root_host'] . $site['url']);
exit;
}
// if (!empty($_POST['website_check'])) {
// // Это бот! Заполнено скрытое поле.
// exit; // или редирект без обработки
// }
if (isset($_POST['form_timestamp'])) {
$time_diff = time() - (int)$_POST['form_timestamp'];
if ($time_diff < 3) { // меньше 3 секунд — подозрительно
if ($errmess != NULL) $errmess .= "
";
$errmess .= "Слишком быстрая отправка. Попробуйте позже.";
// или: exit; // если нужно полностью прервать выполнение
}
}
//Эта часть кода проверяет правильность ввода символов с картинки
if ($use_captcha_freemess == '1')
{
if(count($_POST)>0)
{
if (!empty($_POST['message']) AND isset($_POST['message']))
{
$message = $_POST['message'];
}
else $message = NULL;
include "src/checkmessage.php";
if(isset($_SESSION['mess']))
{
if(isset($_SESSION['mess']) && $_SESSION['mess'] === (string)$_POST['keystring'])
// if($_SESSION['mess'] == $_POST['keystring'])
{
//Правильно введено
}
else
{
if ($errmess != NULL) $errmess .= "
";
$errmess .= "Введите число с картинки внизу.
";
}
}
else
{
if ($errmess != NULL) $errmess .= "
";
$errmess .= "Введите число с картинки внизу.
";
}
if($errmess == NULL) //Повышение рейтинга сайта на указанную величину (величина указывается в Админовке, в настройках)
{
$camp_freemess = q("select * from tb_mess_for_raiting where cid='$site[id]'");
if (e($camp_freemess))
{
$newraiting = $site['raiting'] + $freemesspay;
q ("update campaigns set raiting='$newraiting' where id='$site[id]'");
// Перед вставкой в БД:
$message_escaped = function_exists('mysqli_real_escape_string') && isset($link)
? mysqli_real_escape_string($link, $message)
: addslashes($message);
q ("insert into tb_mess_for_raiting values ('0','$site[id]','$message_escaped','$nowtime','','$freemesspay','0')");
// q ("insert into tb_mess_for_raiting values ('0','$site[id]','$message','$nowtime','','$freemesspay','0')");
$pay = "freemess";
$_POST['freemess'] = NULL;
$_POST['message'] = NULL;
unset ($message);
goto reload_site;
}
}
}
unset($_SESSION['mess']); //Очистка переменной для смены картинки
}
}
if (!empty($_POST['newscreenshotn']) AND isset($_POST['newscreenshotn']))
{
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/press-update-screen-button.txt","a");
fwrite($fd, "\r\n");
fwrite($fd, "\r\n".__LINE__."\t".date("d.m.Y H:i:s")."\tСайт:\t\t\t".$site['url']."\tid: ".$site['id']."\traiting: ".$site['raiting']);
fwrite($fd, "\r\n".__LINE__."\t".date("d.m.Y H:i:s")."\tREMOTE_ADDR:\t\t".$_SERVER['REMOTE_ADDR']."\tIP-адрес, с которого пользователь просматривает текущую страницу");
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
if (empty($_SESSION['remote_ip']) == FALSE)
{
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/press-update-screen-button.txt","a");
fwrite($fd, "\r\n".__LINE__."\t".date("d.m.Y H:i:s")."\tSESSION[remote_ip]:\t".$_SESSION['remote_ip']."\tIP-адрес, записанный в сессии");
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
if($_SESSION['remote_ip'] == $_SERVER['REMOTE_ADDR'])
{
make_update_screen ($site['id'],5);
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/press-update-screen-button.txt","a");
fwrite($fd, "\r\n".__LINE__."\t".date("d.m.Y H:i:s")."\tДобавлен в очередь\tYES");
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
}
else
{
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/press-update-screen-button.txt","a");
fwrite($fd, "\r\n".__LINE__."\t".date("d.m.Y H:i:s")."\tДобавлен в очередь\tNO\t\tНе совпадают remote_ip и REMOTE_ADDR");
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
}
}
else
{
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/press-update-screen-button.txt","a");
fwrite($fd, "\r\n".__LINE__."\t".date("d.m.Y H:i:s")."\tДобавлен в очередь\tNO\tНет сессии о данном посетителе");
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
}
}
if (!empty($_POST['freetakescreen']) AND isset($_POST['freetakescreen']))
{
$zero_amount = f(q("SELECT id FROM tb_show_med_screen WHERE cid='$site[id]' AND amount='0'"));
if ($GLOBALS['show_med_screen_hour']!=0 AND empty($zero_amount)==TRUE)
{
$max_enddate = f(q("SELECT MAX(enddate) AS enddate FROM tb_show_med_screen WHERE cid='$site[id]' AND enddate>'$nowtime'"));
if ($max_enddate['enddate']!=false) //Максимальная дата есть и действует сейчас. Новая запись с окончания этой максимальной даты.
{
$med_screen_new_startdate = $max_enddate['enddate']+1;
$med_screen_new_endtdate = $max_enddate['enddate']+1+($GLOBALS['show_med_screen_hour']*60*60);
q ("insert into tb_show_med_screen values ('0','$site[id]','$med_screen_new_startdate','$med_screen_new_endtdate','0')");
}
else //Максимальной даты нет. Новая запись с текущего времени.
{
$med_screen_new_endtdate = $nowtime+($GLOBALS['show_med_screen_hour']*60*60);
q ("insert into tb_show_med_screen values ('0','$site[id]','$nowtime','$med_screen_new_endtdate','0')");
}
if ($GLOBALS['send_notifications_to_admin']=='1')
{
$mes = "Номер сайта - ".$site['id'].", адрес сайта - ".$site['protocol'].$site['url'];
$mes_title = "--Сообщение-- Увеличен скриншот бесплатно";
require_once "tpl/tpl-any-mess-for-admin.php";
send_mail($GLOBALS['admin_mail'], $mes_title, $tpl_html, $tpl_txt);
}
$pay = "freetakescreen_yes";
}
else
{
if ($GLOBALS['send_notifications_to_admin']=='1')
{
$mes = "Попытка сделать увеличенный скриншот, однако он уже был сделан ранее.\r\nНомер сайта - ".$site['id'].", адрес сайта - ".$site['url'];
$mes_title = "--Сообщение-- Ошибка отображения скриншота";
require_once "tpl/tpl-any-mess-for-admin.php";
send_mail($GLOBALS['admin_mail'], $mes_title, $tpl_html, $tpl_txt);
}
}
}
if (!empty($_POST['free_takes_place']) AND isset($_POST['free_takes_place']) AND !empty($_POST['pid']) AND isset($_POST['pid']) AND !empty($_POST['takeplace']) AND isset($_POST['takeplace']) AND $free_best_hour!=0)
{
$free_rdate = f(q("SELECT rdate as free_rdate FROM tb_best_sites WHERE cid='$site[id]' AND amount=0 AND rdate>'$nowtime'"));
$max_rdate = f(q("SELECT rdate as max_rdate FROM tb_best_sites WHERE tb_best_sites.place='$_POST[takeplace]' AND tb_best_sites.rdate=(SELECT MAX(rdate) FROM tb_best_sites tb2 WHERE tb_best_sites.place=tb2.place AND rdate>'$nowtime' AND pid='$_POST[pid]')"));
// Выборка максимального rdate, в рубрике $pid на месте $placenumber, после которого можно занять место другим сайтом
if ((empty($free_rdate['free_rdate'])==TRUE) OR (empty($max_rdate['max_rdate'])==TRUE))
// if (($free_rdate['free_rdate']==false) OR ($max_rdate['max_rdate']==false))
{
$new_rdate = $nowtime+$free_best_hour*60*60;
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/take_free_space_in_best_sites.txt","a");
fwrite($fd, "\r\n");
fwrite($fd, "\r\n сid ".$site['id']);
fwrite($fd, "\r\n pid ".$_POST['pid']);
fwrite($fd, "\r\n takeplace ".$_POST['takeplace']);
fwrite($fd, "\r\n nowtime ".$nowtime);
fwrite($fd, "\r\n new_rdate ".$new_rdate);
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
q ("insert into tb_best_sites values ('0','$site[id]','$_POST[pid]','$_POST[takeplace]','$nowtime','$new_rdate','0')");
if (screenshot_action ("check", $site['url']) == false)
{
$sitesnewscreenshot = q("select * from tb_screenshot where cid='$site[id]'");
if (!e($sitesnewscreenshot))
{
q ("update tb_screenshot set rdate=3 where cid='$site[id]'");
}
else
{
q ("insert into tb_screenshot values ('0','$site[id]','3','0','0','')");
}
}
if ($GLOBALS['send_notifications_to_admin']=='1')
{
$mes = "Номер сайта - ".$site['id'].", Сайт - ".$site['protocol'].$site['url'].", Группа - ".$_POST['pid'].", Место - ".$_POST['takeplace'];
$mes_title = "--Сообщение-- Занято место в лучших бесплатно";
require_once "tpl/tpl-any-mess-for-admin.php";
send_mail($GLOBALS['admin_mail'], $mes_title, $tpl_html, $tpl_txt);
}
$pay = "freetakeplace_yes";
}
else
{
$pay = "freetakeplace_no_now";
}
}
// Часть ниже обрабатывает подтверждение регистрации сайта в каталоге
if(!empty($_GET['mid']) AND isset($_GET['mid']) AND !empty($_GET['stamp']) AND isset($_GET['stamp']))
{
$member_select = q("select * from members where login='$_GET[mid]' AND (status=0 OR status=2) AND rdate='$_GET[stamp]'");
if(!e($member_select))
{
$member = f($member_select);
q("update members set status=1 where login='$_GET[mid]' AND (status=0 OR status=2)");
$pay = 'reg_ok';
if (screenshot_action ("check", $site['url']))
{
// Есть все файл скриншота. Ничего не делать
}
else
{
$sitesnewscreenshot = q("select * from tb_screenshot where cid='$site[id]'");
if (!e($sitesnewscreenshot))
{
q ("update tb_screenshot set rdate=4 where cid='$site[id]'");
}
else
{
q ("insert into tb_screenshot values ('0','$site[id]','4','0','0','')");
}
}
}
}
if (!empty($_POST['confirm']))
{
if (isset($_POST['confirm']))
{
$confirm = check_string ($_POST['confirm'], 22);
//--------------------------------------ОТЛАДКА----------------------------------------------
if ($GLOBALS['write_log_files'] == 1)
{
$GLOBALS['log_write'] = "\r\n\r\n ".date("d.m.Y H:i:s")." - начало";
$GLOBALS['log_write'] .= "\r\nВладелец нажал на кнопку \"Подтвердить\" и сейчас начинается обработка данных";
$GLOBALS['log_write'] .= "\r\nconfirm:\t".$confirm."\tsite:\t".$site['url']."\tsite id:\t".$site['id'];
}
//--------------------------------------ОТЛАДКА----------------------------------------------
$conf_site_q = q("
SELECT *
FROM
tb_per_conf
WHERE
cid = $site[id]
LIMIT 1
");
if (!e($conf_site_q)) // Есть сайт
{
$conf_site_f = f($conf_site_q);
if ($conf_site_f['status'] == 2 OR $conf_site_f['status'] == 3)
{
//--------------------------------------ОТЛАДКА----------------------------------------------
if ($GLOBALS['write_log_files'] == 1)
{
$GLOBALS['log_write'] .= "\r\n".mb_strtoupper($confirm)." Продление нахождения сайта в Каталоге на период ".$period_conf." дней";
}
//--------------------------------------ОТЛАДКА----------------------------------------------
$new_status_conf = 0;
if ($confirm == 'yes')
{
$new_status_conf = 1;
$pay = "conf_yes";
}
if ($confirm == 'no')
{
$new_status_conf = 4;
$pay = "conf_no";
}
q ("update tb_per_conf set status=$new_status_conf, rdate=$nowtime where cid=$site[id]");
}
if ($conf_site_f['status'] == 1)
{
//--------------------------------------ОТЛАДКА----------------------------------------------
if ($GLOBALS['write_log_files'] == 1)
{
$GLOBALS['log_write'] .= "\r\n Сайт был продлён ранее. Сейчас пришло повторное нажатие на кнопку";
}
//--------------------------------------ОТЛАДКА----------------------------------------------
}
if ($conf_site_f['status'] == 4)
{
//--------------------------------------ОТЛАДКА----------------------------------------------
if ($GLOBALS['write_log_files'] == 1)
{
$GLOBALS['log_write'] .= "\r\n Сайт был запрошен на удаление ранее. Сейчас пришло повторное нажатие на кнопку";
}
//--------------------------------------ОТЛАДКА----------------------------------------------
}
}
//--------------------------------------ОТЛАДКА----------------------------------------------
if ($GLOBALS['write_log_files'] == 1)
{
if (isset($GLOBALS['log_write']) == TRUE)
{
$GLOBALS['log_write'] .= "\r\n ".date("d.m.Y H:i:s")." - конец";
$fd = fopen("logs/periodical-confirmation-answer.txt","a");
fwrite($fd, $GLOBALS['log_write']);
fclose($fd);
unset ($fd, $GLOBALS['log_write']);
}
}
//--------------------------------------ОТЛАДКА----------------------------------------------
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// /////////////////////////////
/////////////////// Обработка сообщения о новом отзыве в Яндекс Браузере /////////////////////////////
/////////////////// /////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if (!empty($_POST['tr_name']) AND !empty($_POST['tr_cid']) AND !empty($_POST['tr_url']) AND !empty($_POST['tr_act']))
{
if (isset($_POST['tr_name']) AND isset($_POST['tr_cid']) AND isset($_POST['tr_url']) AND isset($_POST['tr_act']))
{
$tr_name = check_string ($_POST['tr_name'], 200);
$tr_cid = check_string ($_POST['tr_cid'], 20);
$tr_url = check_string ($_POST['tr_url'], 200);
$tr_act = check_string ($_POST['tr_act'], 10);
//--------------------------------------ОТЛАДКА----------------------------------------------
$GLOBALS['log_write'] = "\r\n\r\n".date("d.m.Y H:i:s")." - начало";
$GLOBALS['log_write'] .= "\r\nНажатие на кнопку \"Я зарегистрировался\" ";
$GLOBALS['log_write'] .= "\r\ncid =\t\t".$site['id'];
$GLOBALS['log_write'] .= "\r\ntr_cid =\t".$tr_cid;
$GLOBALS['log_write'] .= "\r\nurl =\t\t".$site['url'];
$GLOBALS['log_write'] .= "\r\ntr_url =\t".$tr_url;
$GLOBALS['log_write'] .= "\r\ntr_name =\t".$tr_name;
$GLOBALS['log_write'] .= "\r\ntr_act =\t".$tr_act;
$GLOBALS['log_write'] .= "\r\nIP =\t".$_SERVER['REMOTE_ADDR'];
//--------------------------------------ОТЛАДКА----------------------------------------------
if ($tr_cid == $site['id'] AND $tr_url == $site['url'])
{
if ($GLOBALS['send_notifications_to_admin']=='1')
{
if ($tr_act == 2)
{
$mes_title = "--Сообщение-- Новый отзыв в Яндекс Браузере";
}
else {
$mes_title = "--Сообщение-- Пользователь нажал на кнопку. Действие не определено";
}
$mes = "Номер сайта: ".$tr_cid."
Сайт: ".$site['protocol'].$site['url']."
Имя: ".$tr_name."
Время: ".date("d.m.Y H:i:s",$nowtime)."
IP: ".$_SERVER['REMOTE_ADDR'];
// $mes_title = "--Сообщение-- Регистрация в тренинге";
// $mes_title = $tr_act;
require_once "tpl/tpl-any-mess-for-admin.php";
send_mail($GLOBALS['admin_mail'], $mes_title, $tpl_html, $tpl_txt);
}
// echo "HTTP 200 OK";
}
else
{
//--------------------------------------ОТЛАДКА----------------------------------------------
$GLOBALS['log_write'] .= "\r\nНе совпали номера кампании cid и tr_cid или адреса сайта url и tr_url";
//--------------------------------------ОТЛАДКА----------------------------------------------
}
//--------------------------------------ОТЛАДКА----------------------------------------------
if (isset($GLOBALS['log_write']) == TRUE)
{
$GLOBALS['log_write'] .= "\r\n".date("d.m.Y H:i:s")." - конец";
$fd = fopen("logs/free-training.txt","a");
fwrite($fd, $GLOBALS['log_write']);
fclose($fd);
unset ($fd, $GLOBALS['log_write']);
}
//--------------------------------------ОТЛАДКА----------------------------------------------
}
}
if (!empty($_POST['category']) AND isset($_POST['textcomment']))
{
$message = $_POST['textcomment'];
include "src/checkmessage.php";
$errmesscom = $errmess;
$messagecom = $message;
$errmess = NULL;
$message = NULL;
if ($use_captcha_comments == '1')
{
if(count($_POST)>0)
{
if (isset($_POST['keycap']))
{
if(isset($_SESSION['com']))
{
if($_SESSION['com'] == $_POST['keycap'])
{
//Правильно введено
}
else
{
if ($errmesscom!='') $errmesscom.="
";
$errmesscom .= "Введите число с картинки внизу";
}
}
else
{
if ($errmesscom!='') $errmesscom.="
";
$errmesscom .= "Введите число с картинки внизу";
}
}
else
{
if ($errmesscom!='') $errmesscom.="
";
$errmesscom .= "Введите число с картинки внизу";
}
}
unset($_SESSION['com']); //Очистка переменной для смены картинки
}
if($errmesscom == "")
{
if (($category == 'plus') OR ($category == 'minus'))
{
if ($category == 'plus') $category = '1';
if ($category == 'minus') $category = '-1';
// $ip_ip2long = ip2long($_SERVER['REMOTE_ADDR']);
// q ("insert into tb_comments values ('0','$site[id]','$messagecom','$nowtime','$category','0','$ip_ip2long')");
q ("insert into tb_comments values ('0','$site[id]','$messagecom','$nowtime','$category','0','$_SERVER[REMOTE_ADDR]')");
$showtag = 'mess-ok';
$messagecom = NULL;
$pay = "newcomment";
unset ($_POST['keycap']);
//--------------------------------------ОТЛАДКА----------------------------------------------
$fd = fopen("logs/comments-ip.txt","a");
fwrite($fd, "\r\n\r\n".date("d.m.Y H:i"));
fwrite($fd, "\r\nНомер кампании = ".$site['id']);
fwrite($fd, "\r\nIP пользователя = ".$_SERVER['REMOTE_ADDR']);
// fwrite($fd, "\r\nПреобразование IP -> ip2long = ".ip2long($_SERVER['REMOTE_ADDR']));
// fwrite($fd, "\r\nПреобразование IP -> ip2long -> long2ip = ".long2ip(ip2long($_SERVER['REMOTE_ADDR'])));
fclose($fd);
//--------------------------------------ОТЛАДКА----------------------------------------------
}
}
}
if (isset($_SESSION)==TRUE)
{
$_SESSION['remote_ip'] = $_SERVER['REMOTE_ADDR'];
}
function function_session_reset ()
{
$_SESSION = array();
if (ini_get("session.use_cookies"))
{
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
}
session_destroy();
}
$url = $site['protocol'].$site['url'];
$titlepage = $site['title'];
// $metadescription = $site['title'];
$metakeywordsstr = $site['title'];
include "src/makemetakeywords.php";
$taget_length = 160;
$site_str_check = $site['ikeys'];
include "src/makemetadescription.php";
$subgrname = f(q("select topic FROM groups subgr where id=$site[group_id]"));
$metasubject = $subgrname['topic'];
// $metaabstract = $site['url'];
$topicwords = "Каталог сайтов на Русском языке";
$showtoplinks = 0;
$showslogan = 0;
$referrer = "origin-when-cross-origin";
$show_func_display = 1;
// if ($show_for == 'pc' OR $site['status']==0) $show_func_display = 1;
// $show_style_a_sitelink = 1;
$r_up_style = 1;
$jq_load = null;
$jq_raiting_up = null;
// // Проверяем, есть ли в URL GET-параметры
// $currentURL = htmlspecialchars("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", ENT_QUOTES, 'UTF-8');
// if (mb_strpos($currentURL, '?', 0, 'UTF-8') === false)
// {
// // Если нет GET-параметров, то это каноническая страница
// // Ничего не делаем, так как канонический тег не нужен
// }
// else
// {
// // Если есть GET-параметры, то каноническая страница - без них
// $link_canonical = mb_substr($currentURL, 0, mb_strpos($currentURL, '?', 0, 'UTF-8'), 'UTF-8');
// }
$link_canonical = $GLOBALS['root_host'].$site['url'];
if ($site['status']==7 OR $site['status']==1) {
$meta_robots = 'all';
}
else {
$meta_robots = 'noindex, nofollow';
header("X-Robots-Tag: noindex, nofollow");
}
include "tpl/top.php";
$show_raiting_info = 0;
$show_comments_info = 1;
$show_button_new_screenshot = 1;
include "src/site_info.php";
if ($site['status']==2)
{
echo "