View file modules/diary/inc/new_act.php

File size: 3.65Kb
<?php

/* DCMS Special
 * Дата последнего редактирования 09.10.2016
 * Модифицировал densnet
 */

if (isset($_POST['add']) && isset($_POST['name']) && $_POST['name'] != NULL && isset($_POST['msg']) && $_POST['msg'] != NULL && isset($_POST['readers']) && ($_POST['readers'] == 0 || $_POST['readers'] == 1 || $_POST['readers'] == 2)) {
    $q = $db->super_query("SELECT COUNT(*) as count FROM diary WHERE name = '" . $db->safesql($_POST['name']) . "' LIMIT 1");
    if ($q['count'] == 0) {
        $name = preg_replace('#[^A-zА-я0-9\(\)\-\_\ ]#ui', null, $_POST['name']);
        if (preg_match("#(^\ )|(\ $)#ui", $_POST['name'])) {
            $err[] = lang('Запрещено использовать пробел в начале и конце');
        }
        if (utf8_strlen($name) < 3) {
            $err[] = lang('Слишком короткое название');
        }
        if (utf8_strlen($name) > 100) {
            $err[] = lang('Слишком длинное название');
        }

        $mat = antimat($name);

        if ($mat) {
            $err[] = lang('В названии обнаружен мат') . ': ' . $mat;
        }

        $name = $db->safesql($name);
        $msg = esc(stripcslashes(htmlspecialchars($_POST['msg'])));

        if (preg_match("#(^\ )|(\ $)#ui", $_POST['msg'])) {
            $err[] = lang('Запрещено использовать пробел в начале и конце');
        }
        if (utf8_strlen($msg) < 10) {
            $err[] = lang('Слишком короткое содержание');
        }
        if (utf8_strlen($msg) > 10000) {
            $err[] = lang('Слишком длинное содержание');
        }
        $mat = antimat($msg);

        if ($mat) {
            $err[] = lang('В содержании обнаружен мат') . ': ' . $mat;
        }

        $msg = $db->safesql($msg);

        if (isset($_POST['tags']) && $_POST['tags'] != NULL) {
            $tags = esc(stripcslashes(htmlspecialchars($_POST['tags'])));

            if (utf8_strlen($tags) < 2) {
                $err[] = lang('Слишком короткие теги');
            }
            if (utf8_strlen($tags) > 256) {
                $err[] = lang('Слишком длинные теги');
            }

            $mat = antimat($tags);

            if ($mat) {
                $err[] = lang('В тегах обнаружен мат') . ': ' . $mat;
            }
            $tags = $db->safesql($tags);
        } else {
            $tags = NULL;
        }

        $readers = intval($_POST['readers']);
    } else {
        $err[] = lang('Блог с таким названием уже существует');
    }

    if (!isset($err)) {
        $db->query("INSERT INTO `diary` (`id_cat`, `name`, `msg`, `id_user`, `readers`, `tags`, `time`) values ('$r', '$name', '$msg', '$user[id]', '$readers', '$tags', '$time')");
        $q = $db->query("SELECT * FROM `friends` WHERE `user` = '$user[id]' AND `lenta_diary` = '1' AND `i`='1'");
        while ($f = $db->get_row($q)) {
            $a = $db->get_row($db->query("SELECT * FROM `user` WHERE `id` = '$f[friends]' LIMIT 1"));
            $msg_lenta = "Создал дневник [url=/modules/diary/$name/] $name [/url]";
            $db->query("INSERT INTO `notifications` (`id_user`, `id_kont`, `msg`, `time`) values('$user[id]', '$a[id]', '$msg_lenta', '$time')");
        }
        $_SESSION['message'] = lang('Блог успешно опубликован');
        header("Location:/modules/diary/$name/");
        exit();
    }
}