1

Тема: Как защитится от спама?

Всем привет.
В настройках каждого форума стоит запрет на ответы в теме незарегистрированных пользователей. Но каждый день появляется по несколько новых ответах во многих темах именно от незарегистрированных пользователей.
Что делать?

Добавлено спустя 1 минуту 23 секунды:

http://s019.radikal.ru/i612/1701/73/a709a5be0208.jpg

Поделиться

2

Re: Как защитится от спама?

Fancy Stop Spam
Pan Moderator

Новые стили и расширения на  PunBB.INFO

Сайт Xakker

Поделиться

3

Re: Как защитится от спама?

Xakker пишет:

Fancy Stop Spam
Pan Moderator

Fancy Stop Spam поставила - ничего не изменилось

Добавлено спустя 3 минуты 23 секунды:

Pan Moderator - я правильно понимаю что мне нужно будет модерировать все сообщения со ссылками?
Если да то этот вариант не подходит так как ну нас форум совместных покупок, там постоянно пользователи пишут ссылки.

Мне нужно как то запретить незарегистрированным пользователям писать сообщения. Сейчас можно просто ввести имя, любой емел (даже несуществующий) и написать любое сообщение. вот мой форум http://krasnodar-sp.ru/forum/

Поделиться

4

Re: Как защитится от спама?

Tanchikk12, у вас видимо какое-то расширение в обход настроек форума дает отвечать гостям.
И посмотрите чем раздел Анонсы закупок отличается от остальных, в нем гости не могут отвечать в темах!

Добавлено спустя 2 минуты 3 секунды:

Там у вас капча встроена и смайлы сразу отображаются под панелькой бб-кодов. Смотрите по админке. Может где новый пункт/галка есть с разрешением гостям писать.

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

5

Re: Как защитится от спама?

Уже все галочки перепробовала.
Вот список установленных расширений, может что то лишнее, не знаю, боюсь вс еломать если удалю)):
Antispam System
BBCode buttons
Default Avatar
Fancy Stop SPAM
First post
Post karma
PunBB Repository
Smilies
Admin add user 1.1.1
Broadcast e-mail. 0.2
Events registration 0.8.2
Pun Admin Manage Extensions Improved 1.4
Animated avatars 0.1.1
Post and registration approval 1.4.3
Attachment 1.0.5
Colored usergroups 1.0.4
Forum news 1.0.0
Funny avatars 0.1.1
Invitation of new users 1.2.1
Pun Move Posts 1.0.1
Private Messaging 1.2.10
Pun poll 1.1.11
Posts RSS feed 1.0
JS post quote 2.2.2
Pun tags 1.5.1

Добавлено спустя 54 секунды:

В разделе Анонсы закупок могут писать только модераторы, органищзаторы и администраторы. Обычные зарегистрированные пользователи не могут.

Добавлено спустя 2 минуты 45 секунд:

Вот скрины всех настроек:
http://s019.radikal.ru/i611/1701/df/cc7cdae7341c.jpg

http://s018.radikal.ru/i517/1701/e6/da19dfb0d1a0.jpg

http://s015.radikal.ru/i330/1701/42/60c2fa6e9435.jpg

Добавлено спустя 6 минут 11 секунд:

Еще есть какое то расширение Stop spam from bots ( Расширение отключено. ) - не нашла что это такое, при попытке его включить пишет:
Невозможно подтвердить маркер доступа. Возможно, прошло некоторое время после первого входа на страницу и последующей отправкой формы или щелчком по ссылке. Если это так и вы хотите выполнить своё действие до конца, нажмите кнопку «Подтвердить». Для возврата на исходную страницу нужно нажать кнопку «Отмена».

Поделиться

6 (09.01.2017 04:50 отредактировано Visman)

Re: Как защитится от спама?

Tanchikk12, ни чего подозрительного не вижу.
Откройте в редакторе файл cache/cache_hooks.php для просмотра и сделайте поиск по g_post_replies.
Если ни чего не найдете, то показывайте текст файлов viewtopic.php и post.php из корня форума.

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

7

Re: Как защитится от спама?

в cache/cache_hooks.php нет g_post_replies.
Выкладываю файлы:

<?php
/**
* Lists the posts in the specified topic.
*
* @copyright (C) 2008-2009 PunBB, partially based on code (C) 2008-2009 FluxBB.org
* @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
* @package PunBB
*/


if (!defined('FORUM_ROOT'))
    define('FORUM_ROOT', './');
require FORUM_ROOT.'include/common.php';

($hook = get_hook('vt_start')) ? eval($hook) : null;

if ($forum_user['g_read_board'] == '0')
    message($lang_common['No view']);

// Load the viewtopic.php language file
require FORUM_ROOT.'lang/'.$forum_user['language'].'/topic.php';


$action = isset($_GET['action']) ? $_GET['action'] : null;
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$pid = isset($_GET['pid']) ? intval($_GET['pid']) : 0;
if ($id < 1 && $pid < 1)
    message($lang_common['Bad request']);


// If a post ID is specified we determine topic ID and page number so we can redirect to the correct message
if ($pid)
{
    $query = array(
        'SELECT'    => 'p.topic_id, p.posted',
        'FROM'        => 'posts AS p',
        'WHERE'        => 'p.id='.$pid
    );

    ($hook = get_hook('vt_qr_get_post_info')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    if (!$forum_db->num_rows($result))
        message($lang_common['Bad request']);

    list($id, $posted) = $forum_db->fetch_row($result);

    // Determine on what page the post is located (depending on $forum_user['disp_posts'])
    $query = array(
        'SELECT'    => 'COUNT(p.id)',
        'FROM'        => 'posts AS p',
        'WHERE'        => 'p.topic_id='.$id.' AND p.posted<'.$posted
    );

    ($hook = get_hook('vt_qr_get_post_page')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    $num_posts = $forum_db->result($result) + 1;

    $_GET['p'] = ceil($num_posts / $forum_user['disp_posts']);
}

// If action=new, we redirect to the first new post (if any)
else if ($action == 'new')
{
    if (!$forum_user['is_guest'])
    {
        // We need to check if this topic has been viewed recently by the user
        $tracked_topics = get_tracked_topics();
        $last_viewed = isset($tracked_topics['topics'][$id]) ? $tracked_topics['topics'][$id] : $forum_user['last_visit'];

        ($hook = get_hook('vt_find_new_post')) ? eval($hook) : null;

        $query = array(
            'SELECT'    => 'MIN(p.id)',
            'FROM'        => 'posts AS p',
            'WHERE'        => 'p.topic_id='.$id.' AND p.posted>'.$last_viewed
        );

        ($hook = get_hook('vt_qr_get_first_new_post')) ? eval($hook) : null;
        $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
        $first_new_post_id = $forum_db->result($result);

        if ($first_new_post_id)
        {
            header('Location: '.str_replace('&amp;', '&', forum_link($forum_url['post'], $first_new_post_id)));
            exit;
        }
    }

    header('Location: '.str_replace('&amp;', '&', forum_link($forum_url['topic_last_post'], $id)));
    exit;
}

// If action=last, we redirect to the last post
else if ($action == 'last')
{
    $query = array(
        'SELECT'    => 't.last_post_id',
        'FROM'        => 'topics AS t',
        'WHERE'        => 't.id='.$id
    );

    ($hook = get_hook('vt_qr_get_last_post')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    $last_post_id = $forum_db->result($result);

    if ($last_post_id)
    {
        header('Location: '.str_replace('&amp;', '&', forum_link($forum_url['post'], $last_post_id)));
        exit;
    }
}


// Fetch some info about the topic
$query = array(
    'SELECT'    => 't.subject, t.first_post_id, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies',
    'FROM'        => 'topics AS t',
    'JOINS'        => array(
        array(
            'INNER JOIN'    => 'forums AS f',
            'ON'            => 'f.id=t.forum_id'
        ),
        array(
            'LEFT JOIN'        => 'forum_perms AS fp',
            'ON'            => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
        )
    ),
    'WHERE'        => '(fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$id.' AND t.moved_to IS NULL'
);

if (!$forum_user['is_guest'] && $forum_config['o_subscriptions'] == '1')
{
    $query['SELECT'] .= ', s.user_id AS is_subscribed';
    $query['JOINS'][] = array(
        'LEFT JOIN'    => 'subscriptions AS s',
        'ON'        => '(t.id=s.topic_id AND s.user_id='.$forum_user['id'].')'
    );
}

($hook = get_hook('vt_qr_get_topic_info')) ? eval($hook) : null;
$result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
if (!$forum_db->num_rows($result))
    message($lang_common['Bad request']);

$cur_topic = $forum_db->fetch_assoc($result);

($hook = get_hook('vt_modify_topic_info')) ? eval($hook) : null;

// Sort out who the moderators are and if we are currently a moderator (or an admin)
$mods_array = ($cur_topic['moderators'] != '') ? unserialize($cur_topic['moderators']) : array();
$forum_page['is_admmod'] = ($forum_user['g_id'] == FORUM_ADMIN || ($forum_user['g_moderator'] == '1' && array_key_exists($forum_user['username'], $mods_array))) ? true : false;

// Can we or can we not post replies?
if ($cur_topic['closed'] == '0' || $forum_page['is_admmod'])
    $forum_user['may_post'] = (($cur_topic['post_replies'] == '' && $forum_user['g_post_replies'] == '1') || $cur_topic['post_replies'] == '1' || $forum_page['is_admmod']) ? true : false;
else
    $forum_user['may_post'] = false;

// Add/update this topic in our list of tracked topics
if (!$forum_user['is_guest'])
{
    $tracked_topics = get_tracked_topics();
    $tracked_topics['topics'][$id] = time();
    set_tracked_topics($tracked_topics);
}

// Determine the post offset (based on $_GET['p'])
$forum_page['num_pages'] = ceil(($cur_topic['num_replies'] + 1) / $forum_user['disp_posts']);
$forum_page['page'] = (!isset($_GET['p']) || !is_numeric($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $forum_page['num_pages']) ? 1 : $_GET['p'];
$forum_page['start_from'] = $forum_user['disp_posts'] * ($forum_page['page'] - 1);
$forum_page['finish_at'] = min(($forum_page['start_from'] + $forum_user['disp_posts']), ($cur_topic['num_replies'] + 1));
$forum_page['items_info'] =  generate_items_info($lang_topic['Posts'], ($forum_page['start_from'] + 1), ($cur_topic['num_replies'] + 1));

($hook = get_hook('vt_modify_page_details')) ? eval($hook) : null;

// Navigation links for header and page numbering for title/meta description
if ($forum_page['page'] < $forum_page['num_pages'])
{
    $forum_page['nav']['last'] = '<link rel="last" href="'.forum_sublink($forum_url['topic'], $forum_url['page'], $forum_page['num_pages'], array($id, sef_friendly($cur_topic['subject']))).'" title="'.$lang_common['Page'].' '.$forum_page['num_pages'].'" />';
    $forum_page['nav']['next'] = '<link rel="next" href="'.forum_sublink($forum_url['topic'], $forum_url['page'], ($forum_page['page'] + 1), array($id, sef_friendly($cur_topic['subject']))).'" title="'.$lang_common['Page'].' '.($forum_page['page'] + 1).'" />';
}
if ($forum_page['page'] > 1)
{
    $forum_page['nav']['prev'] = '<link rel="prev" href="'.forum_sublink($forum_url['topic'], $forum_url['page'], ($forum_page['page'] - 1), array($id, sef_friendly($cur_topic['subject']))).'" title="'.$lang_common['Page'].' '.($forum_page['page'] - 1).'" />';
    $forum_page['nav']['first'] = '<link rel="first" href="'.forum_link($forum_url['topic'], array($id, sef_friendly($cur_topic['subject']))).'" title="'.$lang_common['Page'].' 1" />';
}

if ($forum_config['o_censoring'] == '1')
    $cur_topic['subject'] = censor_words($cur_topic['subject']);

// Generate paging and posting links
$forum_page['page_post']['paging'] = '<p class="paging"><span class="pages">'.$lang_common['Pages'].'</span> '.paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['topic'], $lang_common['Paging separator'], array($id, sef_friendly($cur_topic['subject']))).'</p>';

if ($forum_user['may_post'])
    $forum_page['page_post']['posting'] = '<p class="posting"><a class="newpost" href="'.forum_link($forum_url['new_reply'], $id).'"><span>'.$lang_topic['Post reply'].'</span></a></p>';
else if ($forum_user['is_guest'])
    $forum_page['page_post']['posting'] = '<p class="posting">'.sprintf($lang_topic['Login to post'], '<a href="'.forum_link($forum_url['login']).'">'.$lang_common['login'].'</a>', '<a href="'.forum_link($forum_url['register']).'">'.$lang_common['register'].'</a>').'</p>';
else if ($cur_topic['closed'] == '1')
    $forum_page['page_post']['posting'] = '<p class="posting">'.$lang_topic['Topic closed info'].'</p>';
else
    $forum_page['page_post']['posting'] = '<p class="posting">'.$lang_topic['No permission'].'</p>';

// Setup main options
$forum_page['main_title'] = $lang_topic['Topic options'];
$forum_page['main_head_options'] = array(
    'rss' => '<span class="feed first-item"><a class="feed" href="'.forum_link($forum_url['topic_rss'], $id).'">'.$lang_topic['RSS topic feed'].'</a></span>'
);

if (!$forum_user['is_guest'] && $forum_config['o_subscriptions'] == '1')
{
    if ($cur_topic['is_subscribed'])
        $forum_page['main_head_options']['unsubscribe'] = '<span><a class="sub-option" href="'.forum_link($forum_url['unsubscribe'], array($id, generate_form_token('unsubscribe'.$id.$forum_user['id']))).'"><em>'.$lang_topic['Unsubscribe'].'</em></a></span>';
    else
        $forum_page['main_head_options']['subscribe'] = '<span><a class="sub-option" href="'.forum_link($forum_url['subscribe'], array($id, generate_form_token('subscribe'.$id.$forum_user['id']))).'" title="'.$lang_topic['Subscribe info'].'">'.$lang_topic['Subscribe'].'</a></span>';
}

if ($forum_page['is_admmod'])
{
    $forum_page['main_foot_options'] = array(
        'move' => '<span class="first-item"><a class="mod-option" href="'.forum_link($forum_url['move'], array($cur_topic['forum_id'], $id)).'">'.$lang_topic['Move'].'</a></span>',
        'delete' => '<span><a class="mod-option" href="'.forum_link($forum_url['delete'], $cur_topic['first_post_id']).'">'.$lang_topic['Delete topic'].'</a></span>',
        'close' => (($cur_topic['closed'] == '1') ? '<span><a class="mod-option" href="'.forum_link($forum_url['open'], array($cur_topic['forum_id'], $id, generate_form_token('open'.$id))).'">'.$lang_topic['Open'].'</a></span>' : '<span><a class="mod-option" href="'.forum_link($forum_url['close'], array($cur_topic['forum_id'], $id, generate_form_token('close'.$id))).'">'.$lang_topic['Close'].'</a></span>'),
        'sticky' => (($cur_topic['sticky'] == '1') ? '<span><a class="mod-option" href="'.forum_link($forum_url['unstick'], array($cur_topic['forum_id'], $id, generate_form_token('unstick'.$id))).'">'.$lang_topic['Unstick'].'</a></span>' : '<span><a class="mod-option" href="'.forum_link($forum_url['stick'], array($cur_topic['forum_id'], $id, generate_form_token('stick'.$id))).'">'.$lang_topic['Stick'].'</a></span>')
    );

    if ($cur_topic['num_replies'] != 0)
        $forum_page['main_foot_options']['moderate_topic'] = '<span><a class="mod-option" href="'.forum_sublink($forum_url['moderate_topic'], $forum_url['page'], $forum_page['page'], array($cur_topic['forum_id'], $id)).'">'.$lang_topic['Moderate topic'].'</a></span>';
}

// Setup breadcrumbs
$forum_page['crumbs'] = array(
    array($forum_config['o_board_title'], forum_link($forum_url['index'])),
    array($cur_topic['forum_name'], forum_link($forum_url['forum'], array($cur_topic['forum_id'], sef_friendly($cur_topic['forum_name'])))),
    array($cur_topic['subject'], forum_link($forum_url['topic'], array($id, sef_friendly($cur_topic['subject']))))
);

// Setup main heading
$forum_page['main_title'] = (($cur_topic['closed'] == '1') ? $lang_topic['Topic closed'].' ' : '').'<a class="permalink" href="'.forum_link($forum_url['topic'], array($id, sef_friendly($cur_topic['subject']))).'" rel="bookmark" title="'.$lang_topic['Permalink topic'].'">'.forum_htmlencode($cur_topic['subject']).'</a>';

if ($forum_page['num_pages'] > 1)
    $forum_page['main_head_pages'] = sprintf($lang_common['Page info'], $forum_page['page'], $forum_page['num_pages']);

($hook = get_hook('vt_pre_header_load')) ? eval($hook) : null;

// Allow indexing if this is a permalink
if (!$pid)
    define('FORUM_ALLOW_INDEX', 1);

define('FORUM_PAGE', 'viewtopic');
require FORUM_ROOT.'header.php';

// START SUBST - <!-- forum_main -->
ob_start();

($hook = get_hook('vt_main_output_start')) ? eval($hook) : null;

?>
    <div class="main-head">
<?php

    if (!empty($forum_page['main_head_options']))
        echo "\n\t\t".'<p class="options">'.implode(' ', $forum_page['main_head_options']).'</p>';

?>
        <h2 class="hn"><span><?php echo $forum_page['items_info'] ?></span></h2>
    </div>
    <div id="forum<?php echo $cur_topic['forum_id'] ?>" class="main-content main-topic">
<?php

if (!defined('FORUM_PARSER_LOADED'))
    require FORUM_ROOT.'include/parser.php';

$forum_page['item_count'] = 0;    // Keep track of post numbers

// Retrieve the posts (and their respective poster/online status)
$query = array(
    'SELECT'    => 'u.email, u.title, u.orgrang, u.url, u.location, u.countzp,u.summrate,
        u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note,
    p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message,
    p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title,
    o.user_id AS is_online',
    'FROM'        => 'posts AS p',
    'JOINS'        => array(
        array(
            'INNER JOIN'    => 'users AS u',
            'ON'            => 'u.id=p.poster_id'
        ),
        array(
            'INNER JOIN'    => 'groups AS g',
            'ON'            => 'g.g_id=u.group_id'
        ),
        array(
            'LEFT JOIN'        => 'online AS o',
            'ON'            => '(o.user_id=u.id AND o.user_id!=1 AND o.idle=0)'
        ),
    ),
    'WHERE'        => 'p.topic_id='.$id,
    'ORDER BY'    => 'p.id',
    'LIMIT'        => $forum_page['start_from'].','.$forum_user['disp_posts']
);

($hook = get_hook('vt_qr_get_posts')) ? eval($hook) : null;
$result = $forum_db->query_build($query) or error(__FILE__, __LINE__);

$user_data_cache = array();
while ($cur_post = $forum_db->fetch_assoc($result))
{
    ($hook = get_hook('vt_post_loop_start')) ? eval($hook) : null;

    ++$forum_page['item_count'];

    $forum_page['post_ident'] = array();
    $forum_page['author_ident'] = array();
    $forum_page['author_info'] = array();
    $forum_page['post_options'] = array();
    $forum_page['post_contacts'] = array();
    $forum_page['post_actions'] = array();
    $forum_page['message'] = array();

    // Generate the post heading
    $forum_page['post_ident']['num'] = '<span class="post-num">'.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span>';

    if ($cur_post['poster_id'] > 1)
        $forum_page['post_ident']['byline'] = '<span class="post-byline">'.sprintf((($cur_post['id'] == $cur_topic['first_post_id']) ? $lang_topic['Topic byline'] : $lang_topic['Reply byline']), (($forum_user['g_view_users'] == '1') ? '<a title="'.sprintf($lang_topic['Go to profile'], forum_htmlencode($cur_post['username'])).'" href="/com/profile/default/'.$cur_post['poster_id'].'">'.forum_htmlencode($cur_post['username']).'</a>' : '<strong>'.forum_htmlencode($cur_post['username']).'</strong>')).'</span>';
//        $forum_page['post_ident']['byline'] = '<span class="post-byline">'.sprintf((($cur_post['id'] == $cur_topic['first_post_id']) ? $lang_topic['Topic byline'] : $lang_topic['Reply byline']), (($forum_user['g_view_users'] == '1') ? '<a title="'.sprintf($lang_topic['Go to profile'], forum_htmlencode($cur_post['username'])).'" href="'.forum_link($forum_url['user'], $cur_post['poster_id']).'">'.forum_htmlencode($cur_post['username']).'</a>' : '<strong>'.forum_htmlencode($cur_post['username']).'</strong>')).'</span>';
    else
        $forum_page['post_ident']['byline'] = '<span class="post-byline">'.sprintf((($cur_post['id'] == $cur_topic['first_post_id']) ? $lang_topic['Topic byline'] : $lang_topic['Reply byline']), '<strong>'.forum_htmlencode($cur_post['username']).'</strong>').'</span>';

    $forum_page['post_ident']['link'] = '<span class="post-link"><a class="permalink" rel="bookmark" title="'.$lang_topic['Permalink post'].'" href="'.forum_link($forum_url['post'], $cur_post['id']).'">'.format_time($cur_post['posted']).'</a></span>';

    ($hook = get_hook('vt_row_pre_post_ident_merge')) ? eval($hook) : null;



    if (isset($user_data_cache[$cur_post['poster_id']]['author_ident']))
        $forum_page['author_ident'] = $user_data_cache[$cur_post['poster_id']]['author_ident'];
    else
    {
        // Generate author identification
        if ($cur_post['poster_id'] > 1)
        {
            if ($forum_config['o_avatars'] == '1' && $forum_user['show_avatars'] != '0')
            {
                $forum_page['avatar_markup'] = generate_avatar_markup($cur_post['poster_id']);

                if (!empty($forum_page['avatar_markup']))
                    $forum_page['author_ident']['avatar'] = '<li class="useravatar">'.$forum_page['avatar_markup'].'</li>';
            }

            $forum_page['author_ident']['username'] = '<li class="username">'.(($forum_user['g_view_users'] == '1') ? '<a title="'.sprintf($lang_topic['Go to profile'], forum_htmlencode($cur_post['username'])).'" href="'.forum_link($forum_url['user'], $cur_post['poster_id']).'">'.forum_htmlencode($cur_post['username']).'</a>' : '<strong>'.forum_htmlencode($cur_post['username']).'</strong>').'</li>';
            $forum_page['author_ident']['usertitle'] = '<li class="usertitle"><span>'.get_title($cur_post).'</span></li>';

            if ($cur_post['is_online'] == $cur_post['poster_id'])
                $forum_page['author_ident']['status'] = '<li class="userstatus"><span>'.$lang_topic['Online'].'</span></li>';
            else
                $forum_page['author_ident']['status'] = '<li class="userstatus"><span>'.$lang_topic['Offline'].'</span></li>';
        }
        else
        {
            $forum_page['author_ident']['username'] = '<li class="username"><strong>'.forum_htmlencode($cur_post['username']).'</strong></li>';
            $forum_page['author_ident']['usertitle'] = '<li class="usertitle"><span>'.get_title($cur_post).'</span></li>';
        }
    }
//print_r($cur_post);exit;
if($cur_post['g_id']==5) {
//exit;
        if($cur_post['orgrang']==0)$rang='Новичок';
        if($cur_post['orgrang']==1)$rang='Новый организатор';
        if($cur_post['orgrang']>=5 and $forum_user['orgrang']<10)$rang='Организатор';
        if($cur_post['orgrang']>=10 and $forum_user['orgrang']<15)$rang='Проверенный Организатор';
        if($cur_post['orgrang']>=15)$rang='VIP организатор';

$forum_page['author_ident']['orgrang']='<li><span>Ранг: <strong>'.$rang.'</strong></span></li>';
}

if($cur_post['g_id']==3) {
        if($cur_post['countzp']==0 and $cur_post['num_posts']==0) $rng='Новичок';
        if($cur_post['num_posts']>=20) $rng='Посетитель';
        if($cur_post['countzp']>=1) $rng='Начинающий покупатель';
        if($cur_post['countzp']>=5) $rng='Покупатель';
        if($cur_post['countzp']>=15) $rng='Постоянный покупатель';
        if($cur_post['summrate']==1) $rng='СП-клуб';
        if($cur_post['summrate']==2) $rng='VIP СП-клуб';

$forum_page['author_ident']['orgrang']='<li><span>Ранг: <strong>'.$rng.'</strong></span></li>';
}
//echo $forum_page['author_ident']['orgrang'];
    if (isset($user_data_cache[$cur_post['poster_id']]['author_info']))
        $forum_page['author_info'] = $user_data_cache[$cur_post['poster_id']]['author_info'];
    else
    {
        // Generate author information
        if ($cur_post['poster_id'] > 1)
        {
            if ($forum_config['o_show_user_info'] == '1')
            {
                if ($cur_post['location'] != '')
                {
                    if ($forum_config['o_censoring'] == '1')
                        $cur_post['location'] = censor_words($cur_post['location']);

                    $forum_page['author_info']['from'] = '<li><span>'.$lang_topic['From'].' <strong>'.forum_htmlencode($cur_post['location']).'</strong></span></li>';
                }

                $forum_page['author_info']['registered'] = '<li><span>'.$lang_topic['Registered'].' <strong>'.format_time($cur_post['registered'], 1).'</strong></span></li>';

                if ($forum_config['o_show_post_count'] == '1' || $forum_user['is_admmod'])
                    $forum_page['author_info']['posts'] = '<li><span>'.$lang_topic['Posts info'].' <strong>'.forum_number_format($cur_post['num_posts']).'</strong></span></li>';
            }

            if ($forum_user['is_admmod'])
            {
                if ($cur_post['admin_note'] != '')
                    $forum_page['author_info']['note'] = '<li><span>'.$lang_topic['Note'].' <strong>'.forum_htmlencode($cur_post['admin_note']).'</strong></span></li>';
            }
        }
    }

    // Generate IP information for moderators/administrators
    if ($forum_user['is_admmod'])
        $forum_page['author_info']['ip'] = '<li><span>'.$lang_topic['IP'].' <a href="'.forum_link($forum_url['get_host'], $cur_post['id']).'">'.$cur_post['poster_ip'].'</a></span></li>';

    // Generate author contact details
    if ($forum_config['o_show_user_info'] == '1')
    {
        if (isset($user_data_cache[$cur_post['poster_id']]['post_contacts']))
            $forum_page['post_contacts'] = $user_data_cache[$cur_post['poster_id']]['post_contacts'];
        else
        {
            if ($cur_post['poster_id'] > 1)
            {
                if ($cur_post['url'] != '')
                    $forum_page['post_contacts']['url'] = '<span class="user-url'.(empty($forum_page['post_contacts']) ? ' first-item' : '').'"><a class="external" href="'.forum_htmlencode(($forum_config['o_censoring'] == '1') ? censor_words($cur_post['url']) : $cur_post['url']).'">'.sprintf($lang_topic['Visit website'], '<span>'.sprintf($lang_topic['User possessive'], forum_htmlencode($cur_post['username'])).'</span>').'</a></span>';
                if ((($cur_post['email_setting'] == '0' && !$forum_user['is_guest']) || $forum_user['is_admmod']) && $forum_user['g_send_email'] == '1')
                    $forum_page['post_contacts']['email'] = '<span class="user-email'.(empty($forum_page['post_contacts']) ? ' first-item' : '').'"><a href="mailto:'.forum_htmlencode($cur_post['email']).'">'.$lang_topic['E-mail'].'<span>&#160;'.forum_htmlencode($cur_post['username']).'</span></a></span>';
                else if ($cur_post['email_setting'] == '1' && !$forum_user['is_guest'] && $forum_user['g_send_email'] == '1')
                    $forum_page['post_contacts']['email'] = '<span class="user-email'.(empty($forum_page['post_contacts']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['email'], $cur_post['poster_id']).'">'.$lang_topic['E-mail'].'<span>&#160;'.forum_htmlencode($cur_post['username']).'</span></a></span>';
            }
            else
            {
                if ($cur_post['poster_email'] != '' && !$forum_user['is_guest'] && $forum_user['g_send_email'] == '1')
                    $forum_page['post_contacts']['email'] = '<span class="user-email'.(empty($forum_page['post_contacts']) ? ' first-item' : '').'"><a href="mailto:'.forum_htmlencode($cur_post['poster_email']).'">'.$lang_topic['E-mail'].'<span>&#160;'.forum_htmlencode($cur_post['username']).'</span></a></span>';
            }
        }

        ($hook = get_hook('vt_row_pre_post_contacts_merge')) ? eval($hook) : null;

        if (!empty($forum_page['post_contacts']))
            $forum_page['post_options']['contacts'] = '<p class="post-contacts">'.implode(' ', $forum_page['post_contacts']).'</p>';
    }

    // Generate the post options links
    if (!$forum_user['is_guest'])
    {
        $forum_page['post_actions']['report'] = '<span class="report-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['report'], $cur_post['id']).'">'.$lang_topic['Report'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';

        if (!$forum_page['is_admmod'])
        {
            if ($cur_topic['closed'] == '0')
            {
                if ($cur_post['poster_id'] == $forum_user['id'])
                {
                    if (($forum_page['start_from'] + $forum_page['item_count']) == 1 && $forum_user['g_delete_topics'] == '1')
                        $forum_page['post_actions']['delete'] = '<span class="delete-topic'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['delete'], $cur_topic['first_post_id']).'">'.$lang_topic['Delete topic'].'</a></span>';
                    if (($forum_page['start_from'] + $forum_page['item_count']) > 1 && $forum_user['g_delete_posts'] == '1')
                        $forum_page['post_actions']['delete'] = '<span class="delete-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['delete'], $cur_post['id']).'">'.$lang_topic['Delete'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';
                    if ($forum_user['g_edit_posts'] == '1')
                        $forum_page['post_actions']['edit'] = '<span class="edit-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['edit'], $cur_post['id']).'">'.$lang_topic['Edit'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';
                }

                if (($cur_topic['post_replies'] == '' && $forum_user['g_post_replies'] == '1') || $cur_topic['post_replies'] == '1')
                    $forum_page['post_actions']['quote'] = '<span class="quote-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['quote'], array($id, $cur_post['id'])).'">'.$lang_topic['Quote'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';
            }
        }
        else
        {
            if (($forum_page['start_from'] + $forum_page['item_count']) == 1)
                $forum_page['post_actions']['delete'] = '<span class="delete-topic'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['delete'], $cur_topic['first_post_id']).'">'.$lang_topic['Delete topic'].'</a></span>';
            else
                $forum_page['post_actions']['delete'] = '<span class="delete-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['delete'], $cur_post['id']).'">'.$lang_topic['Delete'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';

            $forum_page['post_actions']['edit'] = '<span class="edit-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['edit'], $cur_post['id']).'">'.$lang_topic['Edit'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';
            $forum_page['post_actions']['quote'] = '<span class="quote-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['quote'], array($id, $cur_post['id'])).'">'.$lang_topic['Quote'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';
        }
    }
    else
    {
        if ($cur_topic['closed'] == '0')
        {
            if (($cur_topic['post_replies'] == '' && $forum_user['g_post_replies'] == '1') || $cur_topic['post_replies'] == '1')
                $forum_page['post_actions']['quote'] = '<span class="report-post'.(empty($forum_page['post_actions']) ? ' first-item' : '').'"><a href="'.forum_link($forum_url['quote'], array($id, $cur_post['id'])).'">'.$lang_topic['Quote'].'<span> '.$lang_topic['Post'].' '.forum_number_format($forum_page['start_from'] + $forum_page['item_count']).'</span></a></span>';
        }
    }

    ($hook = get_hook('vt_row_pre_post_actions_merge')) ? eval($hook) : null;

    if (!empty($forum_page['post_actions']))
        $forum_page['post_options']['actions'] = '<p class="post-actions">'.implode(' ', $forum_page['post_actions']).'</p>';

    // Give the post some class
    $forum_page['item_status'] = array(
        'post',
        ($forum_page['item_count'] % 2 != 0) ? 'odd' : 'even'
    );

    if ($forum_page['item_count'] == 1)
        $forum_page['item_status']['firstpost'] = 'firstpost';

    if (($forum_page['start_from'] + $forum_page['item_count']) == $forum_page['finish_at'])
        $forum_page['item_status']['lastpost'] = 'lastpost';

    if ($cur_post['id'] == $cur_topic['first_post_id'])
        $forum_page['item_status']['topicpost'] = 'topicpost';
    else
        $forum_page['item_status']['replypost'] = 'replypost';


    // Generate the post title
    if ($cur_post['id'] == $cur_topic['first_post_id'])
        $forum_page['item_subject'] = sprintf($lang_topic['Topic title'], $cur_topic['subject']);
    else
        $forum_page['item_subject'] = sprintf($lang_topic['Reply title'], $cur_topic['subject']);

    $forum_page['item_subject'] = forum_htmlencode($forum_page['item_subject']);

    // Perform the main parsing of the message (BBCode, smilies, censor words etc)
    $forum_page['message']['message'] = parse_message($cur_post['message'], $cur_post['hide_smilies']);

    if ($cur_post['edited'] != '')
        $forum_page['message']['edited'] = '<p class="lastedit"><em>'.sprintf($lang_topic['Last edited'], forum_htmlencode($cur_post['edited_by']), format_time($cur_post['edited'])).'</em></p>';

    // Do signature parsing/caching
    if ($cur_post['signature'] != '' && $forum_user['show_sig'] != '0' && $forum_config['o_signatures'] == '1')
    {
        if (!isset($signature_cache[$cur_post['poster_id']]))
            $signature_cache[$cur_post['poster_id']] = parse_signature($cur_post['signature']);

        $forum_page['message']['signature'] = '<div class="sig-content"><span class="sig-line"><!-- --></span>'.htmlspecialchars_decode($signature_cache[$cur_post['poster_id']]).'</div>';
    }

    ($hook = get_hook('vt_row_pre_display')) ? eval($hook) : null;

//print_r($forum_page);//exit;
    // Do user data caching for the post
    if ($cur_post['poster_id'] > 1 && !isset($user_data_cache[$cur_post['poster_id']]))
    {
        $user_data_cache[$cur_post['poster_id']] = array(
            'author_ident'    => $forum_page['author_ident'],
            'author_info'    => $forum_page['author_info'],
            'post_contacts'    => $forum_page['post_contacts']
        );

        ($hook = get_hook('vt_row_add_user_data_cache')) ? eval($hook) : null;
    }

?>
        <div class="<?php echo implode(' ', $forum_page['item_status']) ?>">
            <div id="p<?php echo $cur_post['id'] ?>" class="posthead">
                <h3 class="hn post-ident"><?php echo implode(' ', $forum_page['post_ident']) ?></h3>
            </div>
            <div class="postbody<?php echo ($cur_post['is_online'] == $cur_post['poster_id']) ? ' online' : '' ?>">
                <div class="post-author">
                    <ul class="author-ident">
                        <?php echo implode("\n\t\t\t\t\t\t", $forum_page['author_ident'])."\n" ?>

                    </ul>
                    <ul class="author-info">
                        <?php echo implode("\n\t\t\t\t\t\t", $forum_page['author_info'])."\n" ?>
                    </ul>
                </div>
                <div class="post-entry">
                    <h4 id="pc<?php echo $cur_post['id'] ?>" class="entry-title hn"><?php echo $forum_page['item_subject'] ?></h4>
                    <div class="entry-content">
                        <?php echo implode("\n\t\t\t\t\t\t", $forum_page['message'])."\n" ?>
                    </div>
<?php ($hook = get_hook('vt_row_new_post_entry_data')) ? eval($hook) : null; ?>
                </div>
            </div>
<?php if (!empty($forum_page['post_options'])): ?>
            <div class="postfoot">
                <div class="post-options">
                    <?php echo implode("\n\t\t\t\t\t", $forum_page['post_options'])."\n" ?>
                </div>
            </div>
<?php endif; ?>
        </div>
<?php

}

?>
    </div>

    <div class="main-foot">
<?php

    if (!empty($forum_page['main_foot_options']))
        echo "\n\t\t\t".'<p class="options">'.implode(' ', $forum_page['main_foot_options']).'</p>';

?>
        <h2 class="hn"><span><?php echo $forum_page['items_info'] ?></span></h2>
    </div>
<?php

#($hook = get_hook('vt_end')) ? eval($hook) : null;

$tpl_temp = forum_trim(ob_get_contents());
$tpl_main = str_replace('<!-- forum_main -->', $tpl_temp, $tpl_main);
ob_end_clean();
// END SUBST - <!-- forum_main -->



// Display quick post if enabled
if ($forum_config['o_quickpost'] == '1' &&
    !$forum_user['is_guest'] &&
    ($cur_topic['post_replies'] == '1' || ($cur_topic['post_replies'] == '' && $forum_user['g_post_replies'] == '1')) &&
    ($cur_topic['closed'] == '0' || $forum_page['is_admmod']))
{

// START SUBST - <!-- forum_qpost -->
ob_start();

($hook = get_hook('vt_qpost_output_start')) ? eval($hook) : null;

// Setup form
$forum_page['form_action'] = forum_link($forum_url['new_reply'], $id);
$forum_page['form_attributes'] = array();

$forum_page['hidden_fields'] = array(
    'form_sent'        => '<input type="hidden" name="form_sent" value="1" />',
    'form_user'        => '<input type="hidden" name="form_user" value="'.((!$forum_user['is_guest']) ? forum_htmlencode($forum_user['username']) : 'Guest').'" />',
    'csrf_token'    => '<input type="hidden" name="csrf_token" value="'.generate_form_token($forum_page['form_action']).'" />'
);

if (!$forum_user['is_guest'] && $forum_config['o_subscriptions'] == '1' && ($forum_user['auto_notify'] == '1' || $cur_topic['is_subscribed']))
    $forum_page['hidden_fields']['subscribe'] = '<input type="hidden" name="subscribe" value="1" />';

// Setup help
$forum_page['main_head_options'] = array();
if ($forum_config['p_message_bbcode'] == '1')
    $forum_page['text_options']['bbcode'] = '<span'.(empty($forum_page['text_options']) ? ' class="first-item"' : '').'><a class="exthelp" href="'.forum_link($forum_url['help'], 'bbcode').'" title="'.sprintf($lang_common['Help page'], $lang_common['BBCode']).'">'.$lang_common['BBCode'].'</a></span>';
if ($forum_config['p_message_img_tag'] == '1')
    $forum_page['text_options']['img'] = '<span'.(empty($forum_page['text_options']) ? ' class="first-item"' : '').'><a class="exthelp" href="'.forum_link($forum_url['help'], 'img').'" title="'.sprintf($lang_common['Help page'], $lang_common['Images']).'">'.$lang_common['Images'].'</a></span>';
if ($forum_config['o_smilies'] == '1')
    $forum_page['text_options']['smilies'] = '<span'.(empty($forum_page['text_options']) ? ' class="first-item"' : '').'><a class="exthelp" href="'.forum_link($forum_url['help'], 'smilies').'" title="'.sprintf($lang_common['Help page'], $lang_common['Smilies']).'">'.$lang_common['Smilies'].'</a></span>';

($hook = get_hook('vt_quickpost_pre_display')) ? eval($hook) : null;

?>
<div class="main-subhead">
    <h2 class="hn"><span><?php echo $lang_topic['Quick post'] ?></span></h2>
</div>
<div id="brd-qpost" class="main-content main-frm">
<?php if (!empty($forum_page['text_options'])) echo "\t".'<p class="content-options options">'.sprintf($lang_common['You may use'], implode(' ', $forum_page['text_options'])).'</p>'."\n" ?>
    <div id="req-msg" class="req-warn ct-box error-box">
        <p class="important"><?php echo $lang_topic['Required warn'] ?></p>
    </div>
    <form class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"<?php if (!empty($forum_page['form_attributes'])) echo ' '.implode(' ', $forum_page['form_attributes']) ?>>
        <div class="hidden">
            <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?>
        </div>
<?php ($hook = get_hook('vt_quickpost_pre_fieldset')) ? eval($hook) : null; ?>
        <fieldset class="frm-group group1">
            <legend class="group-legend"><strong><?php echo $lang_common['Write message legend'] ?></strong></legend>
<?php ($hook = get_hook('vt_quickpost_pre_message_box')) ? eval($hook) : null; ?>
            <div class="txt-set set1">
                <div class="txt-box textarea required">
                    <label for="fld1"><span><?php echo $lang_common['Write message'] ?></span></label>
                    <div class="txt-input"><span class="fld-input"><textarea id="fld1" name="req_message" rows="7" cols="95"></textarea></span></div>
                </div>
            </div>
<?php ($hook = get_hook('vt_quickpost_pre_fieldset_end')) ? eval($hook) : null; ?>
        </fieldset>
<?php ($hook = get_hook('vt_quickpost_fieldset_end')) ? eval($hook) : null; ?>
        <div class="frm-buttons">
            <span class="submit"><input type="submit" name="submit" value="<?php echo $lang_common['Submit'] ?>" /></span>
            <span class="submit"><input type="submit" name="preview" value="<?php echo $lang_common['Preview'] ?>" /></span>
        </div>
    </form>
</div>
<?php

($hook = get_hook('vt_quickpost_end')) ? eval($hook) : null;

$tpl_temp = forum_trim(ob_get_contents());
$tpl_main = str_replace('<!-- forum_qpost -->', $tpl_temp, $tpl_main);
ob_end_clean();
// END SUBST - <!-- forum_qpost -->

}

// Increment "num_views" for topic
if ($forum_config['o_topic_views'] == '1')
{
    $query = array(
        'UPDATE'    => 'topics',
        'SET'        => 'num_views=num_views+1',
        'WHERE'        => 'id='.$id,
    );

    ($hook = get_hook('vt_qr_increment_num_views')) ? eval($hook) : null;
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

$forum_id = $cur_topic['forum_id'];

require FORUM_ROOT.'footer.php';

Добавлено спустя 23 секунды:

<?php
/**
* Adds a new post to the specified topic or a new topic to the specified forum.
*
* @copyright (C) 2008-2009 PunBB, partially based on code (C) 2008-2009 FluxBB.org
* @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
* @package PunBB
*/

define('FORUM_SKIP_CSRF_CONFIRM', 1);

if (!defined('FORUM_ROOT'))
    define('FORUM_ROOT', './');
require FORUM_ROOT.'include/common.php';

($hook = get_hook('po_start')) ? eval($hook) : null;

if ($forum_user['g_read_board'] == '0')
    message($lang_common['No view']);

// Load the post.php language file
require FORUM_ROOT.'lang/'.$forum_user['language'].'/post.php';


$tid = isset($_GET['tid']) ? intval($_GET['tid']) : 0;
$fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0;
if ($tid < 1 && $fid < 1 || $tid > 0 && $fid > 0)
    message($lang_common['Bad request']);


// Fetch some info about the topic and/or the forum
if ($tid)
{
    $query = array(
        'SELECT'    => 'f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.subject, t.closed, s.user_id AS is_subscribed',
        'FROM'        => 'topics AS t',
        'JOINS'        => array(
            array(
                'INNER JOIN'    => 'forums AS f',
                'ON'            => 'f.id=t.forum_id'
            ),
            array(
                'LEFT JOIN'        => 'forum_perms AS fp',
                'ON'            => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
            ),
            array(
                'LEFT JOIN'        => 'subscriptions AS s',
                'ON'            => '(t.id=s.topic_id AND s.user_id='.$forum_user['id'].')'
            )
        ),
        'WHERE'        => '(fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$tid
    );

    ($hook = get_hook('po_qr_get_topic_forum_info')) ? eval($hook) : null;
}
else
{
    $query = array(
        'SELECT'    => 'f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics',
        'FROM'        => 'forums AS f',
        'JOINS'        => array(
            array(
                'LEFT JOIN'        => 'forum_perms AS fp',
                'ON'            => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
            )
        ),
        'WHERE'        => '(fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid
    );

    ($hook = get_hook('po_qr_get_forum_info')) ? eval($hook) : null;
}

$result = $forum_db->query_build($query) or error(__FILE__, __LINE__);

if (!$forum_db->num_rows($result))
    message($lang_common['Bad request']);

$cur_posting = $forum_db->fetch_assoc($result);
$is_subscribed = $tid && $cur_posting['is_subscribed'];


// Is someone trying to post into a redirect forum?
if ($cur_posting['redirect_url'] != '')
    message($lang_common['Bad request']);

// Sort out who the moderators are and if we are currently a moderator (or an admin)
$mods_array = ($cur_posting['moderators'] != '') ? unserialize($cur_posting['moderators']) : array();
$forum_page['is_admmod'] = ($forum_user['g_id'] == FORUM_ADMIN || ($forum_user['g_moderator'] == '1' && array_key_exists($forum_user['username'], $mods_array))) ? true : false;

($hook = get_hook('po_pre_permission_check')) ? eval($hook) : null;

// Do we have permission to post?
if ((($tid && (($cur_posting['post_replies'] == '' && $forum_user['g_post_replies'] == '0') || $cur_posting['post_replies'] == '0')) ||
    ($fid && (($cur_posting['post_topics'] == '' && $forum_user['g_post_topics'] == '0') || $cur_posting['post_topics'] == '0')) ||
    (isset($cur_posting['closed']) && $cur_posting['closed'] == '1')) &&
    !$forum_page['is_admmod'])
    message($lang_common['No permission']);


($hook = get_hook('po_posting_location_selected')) ? eval($hook) : null;

// Start with a clean slate
$errors = array();

// Did someone just hit "Submit" or "Preview"?
if (isset($_POST['form_sent']))
{
    ($hook = get_hook('po_form_submitted')) ? eval($hook) : null;

    // Make sure form_user is correct
    if (($forum_user['is_guest'] && $_POST['form_user'] != 'Guest') || (!$forum_user['is_guest'] && $_POST['form_user'] != $forum_user['username']))
        message($lang_common['Bad request']);

    // Flood protection
    if (!isset($_POST['preview']) && $forum_user['last_post'] != '' && (time() - $forum_user['last_post']) < $forum_user['g_post_flood'] && (time() - $forum_user['last_post']) >= 0)
        $errors[] = sprintf($lang_post['Flood'], $forum_user['g_post_flood']);

    // If it's a new topic
    if ($fid)
    {
        $subject = forum_trim($_POST['req_subject']);

        if ($subject == '')
            $errors[] = $lang_post['No subject'];
        else if (utf8_strlen($subject) > 70)
            $errors[] = $lang_post['Too long subject'];
        else if ($forum_config['p_subject_all_caps'] == '0' && utf8_strtoupper($subject) == $subject && !$forum_page['is_admmod'])
            $errors[] = $lang_post['All caps subject'];
    }

    // If the user is logged in we get the username and e-mail from $forum_user
    if (!$forum_user['is_guest'])
    {
        $username = $forum_user['username'];
        $email = $forum_user['email'];
    }
    // Otherwise it should be in $_POST
    else
    {
        $username = forum_trim($_POST['req_username']);
        $email = strtolower(forum_trim(($forum_config['p_force_guest_email'] == '1') ? $_POST['req_email'] : $_POST['email']));

        // Load the profile.php language file
        require FORUM_ROOT.'lang/'.$forum_user['language'].'/profile.php';

        // It's a guest, so we have to validate the username
        $errors = array_merge($errors, validate_username($username));

        if ($forum_config['p_force_guest_email'] == '1' || $email != '')
        {
            if (!defined('FORUM_EMAIL_FUNCTIONS_LOADED'))
                require FORUM_ROOT.'include/email.php';

            if (!is_valid_email($email))
                $errors[] = $lang_post['Invalid e-mail'];

            if (is_banned_email($email))
                $errors[] = $lang_profile['Banned e-mail'];
        }
    }

    // If we're an administrator or moderator, make sure the CSRF token in $_POST is valid
    if ($forum_user['is_admmod'] && (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== generate_form_token(get_current_url())))
        $errors[] = $lang_post['CSRF token mismatch'];

    // Clean up message from POST
    $message = forum_linebreaks(forum_trim($_POST['req_message']));

    if (strlen($message) > FORUM_MAX_POSTSIZE_BYTES)
        $errors[] = sprintf($lang_post['Too long message'], forum_number_format(strlen($message)), forum_number_format(FORUM_MAX_POSTSIZE_BYTES));
    else if ($forum_config['p_message_all_caps'] == '0' && utf8_strtoupper($message) == $message && !$forum_page['is_admmod'])
        $errors[] = $lang_post['All caps message'];

    // Validate BBCode syntax
    if ($forum_config['p_message_bbcode'] == '1' || $forum_config['o_make_links'] == '1')
    {
        if (!defined('FORUM_PARSER_LOADED'))
            require FORUM_ROOT.'include/parser.php';

        $message = preparse_bbcode($message, $errors);
    }

    if ($message == '')
        $errors[] = $lang_post['No message'];

    $hide_smilies = isset($_POST['hide_smilies']) ? 1 : 0;
    $subscribe = isset($_POST['subscribe']) ? 1 : 0;

    $now = time();

    ($hook = get_hook('po_end_validation')) ? eval($hook) : null;

    // Did everything go according to plan?
    if (empty($errors) && !isset($_POST['preview']))
    {
        // If it's a reply
        if ($tid)
        {
            $post_info = array(
                'is_guest'        => $forum_user['is_guest'],
                'poster'        => $username,
                'poster_id'        => $forum_user['id'],    // Always 1 for guest posts
                'poster_email'    => ($forum_user['is_guest'] && $email != '') ? $email : null,    // Always null for non-guest posts
                'subject'        => $cur_posting['subject'],
                'message'        => $message,
                'hide_smilies'    => $hide_smilies,
                'posted'        => $now,
                'subscr_action'    => ($forum_config['o_subscriptions'] == '1' && $subscribe && !$is_subscribed) ? 1 : (($forum_config['o_subscriptions'] == '1' && !$subscribe && $is_subscribed) ? 2 : 0),
                'topic_id'        => $tid,
                'forum_id'        => $cur_posting['id'],
                'update_user'    => true,
                'update_unread'    => true
            );

            ($hook = get_hook('po_pre_add_post')) ? eval($hook) : null;
            add_post($post_info, $new_pid);
        }
        // If it's a new topic
        else if ($fid)
        {
            $post_info = array(
                'is_guest'        => $forum_user['is_guest'],
                'poster'        => $username,
                'poster_id'        => $forum_user['id'],    // Always 1 for guest posts
                'poster_email'    => ($forum_user['is_guest'] && $email != '') ? $email : null,    // Always null for non-guest posts
                'subject'        => $subject,
                'message'        => $message,
                'hide_smilies'    => $hide_smilies,
                'posted'        => $now,
                'subscribe'        => ($forum_config['o_subscriptions'] == '1' && (isset($_POST['subscribe']) && $_POST['subscribe'] == '1')),
                'forum_id'        => $fid,
                'update_user'    => true,
                'update_unread'    => true
            );

            ($hook = get_hook('po_pre_add_topic')) ? eval($hook) : null;
            add_topic($post_info, $new_tid, $new_pid);
        }

        ($hook = get_hook('po_pre_redirect')) ? eval($hook) : null;

        redirect(forum_link($forum_url['post'], $new_pid), $lang_post['Post redirect']);
    }
}


// Are we quoting someone?
if ($tid && isset($_GET['qid']))
{
    $qid = intval($_GET['qid']);
    if ($qid < 1)
        message($lang_common['Bad request']);

    // Get the quote and quote poster
    $query = array(
        'SELECT'    => 'p.poster, p.message',
        'FROM'        => 'posts AS p',
        'WHERE'        => 'id='.$qid.' AND topic_id='.$tid
    );

    ($hook = get_hook('po_qr_get_quote')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    if (!$forum_db->num_rows($result))
        message($lang_common['Bad request']);

    list($q_poster, $q_message) = $forum_db->fetch_row($result);

    ($hook = get_hook('po_modify_quote_info')) ? eval($hook) : null;

    if ($forum_config['p_message_bbcode'] == '1')
    {
        // If username contains a square bracket, we add "" or '' around it (so we know when it starts and ends)
        if (strpos($q_poster, '[') !== false || strpos($q_poster, ']') !== false)
        {
            if (strpos($q_poster, '\'') !== false)
                $q_poster = '"'.$q_poster.'"';
            else
                $q_poster = '\''.$q_poster.'\'';
        }
        else
        {
            // Get the characters at the start and end of $q_poster
            $ends = utf8_substr($q_poster, 0, 1).utf8_substr($q_poster, -1, 1);

            // Deal with quoting "Username" or 'Username' (becomes '"Username"' or "'Username'")
            if ($ends == '\'\'')
                $q_poster = '"'.$q_poster.'"';
            else if ($ends == '""')
                $q_poster = '\''.$q_poster.'\'';
        }

        $forum_page['quote'] = '

.$q_poster. пишет:

'.$q_message.'

'."\n";
    }
    else
        $forum_page['quote'] = '> '.$q_poster.' '.$lang_common['wrote'].':'."\n\n".'> '.$q_message."\n";
}


// Setup form
$forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0;
$forum_page['form_action'] = ($tid ? forum_link($forum_url['new_reply'], $tid) : forum_link($forum_url['new_topic'], $fid));
$forum_page['form_attributes'] = array();

$forum_page['hidden_fields'] = array(
    'form_sent'        => '<input type="hidden" name="form_sent" value="1" />',
    'form_user'        => '<input type="hidden" name="form_user" value="'.((!$forum_user['is_guest']) ? forum_htmlencode($forum_user['username']) : 'Guest').'" />',
    'csrf_token'    => '<input type="hidden" name="csrf_token" value="'.generate_form_token($forum_page['form_action']).'" />'
);

// Setup help
$forum_page['text_options'] = array();
if ($forum_config['p_message_bbcode'] == '1')
    $forum_page['text_options']['bbcode'] = '<span'.(empty($forum_page['text_options']) ? ' class="first-item"' : '').'><a class="exthelp" href="'.forum_link($forum_url['help'], 'bbcode').'" title="'.sprintf($lang_common['Help page'], $lang_common['BBCode']).'">'.$lang_common['BBCode'].'</a></span>';
if ($forum_config['p_message_img_tag'] == '1')
    $forum_page['text_options']['img'] = '<span'.(empty($forum_page['text_options']) ? ' class="first-item"' : '').'><a class="exthelp" href="'.forum_link($forum_url['help'], 'img').'" title="'.sprintf($lang_common['Help page'], $lang_common['Images']).'">'.$lang_common['Images'].'</a></span>';
if ($forum_config['o_smilies'] == '1')
    $forum_page['text_options']['smilies'] = '<span'.(empty($forum_page['text_options']) ? ' class="first-item"' : '').'><a class="exthelp" href="'.forum_link($forum_url['help'], 'smilies').'" title="'.sprintf($lang_common['Help page'], $lang_common['Smilies']).'">'.$lang_common['Smilies'].'</a></span>';

// Setup breadcrumbs
$forum_page['crumbs'][] = array($forum_config['o_board_title'], forum_link($forum_url['index']));
$forum_page['crumbs'][] = array($cur_posting['forum_name'], forum_link($forum_url['forum'], array($cur_posting['id'], sef_friendly($cur_posting['forum_name']))));
if ($tid)
    $forum_page['crumbs'][] = array($cur_posting['subject'], forum_link($forum_url['topic'], array($tid, sef_friendly($cur_posting['subject']))));
$forum_page['crumbs'][] = $tid ? $lang_post['Post reply'] : $lang_post['Post new topic'];

($hook = get_hook('po_pre_header_load')) ? eval($hook) : null;

define('FORUM_PAGE', 'post');
require FORUM_ROOT.'header.php';

// START SUBST - <!-- forum_main -->
ob_start();

($hook = get_hook('po_main_output_start')) ? eval($hook) : null;

?>
    <div class="main-head">
        <h2 class="hn"><span><?php echo $tid ? $lang_post['Post reply'] : $lang_post['Post new topic'] ?></span></h2>
    </div>
<?php

// If preview selected and there are no errors
if (isset($_POST['preview']) && empty($errors))
{
    if (!defined('FORUM_PARSER_LOADED'))
        require FORUM_ROOT.'include/parser.php';

    $forum_page['preview_message'] = parse_message(forum_trim($message), $hide_smilies);

    // Generate the post heading
    $forum_page['post_ident'] = array();
    $forum_page['post_ident']['num'] = '<span class="post-num">#</span>';
    $forum_page['post_ident']['byline'] = '<span class="post-byline">'.sprintf((($tid) ? $lang_post['Reply byline'] : $lang_post['Topic byline']), '<strong>'.forum_htmlencode($forum_user['username']).'</strong>').'</span>';
    $forum_page['post_ident']['link'] = '<span class="post-link">'.format_time(time()).'</span>';

    ($hook = get_hook('po_preview_pre_display')) ? eval($hook) : null;

?>
    <div class="main-subhead">
        <h2 class="hn"><span><?php echo $tid ? $lang_post['Preview reply'] : $lang_post['Preview new topic']; ?></span></h2>
    </div>
    <div id="post-preview" class="main-content main-frm">
        <div class="post singlepost">
            <div class="posthead">
                <h3 class="hn"><?php echo implode(' ', $forum_page['post_ident']) ?></h3>
<?php ($hook = get_hook('po_preview_new_post_head_option')) ? eval($hook) : null; ?>
            </div>
            <div class="postbody">
                <div class="post-entry">
                    <div class="entry-content">
                        <?php echo $forum_page['preview_message']."\n" ?>
                    </div>
<?php ($hook = get_hook('po_preview_new_post_entry_data')) ? eval($hook) : null; ?>
                </div>
            </div>
        </div>
    </div>
<?php

}

?>
    <div class="main-subhead">
        <h2 class="hn"><span><?php echo ($tid) ? $lang_post['Compose your reply'] : $lang_post['Compose your topic'] ?></span></h2>
    </div>
    <div id="post-form" class="main-content main-frm">
<?php

    if (!empty($forum_page['text_options']))
        echo "\t\t".'<p class="ct-options options">'.sprintf($lang_common['You may use'], implode(' ', $forum_page['text_options'])).'</p>'."\n";

    // If there were any errors, show them
    if (!empty($errors))
    {
        $forum_page['errors'] = array();
        foreach ($errors as $cur_error)
            $forum_page['errors'][] = '<li class="warn"><span>'.$cur_error.'</span></li>';

        ($hook = get_hook('po_pre_post_errors')) ? eval($hook) : null;

?>
        <div class="ct-box error-box">
            <h2 class="warn hn"><?php echo $lang_post['Post errors'] ?></h2>
            <ul class="error-list">
                <?php echo implode("\n\t\t\t\t", $forum_page['errors'])."\n" ?>
            </ul>
        </div>
<?php

    }

?>
        <div id="req-msg" class="req-warn ct-box error-box">
            <p><?php printf($lang_common['Required warn'], '<em>'.$lang_common['Required'].'</em>') ?></p>
        </div>
        <form id="afocus" class="frm-form" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>"<?php if (!empty($forum_page['form_attributes'])) echo ' '.implode(' ', $forum_page['form_attributes']) ?>>
            <div class="hidden">
                <?php echo implode("\n\t\t\t\t", $forum_page['hidden_fields'])."\n" ?>
            </div>
<?php

if ($forum_user['is_guest'])
{
    $forum_page['email_form_name'] = ($forum_config['p_force_guest_email'] == '1') ? 'req_email' : 'email';

    ($hook = get_hook('po_pre_guest_info_fieldset')) ? eval($hook) : null;

?>
            <fieldset class="frm-group group<?php echo ++$forum_page['group_count'] ?>">
                <legend class="group-legend"><strong><?php echo $lang_post['Guest post legend'] ?></strong></legend>
<?php ($hook = get_hook('po_pre_guest_username')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_post['Guest name'] ?> <em><?php echo $lang_common['Required'] ?></em></span></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_username" value="<?php if (isset($_POST['req_username'])) echo forum_htmlencode($username); ?>" size="35" maxlength="25" /></span>
                    </div>
                </div>
<?php ($hook = get_hook('po_pre_guest_email')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text<?php if ($forum_config['p_force_guest_email'] == '1') echo ' required' ?>">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_post['Guest e-mail'] ?><?php if ($forum_config['p_force_guest_email'] == '1') echo ' <em>'.$lang_common['Required'].'</em>' ?></span></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="<?php echo $forum_page['email_form_name'] ?>" value="<?php if (isset($_POST[$forum_page['email_form_name']])) echo forum_htmlencode($email); ?>" size="35" maxlength="80" /></span>
                    </div>
                </div>
<?php ($hook = get_hook('po_pre_guest_info_fieldset_end')) ? eval($hook) : null; ?>
            </fieldset>
<?php

    ($hook = get_hook('po_guest_info_fieldset_end')) ? eval($hook) : null;

    // Reset counters
    $forum_page['group_count'] = $forum_page['item_count'] = 0;
}

($hook = get_hook('po_pre_req_info_fieldset')) ? eval($hook) : null;

?>
            <fieldset class="frm-group group<?php echo ++$forum_page['group_count'] ?>">
                <legend class="group-legend"><strong><?php echo $lang_common['Required information'] ?></strong></legend>
<?php

if ($fid)
{
    ($hook = get_hook('po_pre_req_subject')) ? eval($hook) : null;

?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required longtext">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_post['Topic subject'] ?> <em><?php echo $lang_common['Required'] ?></em></span></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="req_subject" value="<?php if (isset($_POST['req_subject'])) echo forum_htmlencode($subject); ?>" size="70" maxlength="70" /></span>
                    </div>
                </div>
<?php

}

($hook = get_hook('po_pre_post_contents')) ? eval($hook) : null;

?>
                <div class="txt-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="txt-box textarea required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_post['Write message'] ?> <em><?php echo $lang_common['Required'] ?></em></span></label>
                        <div class="txt-input"><span class="fld-input"><textarea id="fld<?php echo $forum_page['fld_count'] ?>" name="req_message" rows="14" cols="95"><?php echo isset($_POST['req_message']) ? forum_htmlencode($message) : (isset($forum_page['quote']) ? forum_htmlencode($forum_page['quote']) : ''); ?></textarea></span></div>
                    </div>
                </div>
<?php

$forum_page['checkboxes'] = array();
if ($forum_config['o_smilies'] == '1')
    $forum_page['checkboxes']['hide_smilies'] = '<div class="mf-item"><span class="fld-input"><input type="checkbox" id="fld'.(++$forum_page['fld_count']).'" name="hide_smilies" value="1"'.(isset($_POST['hide_smilies']) ? ' checked="checked"' : '').' /></span> <label for="fld'.$forum_page['fld_count'].'">'.$lang_post['Hide smilies'].'</label></div>';

// Check/uncheck the checkbox for subscriptions depending on scenario
if (!$forum_user['is_guest'] && $forum_config['o_subscriptions'] == '1')
{
    $subscr_checked = false;

    // If it's a preview
    if (isset($_POST['preview']))
        $subscr_checked = isset($_POST['subscribe']) ? true : false;
    // If auto subscribed
    else if ($forum_user['auto_notify'])
        $subscr_checked = true;
    // If already subscribed to the topic
    else if ($is_subscribed)
        $subscr_checked = true;

    $forum_page['checkboxes']['subscribe'] = '<div class="mf-item"><span class="fld-input"><input type="checkbox" id="fld'.(++$forum_page['fld_count']).'" name="subscribe" value="1"'.($subscr_checked ? ' checked="checked"' : '').' /></span> <label for="fld'.$forum_page['fld_count'].'">'.($is_subscribed ? $lang_post['Stay subscribed'] : $lang_post['Subscribe']).'</label></div>';
}

($hook = get_hook('po_pre_optional_fieldset')) ? eval($hook) : null;

if (!empty($forum_page['checkboxes']))
{

?>
                <fieldset class="mf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <legend><span><?php echo $lang_post['Post settings'] ?></span></legend>
                    <div class="mf-box checkbox">
                        <?php echo implode("\n\t\t\t\t\t", $forum_page['checkboxes'])."\n"; ?>
                    </div>
<?php ($hook = get_hook('po_pre_checkbox_fieldset_end')) ? eval($hook) : null; ?>
                </fieldset>
<?php

}

($hook = get_hook('po_pre_req_info_fieldset_end')) ? eval($hook) : null;

?>
            </fieldset>
<?php

($hook = get_hook('po_req_info_fieldset_end')) ? eval($hook) : null;

?>
            <div class="frm-buttons">
                <span class="submit"><input type="submit" name="submit" value="<?php echo ($tid) ? $lang_post['Submit reply'] : $lang_post['Submit topic'] ?>" /></span>
                <span class="submit"><input type="submit" name="preview" value="<?php echo ($tid) ? $lang_post['Preview reply'] : $lang_post['Preview topic'] ?>" /></span>
            </div>
        </form>
    </div>
<?php


// Check if the topic review is to be displayed
if ($tid && $forum_config['o_topic_review'] != '0')
{
    if (!defined('FORUM_PARSER_LOADED'))
        require FORUM_ROOT.'include/parser.php';

    // Get the amount of posts in the topic
    $query = array(
        'SELECT'    => 'count(p.id)',
        'FROM'        => 'posts AS p',
        'WHERE'        => 'topic_id='.$tid
    );

    ($hook = get_hook('po_topic_review_qr_get_post_count')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    $forum_page['total_post_count'] = $forum_db->result($result, 0);

    // Get posts to display in topic review
    $query = array(
        'SELECT'    => 'p.id, p.poster, p.message, p.hide_smilies, p.posted',
        'FROM'        => 'posts AS p',
        'WHERE'        => 'topic_id='.$tid,
        'ORDER BY'    => 'id DESC',
        'LIMIT'        => $forum_config['o_topic_review']
    );

    ($hook = get_hook('po_topic_review_qr_get_topic_review_posts')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);

?>
    <div class="main-subhead">
        <h2 class="hn"><span><?php echo $lang_post['Topic review'] ?></span></h2>
    </div>
    <div id="topic-review" class="main-content main-frm">
<?php

    $forum_page['item_count'] = 0;
    $forum_page['item_total'] = $forum_db->num_rows($result);

    while ($cur_post = $forum_db->fetch_assoc($result))
    {
        ++$forum_page['item_count'];

        $forum_page['message'] = parse_message($cur_post['message'], $cur_post['hide_smilies']);

        // Generate the post heading
        $forum_page['post_ident'] = array();
        $forum_page['post_ident']['num'] = '<span class="post-num">'.forum_number_format($forum_page['total_post_count'] - $forum_page['item_count'] + 1).'</span>';
        $forum_page['post_ident']['byline'] = '<span class="post-byline">'.sprintf($lang_post['Post byline'], '<strong>'.forum_htmlencode($cur_post['poster']).'</strong>').'</span>';
        $forum_page['post_ident']['link'] = '<span class="post-link"><a class="permalink" rel="bookmark" title="'.$lang_post['Permalink post'].'" href="'.forum_link($forum_url['post'], $cur_post['id']).'">'.format_time($cur_post['posted']).'</a></span>';

        ($hook = get_hook('po_topic_review_row_pre_display')) ? eval($hook) : null;

?>
        <div class="post<?php echo ($forum_page['item_count'] == 1) ? ' firstpost' : '' ?><?php echo ($forum_page['item_total'] == $forum_page['item_count']) ? ' lastpost' : '' ?>">
            <div class="posthead">
                <h3 class="hn post-ident"><?php echo implode(' ', $forum_page['post_ident']) ?></h3>
<?php ($hook = get_hook('po_topic_review_new_post_head_option')) ? eval($hook) : null; ?>
            </div>
            <div class="postbody">
                <div class="post-entry">
                    <div class="entry-content">
                        <?php echo $forum_page['message']."\n" ?>
<?php ($hook = get_hook('po_topic_review_new_post_entry_data')) ? eval($hook) : null; ?>
                    </div>
                </div>
            </div>
        </div>
<?php

    }

?>
    </div>
<?php

}

$forum_id = $cur_posting['id'];

($hook = get_hook('po_end')) ? eval($hook) : null;

$tpl_temp = forum_trim(ob_get_contents());
$tpl_main = str_replace('<!-- forum_main -->', $tpl_temp, $tpl_main);
ob_end_clean();
// END SUBST - <!-- forum_main -->

require FORUM_ROOT.'footer.php';

Поделиться

8

Re: Как защитится от спама?

Tanchikk12, и тут ни чего подозрительного нет.
Все-таки что-то не так в настройках.
Сначала зайдите в настройки групп в админке и для Гостя по новой права выставьте (разрешите ему там форум просматривать, а остальные галки уберите).  Потом по настройкам разделов пройдите и пересохраните доступы для всех.
И что за группа Проходимец?

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

9

Re: Как защитится от спама?

Visman пишет:

Сначала зайдите в настройки групп в админке и для Гостя по новой права выставьте (разрешите ему там форум просматривать, а остальные галки уберите).  Потом по настройкам разделов пройдите и пересохраните доступы для всех.
И что за группа Проходимец?

для гостя и проходимца все галки выключены (даже для просмотра форума, но он его видит).
По поводу проходимца - беспонятие кто это, но на всякий случай все галки выключены. В любом случае, спасибо за помощь.
В настройках разделов тоже все уже по несколько раз пересохраняла.

http://s019.radikal.ru/i640/1701/b7/64cc85d62423.jpg

http://s020.radikal.ru/i711/1701/28/3325688946a1.jpg

Поделиться

10

Re: Как защитится от спама?

Visman пишет:

Tanchikk12,
Сначала зайдите в настройки групп в админке и для Гостя по новой права выставьте (разрешите ему там форум просматривать, а остальные галки уберите).  Потом по настройкам разделов пройдите и пересохраните доступы для всех.
И что за группа Проходимец?

наверное те, кто пока проходит мимо...
========
Маэстро, по Скайпу  чайников не консультируете? Я вам показываю свой монитор и тупо выполняю ваши команды! 
Админка реально трудная для начинающих... В 54 года...  Скайп - kybaman1    Форум Энкуатро

Поделиться

11

Re: Как защитится от спама?

Tanchikk12, про гостей:
Если вы хотите чтобы Гости не только не могли писать, но и не могли видеть ваш форум, то во всех разделах уберите все галки у Гостя в разрешениях!
Если вы хотите чтобы Гости просматривали форум, но не могли отвечать, то включите в настройках групп в Госте галку Разрешить просмотр форума и после этого еще раз пробегите по настройкам разделов, оставив у Гостя только галку Читать форум.

про Проходимца: посмотрите сколько у вас на форуме таких пользователей, что это за пользователи, может их стоит удалить (с сохранением сообщений или без) или переместить в Пользователи, а группу Проходимцы удалить!?

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

12

Re: Как защитится от спама?

Visman пишет:

Если вы хотите чтобы Гости просматривали форум, но не могли отвечать, то включите в настройках групп в Госте галку Разрешить просмотр форума и после этого еще раз пробегите по настройкам разделов, оставив у Гостя только галку Читать форум.

сейчас все таки стоит, но внизу все размер есть кнопка "ответить" и они могут писать сообщения!!

Visman пишет:

про Проходимца: посмотрите сколько у вас на форуме таких пользователей, что это за пользователи, может их стоит удалить (с сохранением сообщений или без) или переместить в Пользователи, а группу Проходимцы удалить!?

удалила эту группу, там никого не было.

Поделиться

13

Re: Как защитится от спама?

сейчас все таки стоит, но внизу все размер есть кнопка "ответить" и они могут писать сообщения!!

У вас галка на просмотр форума у гостей убрана в настройке группы, а нужно чтобы она стояла.

Добавлено спустя 7 минут 42 секунды:

Если ни чего не поменялось берите любой редактор кода с поддержкой UTF-8, например: Notepad++ или PSPad или может у вас на хостинге прямо в панели админа можно файлы php править.
Открывайте в корне форума файл post.php и после строки

require FORUM_ROOT.'include/common.php';

добавляйте код

if ($forum_user['is_guest']) {
    message($lang_common['Bad request']);
}

Сохраните измененный файл в кодировке UTF-8 Without BOM (UTF-8 без BOM).
P.S. Ссылка в темах на ответ останется, но отвечать гости не смогут.

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

14

Re: Как защитится от спама?

Visman пишет:

Если ни чего не поменялось берите любой редактор кода с поддержкой UTF-8, например: Notepad++ или PSPad или может у вас на хостинге прямо в панели админа можно файлы php править.
Открывайте в корне форума файл post.php и после строки

require FORUM_ROOT.'include/common.php';

добавляйте код

if ($forum_user['is_guest']) {
    message($lang_common['Bad request']);
}

Сохраните измененный файл в кодировке UTF-8 Without BOM (UTF-8 без BOM).
P.S. Ссылка в темах на ответ останется, но отвечать гости не смогут.

это помогло, спасибо большое

Поделиться