Вход Регистрация
Файл: forum/addtopic.php
Строк: 188
<?php
# Script by seg0ro http://mobilarts.ru
# Not for sale!!!

defined('_IN_JOHNCMS') or die('Error: restricted access');

$textl .= ' | Новая тема';
require_once(
'../incfiles/head.php');

if (!
$forum){
  echo 
functions::display_error('Отсутствует идентификатор форума!<br /><a href="index.php">Форум</a>');
  require_once(
'../incfiles/end.php');
  exit;
}

if (!
$user_id || $ban['1'] || $ban['11'] || ($forumRes['close'] && !$rights)){
  echo 
functions::display_error('У вас недостаточно прав для просмотра этой страницы!<br /><a href="index.php">Форум</a>');
  require_once(
'../incfiles/end.php');
  exit;
}

if (empty(
$_SESSION['tempid']))
  
$_SESSION['tempid'] = rand(11119999).$user_id;

$tree = array('<a href="index.php">Форум</a>''<a href="index.php?forum='.$forumRes['forum'].'">'.functions::checkout($forumRes['forumname']).'</a>''Новая тема');
echo 
'<div class="phdr">'.functions::display_menu($tree).'</div>';

$flood functions::antiflood();
if (
$flood){
  echo 
functions::display_error('Слишком высокая активность!<br />Пожалуйста, подождите '.$flood.' сек.<br /><a href="index.php?forum='.$forum.'">Назад</a>');
  require_once(
'../incfiles/end.php');
  exit;
}

$name $_POST['topicname'] ? trim($_POST['topicname']) : '';
$text $_POST['text'] ? trim($_POST['text']) : $forumRes['template'];
$clip $_POST['clip'] ? 0;
$close $_POST['close'] ? 0;
$sticky $_POST['sticky'] ? 0;
$pollName $_POST['poll_name'] ? trim($_POST['poll_name']) : '';
$poll 0;
$pollSet '';

if (isset(
$_POST['addfile']) && $_FILES['file']['name']){
  
$postId 0;
  
$topicId 0;
  
$tempId $_SESSION['tempid'];
  require_once (
'includes/fileupload.php');
}

if (isset(
$_POST['delfile'])){
  
$array $_POST['delfile'];
  if (
is_array($array)){
    foreach (
$array as $file => $val){
      require_once (
'includes/delfile.php');
    }
  }else{
    
$error 'Возникла ошибка при удалении файла!';
  }
}

$fileReq mysql_query("SELECT * FROM `forum_files` WHERE `tempid` = '".intval($_SESSION['tempid'])."' LIMIT 11 ");
$total mysql_num_rows($fileReq);

if (isset(
$_POST['send'])){

  if (!
$name)
    
$error .= 'Не введено название темы!<br />';
  
  if (
$name && mb_strlen($name) < 2)
    
$error .= 'Слишком короткое название темы!<br />';

  if (
$name && mb_strlen($name) > 100)
    
$error .= 'Слишком длинное название темы!<br />';

  
$check mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topics` WHERE `topicname` = '".mysql_real_escape_string($name)."' AND `forum` = '$forum' LIMIT 1 "), 0);

  if (
$check)
    
$error .= 'Тема с таким названием уже существует!<br />';
  
  if (!
$text || $text == $forumRes['template'])
    
$error .= 'Не введен текст сообщения!<br />';

  if (empty(
$pollName) && !empty($_POST[0]))
    
$error .= 'Вы не ввели заголовок голосования<br />';
  
  if (!empty(
$pollName) && (empty($_POST[0]) || empty($_POST[1])))
    
$error .= 'Не введены как минимум два варианта голосования<br />';
    
  if (!
$error){
    
    if (!empty(
$pollName) && !empty($_POST['count_vars'])){
      
$pollName mb_substr(trim($pollName), 0200);
      
$pollSet = array('poll_mod' => intval($_POST['poll_mod']), 'total_polls' => '0''total_polled' => '0''poll_close' => '0');
      
$poll 1;  
    }
    
    
mysql_query("INSERT INTO `forum_topics` SET
    `forum` = '
$forum',
    `time` = '"
.time()."',
    `topicname` = '"
.mysql_real_escape_string($name)."',
    `forumname` = '"
.mysql_real_escape_string($forumRes['forumname'])."',
    `user_id` = '
$user_id',
    `user` = '
$login',
    `lastpost` = '',
    `count` = '1',
    `close` = '
$close',
    `sticky` = '
$sticky',
    `clip` = '
$clip',
    `poll_name` = '"
.mysql_real_escape_string($pollName)."',
    `poll_set` = '"
.serialize($pollSet)."'
    "
);
    
$tid mysql_insert_id();
    
    if (
$poll){
      if (
$_POST['count_vars'] > 20)
        
$_POST['count_vars'] = 20;
      elseif (
$_POST['count_vars'] < 2)
        
$_POST['count_vars'] = 2;
      for (
$var 0$var $_POST['count_vars']; $var++){
        
$vars mb_substr(trim($_POST[$var]), 0100);
        if (empty(
$vars)){
          continue;
        }
        
mysql_query("INSERT INTO `forum_polls` SET
        `topic` = '
$tid',
        `variantname` = '"
.mysql_real_escape_string($vars)."'
        "
);
      }
    }

    
mysql_query("INSERT INTO `forum_posts` SET
    `topic` = '
$tid',
    `time` = '"
.time()."',
    `user_id` = '
$user_id',
    `user` = '
$login',
    `text` = '"
.mysql_real_escape_string($text)."',
    `browser` = '"
.mysql_real_escape_string($agn)."',
    `ip` = '"
.core::$ip."',
    `ip_via_proxy` = '"
.core::$ip_via_proxy."',
    `files` = '
$total'
    "
);
    
$pid mysql_insert_id();

    if (
$total){
      
mysql_query("UPDATE `forum_files` SET
      `post` = '
$pid',
      `topic` = '
$tid',
      `tempid` = ''
      WHERE `tempid` = '"
.intval($_SESSION['tempid'])."' ");
    }

    
mysql_query("UPDATE `forum_forums` SET
    `count` = count + 1,
    `last_topic` = '
$tid:|:".mysql_real_escape_string($name).":|:".time()."'
    WHERE `forum` = '
$forum' LIMIT 1 ");
    
    
mysql_query("UPDATE `users` SET `lastpost` = '".time()."', `postforum` = postforum + 1 WHERE `id` = '$user_id' ");
    
    unset (
$_SESSION['tempid']);
    unset (
$_SESSION['filename']);
        
    
header ('Refresh:1; URL=index.php?topic='.$tid);
    echo 
'<div class="gmenu">Тема создана<br />Сообщение добавлено<br />';
    if (
$total)
      echo 
'Файлы загружены<br />';
    if (
$poll)
      echo 
'Голосование создано<br />';  
    echo 
'<a href="index.php?topic='.$tid.'">Далее</a></div>';
    require_once(
'../incfiles/end.php');
    exit;
  }
}

if (
$error)
  echo 
functions::display_error($error);

if (
$text && isset($_POST['preview'])){
  
$textPreview quote(functions::checkout($text11));
  if (
$set_user['smileys'])
    
$textPreview functions::smileys($textPreview$rights >= 0);
  echo 
'<div class="list1"><strong>Предпросмотр:</strong><br />'.$textPreview.'</div>';
}

echo 
'<form id="form" name="form" action="index.php?act=addtopic&amp;forum='.$forum.'" method="post" enctype="multipart/form-data">'.
'<div class="list1">Название <img style="cursor: pointer;" onclick="alert(this.title);" src="images/question.png" alt="?" title="Мин. 2, макс. 100 символов" />:<br /><input type="text" name="topicname" value="'.text($name).'" /></div>'.
'<div class="gmenu">Текст:<br />'.bbcode::auto_bb('form''text').'<textarea name="text" cols="30" rows="'.$set_user['field_h'].'">'.text($text).'</textarea><br />'.
'<input type="submit" name="send" value="Отправить" /> <input type="submit" name="preview" value="Предпросм." /> <a href="../pages/faq.php?act=smileys">Смайлы</a></div>'.
'<div class="phdr">Файлы: '.$total.' из 10</div>';
if (
$total){
  while (
$fileRes mysql_fetch_array($fileReq)){
    echo 
$i '<div class="list2">' '<div class="list1">';
    echo 
show_file($fileRes).' <input type="submit" name="delfile['.$fileRes['file'].']" onclick="return confirm('Вы действительно хотите удалить файл?');" value="Удалить" /></div>';
    ++
$i;
  }
}
if (
$total 10){
  echo 
'<div class="gmenu">Файл <img style="cursor: pointer;" onclick="alert(this.title);" src="images/question.png" alt="?" title="Максимально '.$set['flsz'].' Кб." />:<br /><input type="file" name="file" /><br /><input type="submit" name="addfile" value="Прикрепить" /></div>';
}
echo 
'<div class="list1"><label><input type="checkbox" name="clip" value="1" '.($clip 'checked="checked"' '').' />&nbsp;Закрепить 1-ое сообщение</label><br />';
if (
$rights == || $rights 6){
  echo 
'<label><input type="checkbox" name="close" value="1" '.($close 'checked="checked"' '').' />&nbsp;Закрыть</label><br />'.
  
'<label><input type="checkbox" name="sticky" value="1" '.($sticky 'checked="checked"' '').' />&nbsp;Закрепить</label></div>'.
  
'<div class="phdr">Голосование</div>'.
  
'<div class="list1">Название <img style="cursor: pointer;" onclick="alert(this.title);" src="images/question.png" alt="?" title="Максимально 200 символов" />:<br /><input type="text" name="poll_name" value="'.text($pollName).'" /><br />';
  if (isset(
$_POST['add']))
    ++
$_POST['count_vars'];
  elseif (isset(
$_POST['del']))
    --
$_POST['count_vars'];
  if (
$_POST['count_vars'] < || empty($_POST['count_vars']))
    
$_POST['count_vars'] = 2;
  elseif (
$_POST['count_vars'] > 20)
    
$_POST['count_vars'] = 20;
  for (
$vars 0$vars $_POST['count_vars']; $vars++){
    echo 
'Вариант '.($vars 1).' <img style="cursor: pointer;" onclick="alert(this.title);" src="images/question.png" alt="?" title="Максимально 100 символов" />:<br /><input type="text" name="'.$vars.'" value="'.text($_POST[$vars]).'" /><br />';
}
  echo 
'<input type="hidden" name="count_vars" value="'.intval($_POST['count_vars']).'" />'.
  (
$_POST['count_vars'] < 20 '<br /><input type="submit" name="add" value=" + " />' '').
  (
$_POST['count_vars'] > '<input type="submit" name="del" value=" - " /><br />' '<br />').
  
'<label><input type="radio" value="0" name="poll_mod" '.($_POST['poll_mod'] == 'checked="checked" ' '').'/> Можно выбирать только один вариант</label><br /><label><input type="radio" value="1" name="poll_mod" '.($_POST['poll_mod'] == 'checked="checked" ' '').'/> Можно выбирать несколько вариантов</label>';
}
echo 
'</div></form>';
Онлайн: 1
Реклама