Просмотр поста

.
Fublin

Часть третья

require('../incfiles/head.php');
            echo functions::display_error('Нельзя отвечать на свое же сообщение', '<a href="index.php?id=' . $th1['id'] . '">' . $lng['back'] . '</a>');
            require('../incfiles/end.php');
            exit;
        }
        $shift = (core::$system_set['timeshift'] + core::$user_set['timeshift']) * 3600;
        $vr = date("d.m.Y / H:i", $type1['time'] + $shift);
        $msg = isset($_POST['msg']) ? trim($_POST['msg']) : '';
        $txt = isset($_POST['txt']) ? intval($_POST['txt']) : false;
        if (isset($_POST['msgtrans']))
            $msg = functions::trans($msg);
        $to = $type1['from'];
        if (!empty($_POST['citata'])) {
            // Если была цитата, форматируем ее и обрабатываем
            $citata = isset($_POST['citata']) ? trim($_POST['citata']) : '';
            $citata = bbcode::notags($citata);
            $citata = preg_replace('#\[c\](.*?)\[/c\]#si', '', $citata);
            $citata = mb_substr($citata, 0, 200);
            $tp = date("d.m.Y/H:i", $type1['time']);
            $msg = '
' . $to . ' (' . $tp . ")\r\n" . $citata . '
' . $msg; } elseif (isset($_POST['txt'])) { // Если был ответ, обрабатываем реплику switch ($txt) { case 2: $repl = $type1['from'] . ', ' . $lng_forum['reply_1'] . ', '; break; case 3: $repl = $type1['from'] . ', ' . $lng_forum['reply_2'] . ' ([url=' . $set['homeurl'] . '/forum/index.php?act=post&id=' . $type1['id'] . ']' . $vr . '[/url]) ' . $lng_forum['reply_3'] . ', '; break; case 4: $repl = $type1['from'] . ', ' . $lng_forum['reply_4'] . ' '; break; default : $repl = $type1['from'] . ', '; } $msg = $repl . ' ' . $msg; } //Обрабатываем ссылки $msg = preg_replace_callback('~\\[url=(http://.+?)\\](.+?)\\[/url\\]|(http://(www.)?[0-9a-zA-Z\.-]+\.[0-9a-zA-Z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', 'forum_link', $msg); if (isset($_POST['submit'])) { if (empty($_POST['msg'])) { require('../incfiles/head.php'); echo functions::display_error($lng['error_empty_message'], '<a href="index.php?act=say&amp;id=' . $th . (isset($_GET['cyt']) ? '&amp;cyt' : '') . '">' . $lng['repeat'] . '</a>'); require('../incfiles/end.php'); exit; } // Проверяем на минимальную длину if (mb_strlen($msg) < 4) { require('../incfiles/head.php'); echo functions::display_error($lng['error_message_short'], '<a href="index.php?id=' . $id . '">' . $lng['back'] . '</a>'); require('../incfiles/end.php'); exit; } // Проверяем, не повторяется ли сообщение? $req = mysql_query("SELECT * FROM `forum` WHERE `user_id` = '$user_id' AND `type` = 'm' ORDER BY `time` DESC LIMIT 1"); if (mysql_num_rows($req) > 0) { $res = mysql_fetch_array($req); if ($msg == $res['text']) { require('../incfiles/head.php'); echo functions::display_error($lng['error_message_exists'], '<a href="index.php?id=' . $th . '&amp;start=' . $start . '">' . $lng['back'] . '</a>'); require('../incfiles/end.php'); exit; } } // Удаляем фильтр, если он был if (isset($_SESSION['fsort_id']) && $_SESSION['fsort_id'] == $th) { unset($_SESSION['fsort_id']); unset($_SESSION['fsort_users']); } // Добавляем сообщение в базу mysql_query("INSERT INTO `forum` SET `refid` = '$th', `type` = 'm', `time` = '" . time() . "', `user_id` = '$user_id', `from` = '$login', `id_user` = '" . $type1['user_id'] . "', `ip` = '" . core::$ip . "', `ip_via_proxy` = '" . core::$ip_via_proxy . "', `soft` = '" . mysql_real_escape_string($agn1) . "', `text` = '" . mysql_real_escape_string($msg) . "' "); $fadd = mysql_insert_id(); //Проверяем, если юзер, которому мы отвечаем $count_users = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `id` = '" . $type1['user_id'] . "'"), 0); //Если юзер найден, ставим ему метку о новом ответе if($count_users) mysql_query("UPDATE `users` SET `journal_forum`=(`journal_forum`+1) WHERE `id` = '" . $type1['user_id'] . "'"); // Обновляем время топика mysql_query("UPDATE `forum` SET `time` = '" . time() . "' WHERE `id` = '$th' "); // Обновляем статистику юзера mysql_query("UPDATE `users` SET `postforum`='" . ($datauser['postforum'] + 1) . "', `lastpost` = '" . time() . "'