View file forum/add.php

File size: 8.75Kb
<?php
#-----------------------------------------------------#
#     ********* ROTORCMS Forum Files MOD *********    #
#              Made by  :  WmLiM                      #
#               E-mail  :  [email protected]              #
#                 Site  :  http://komwap.ru           #
#                  ICQ  :  768-4-736                  #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения.         #
#  При размещении мода на сторонних сайтах, ссылка на #
#  домашнюю страницу http://komwap.ru обязательна!    #
#-----------------------------------------------------#
	
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');

if (isset($_GET['act'])) {
  $act = check($_GET['act']);
} else {
  $act = 'default';
} 
if (isset($_GET['tid'])) {
  $tid = abs(intval($_GET['tid']));
} else {
  $tid = 0;
}  
if (isset($_GET['start'])) {
  $start = abs(intval($_GET['start']));
} else {
  $start = 0;
}

if (is_user()) {
  if (is_admin() || $config['downupload'] == 1) {
    switch ($act): 
    # ###########################################################################################
    # #                                   Главная страница                                     ##
    # ###########################################################################################
    case 'index':
    
      $down = DB :: $dbh -> query("SELECT * FROM `posts` WHERE `posts_id`=? LIMIT 1;", array($tid));
      $down = $down -> fetch();
        if (($down['posts_user'] == $log)|| is_admin()) {
            $config['newtitle'] = 'Прикрепление файла';
            echo '<br /><br /><b><big>Прикрепление файла</big></b><br /><br />';
      
            echo '<div class="form">';
            echo '<form action="add.php?act=loadfile&amp;tid=' . $tid . '" method="post" enctype="multipart/form-data">'; // . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '
            echo 'Прикрепить файл*:<br /><input type="file" name="loadfile" /><br />';
            echo '<input value="Загрузить" type="submit" /></form></div><br />';
        } else {
          $_SESSION['note'] = 'Изменение невозможно, вы не автор данного файла!';
          header ("Location: topic.php?tid=$tid&start=$start&" . SID);
          exit;
        }
      break;
    # ###########################################################################################
    # #                                   Загрузка файла                                       ##
    # ###########################################################################################
    case 'loadfile':
      $config['newtitle'] = 'Загрузка файла';

      $down = DB :: $dbh -> query("SELECT * FROM `posts` WHERE `posts_id`=? LIMIT 1;", array($tid));
      $down = $down ->fetch();
         if (($down['posts_user'] == $log)|| is_admin()) {
          if (empty($down['post_file_name'])) {
            if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {
              $filename = check(strtolower($_FILES['loadfile']['name']));

              if (strlen($filename) <= 50) {
                //if (preg_match('|^[a-z0-9_\.\-]+$|i', $filename)) {
                  $arrext = explode(',', $config['allowextload']);
                  $ext = strtolower(substr(strrchr($filename, '.'), 1));

                  if (in_array($ext, $arrext) && $ext != 'php') {
                    if (!preg_match('/\.(php|pl|cgi|phtml|htaccess)/i', $filename)) {
                      if ($_FILES['loadfile']['size'] > 0 && $_FILES['loadfile']['size'] <= $config['fileupload']) {
                        $downlink = DB :: $dbh -> querySingle("SELECT `post_file_name` FROM `posts` WHERE `post_file_name`=? LIMIT 1;", array($filename));
                        if (empty($downlink)) {
                          move_uploaded_file($_FILES['loadfile']['tmp_name'], BASEDIR . 'forum/files/' . $filename);
                          @chmod(BASEDIR . 'forum/files/' . $filename, 0666);

                          $f = $config['home']. '/forum/files/' . $filename;
                          $fsize = $_FILES['loadfile']['size'];
                          DB :: $dbh -> query("UPDATE `posts` SET `post_file`=?, `post_file_size`=?, `post_file_name`=? WHERE `posts_id`=?;", array($f,$fsize,$filename, $tid));

                          $_SESSION['note'] = 'Файл успешно загружен!';
                          $pid = DB :: $dbh -> querySingle("SELECT `posts_topics_id` FROM `posts` WHERE `posts_id`=? LIMIT 1;", array($tid));
                          header ("Location: topic.php?tid=$pid&start=$start&" . SID);
                          exit;
                        } else {
                          show_error('Ошибка! Файл ' . $filename . ' уже имеется в общих файлах!');
                        } 
                      } else {
                        show_error('Ошибка! Максимальный размер загружаемого файла ' . formatsize($config['fileupload']) . '!');
                      } 
                    } else {
                      show_error('Ошибка! В названии файла присутствуют недопустимые расширения!');
                    } 
                  } else {
                    show_error('Ошибка! Недопустимое расширение файла!');
                  } 
               /* } else {
                  show_error('Ошибка! В названии файла присутствуют недопустимые символы!');
                }*/ 
              } else {
                show_error('Ошибка! Слишком длинное имя файла (не более 50 символов)!');
              } 
            } else {
              show_error('Ошибка! Не удалось загрузить файл!');
            }  
        } else {
          show_error('Ошибка! Изменение невозможно, вы не автор данного файла!');
        } 
      } else {
        show_error('Данного файла не существует!');
      } 

      echo '<img src="../images/img/back.gif" alt="image" /> <a href="topic.php?tid='.$pid.'&start='.$start.'&' . SID.'">Вернуться</a><br />';
      break; 
    # ###########################################################################################
    # #                                   Удаление файла                                       ##
    # ###########################################################################################
    case 'delfile':

      $down = DB :: $dbh -> query("SELECT * FROM `posts` WHERE `posts_id`=? LIMIT 1;", array($tid));
      $down = $down ->fetch();
      if (!empty($down['post_file_name'])) {
        if (($down['posts_user'] == $log)|| is_admin()) {
          if (!empty($down['post_file']) && file_exists(BASEDIR . 'forum/files/' . $down['post_file_name'])) {
            unlink(BASEDIR . 'forum/files/' . $down['post_file_name']);
          } 
          
            DB :: $dbh -> query("UPDATE `posts` SET `post_file`=?, `post_file_size`=?, `post_file_name`=? WHERE `posts_id`=?;", array('', '','', $tid));

          $_SESSION['note'] = 'Файл '.$down['post_file_name'].' успешно удален!';
          $pid = DB :: $dbh -> querySingle("SELECT `posts_topics_id` FROM `posts` WHERE `posts_id`=? LIMIT 1;", array($tid));
          header ("Location: topic.php?tid=$pid&start=$start&" . SID);
          exit;
        } else {
          show_error('Ошибка! Удаление невозможно, вы не автор данного файла!');
        } 
      } else {
        show_error('Ошибка! Данного файла не существует!');
      } 

      echo '<img src="../images/img/back.gif" alt="image" /> <a href="topic.php?tid='.$pid.'&start='.$start.'&' . SID.'">Вернуться</a><br />';
      break; 

    default:
      header("location: index.php?" . SID);
      exit;
      endswitch;
    } else {
    show_error('Возможность добавление файлов запрещена администрацией сайта');
  } 
} else {
  show_login('Вы не авторизованы, для добавления файла, необходимо');
} 

echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';

include_once ('../themes/' . $config['themes'] . '/foot.php');

?>