Файл: fo/load.php
Строк: 131
<?php
require '../system/sid.php';
require '../system/config.php';
include '../system/user.php';
whorm(0, 'fo');
include '../system/head.php';
$r = my_int($_REQUEST['r']);
$zip = new ZipArchive;
echo $div_title . 'Зона обмена' . $div_end .
     $div_menu . '
     <img src="../ico/up.gif" alt=""/> <b>Зона обмена</b>
     ' . $block . '
     <a href="search.php?">Поиск</a><br/>
     <a href="pop.php?">Популярные</a> |
     <a href="new.php?">Новые</a>
     ' . $div_end;
    $em = mysql_query("SELECT * FROM fo_cat WHERE id = '$r' LIMIT 1");
    if (mysql_num_rows($em) == false)
    {
        err('Раздел не найден!');
        include '../system/foot.php';
         exit();
    }
   //--------------------//
   $sets = mysql_fetch_array(mysql_query("SELECT `fo_limit`, `fo_moder`, `fo_size` FROM `setting` WHERE `ids` = '1'"));
   $_mod = ($sets[1] == 1) ? '<br/>Файл будет доступен после проверки Администратором.' : '';
   //--------------------//
   if (isset($_GET['ok'])) msg('Файл был успешно загружен!' . $_mod);
   if (isset($_POST['up'])) {
      $folder = check($_POST['folder']);
      $parol = my_int($_POST['parol']);
      $upl = my_int($_POST['upl']);
      $name = trim(mysql_real_escape_string(check($_POST['name'])));
      $opis = trim(mysql_real_escape_string(check($_POST['opis'])));
      if (isset($_POST['url'])) $url = htmlentities($_POST['url']);
if ($upl == 1)
{
      $FileName = $_FILES['object']['name'];
      $FileSize = $_FILES['object']['size'];
      $ScreenName = $_FILES['screen']['name'];
      $ScreenSize = $_FILES['screen']['size'];
      $archive = array('.zip', '.rar', '.tar', '.cab', '.gz', '.gzip');
      $frm = array('.jpg', '.jpeg', '.gif', '.png');
         $ext = mb_strtolower(strrchr($FileName, '.'), 'UTF8');
         $scr = mb_strtolower(strrchr($ScreenName, '.'), 'UTF8');
         if ($FileSize > (1024 * GetSize($sets[0]) * 1024))
         {
            err('Размер файла не должен быть более ' . get_size($sets[0]) . '!');
         }
         elseif (($sets[2] - $user['fo_size']) < $FileSize)
         {
             err('У Вас не осталось свободного места!');
         }
         elseif (empty($folder))
         {
            err('Не выбрана папка для загрузки!');
         }
         elseif (empty($FileName))
         {
            err('Не выбран файл!');
         }
         elseif (preg_match('/(.php|.pl|.htaccess)/i', $FileName) || !in_array($ext, $archive))
         {
            err('Файл не является архивом!');
         }
         elseif (!empty($ScreenName) && $ScreenSize > (1024 * 500))
         {
            err('Размер скриншота не должен быть более 500 Kb!');
         }
         elseif (!empty($ScreenName) && preg_match('/(.php|.pl|.htaccess)/i', $ScreenName) || !empty($ScreenName) && !in_array($scr, $frm))
         {
            err('Скриншот не является изображением!');
         }
         else
         {
            if ($zip->open($_FILES['object']['tmp_name']) === TRUE)
            {
                $zip->setArchiveComment($site . ' - best collection of scripts.');
                $zip->addFromString('ReadMe_'.$site.'.txt', 'Cкрипт скачан с сайта http://' . $site . ' заходите еще :)');
                $zip->close();
            }
            $NameFile = 'files/archive/' . mt_rand(10000, 99999) . '_' . strtoupper($site) . '_' . mt_rand(10000, 99999) . $ext;
            copy($_FILES['object']['tmp_name'], $NameFile);
            $nazvanie = (empty($name)) ? $FileName : $name;
            if (!empty($ScreenName))
            {
                $ScreenFile = 'files/screen/' . mt_rand(10000, 99999) . '_' . strtoupper($site) . '_' . $ScreenName;
                copy($_FILES['screen']['tmp_name'], $ScreenFile);
                $scrsql = ", `screen` = '$ScreenFile'";
            }
              mysql_query("INSERT INTO `fo_files` SET
                           `url` = '$NameFile',
                           `time` = '" . time() . "',
                           `author` = '$user[id]',
                           `title` = '$nazvanie',
                           `info` = '$opis',
                           `parol` = '$parol',
                           `rid` = '$r',
                           `cat` = '$folder',
                           `moder` = '$sets[1]'
                           $scrsql");
              mysql_query("UPDATE users SET `fo_size` = `fo_size` + '$FileSize', activity = activity + '0.01' WHERE id = '$user[id]' LIMIT 1");
              header('Location: load-'.$r.'&ok');
        }
    } elseif ($upl == 2) {
        $ScreenName = $_FILES['screen']['name'];
          $ScreenSize = $_FILES['screen']['size'];
        $file = getWithOutPath($url);
        $format = mb_strtolower(strrchr($file, '.'), 'UTF8');
        $scr = mb_strtolower(strrchr($ScreenName, '.'), 'UTF8');
        $ext = array('.zip', '.rar', '.gz', '.gzip', '.tar', '.cab');
        $frm = array('.jpg', '.jpeg', '.gif', '.png');
        $f = @fopen($url, 'r');
        while($c = @fread($f, 1024)) $filedata .= $c;
        if (!$f)
        {
            err('Ошибка импортирования файла!');
        }
        elseif (preg_match('/(.php|.pl|.htaccess)/i', $file) || !in_array($format, $ext))
        {
            err('Файл не является архивом!');
        }
        elseif (strlen($filedata) > (1024 * GetSize($sets[0]) * 1024))
        {
            err('Размер файла не должен быть более ' . get_size($sets[0]) . '!');
        }
        elseif (!empty($ScreenName) && $ScreenSize > (1024 * 500))
        {
           err('Размер скриншота не должен быть более 500 Kb!');
        }
        elseif (!empty($ScreenName) && preg_match('/(.php|.pl|.htaccess)/i', $ScreenName) || !empty($ScreenName) && !in_array($scr, $frm))
        {
           err('Скриншот не является изображением!');
        }
        elseif (($sets[2] - $user['fo_size']) < strlen($filedata))
        {
             err('У Вас не осталось свободного места!');
        } else {
            mkdir('extract', 0777);
            copy($url, 'extract/' . $file);
            if ($zip->open('extract/' . $file) === TRUE)
            {
                $zip->setArchiveComment($site . ' - best collection of scripts.');
                $zip->addFromString('ReadMe_' . $site . '.txt', 'Cкрипт скачан с сайта http://' . $site . ' заходите еще :)');
                $zip->close();
            }
            if (!empty($ScreenName))
            {
                $ScreenFile = 'files/screen/' . mt_rand(10000, 99999) . '_' . strtoupper($site) . '_' . $ScreenName;
                copy($_FILES['screen']['tmp_name'], $ScreenFile);
                $scrsql = ", `screen` = '$ScreenFile'";
            }
            $NameFile = 'files/archive/' . mt_rand(10000, 99999) . '_' . strtoupper($site) . '_' . $file;
            copy('extract/' . $file, $NameFile);
            removeDir('extract');
            $nazvanie = (empty($name)) ? $file : $name;
            mysql_query("INSERT INTO `fo_files` SET
                           `url` = '$NameFile',
                           `time` = '" . time() . "',
                           `author` = '$user[id]',
                           `title` = '$nazvanie',
                           `info` = '$opis',
                           `parol` = '$parol',
                           `rid` = '$r',
                           `cat` = '$folder',
                           `moder` = '$sets[1]'
                           $scrsql");
            mysql_query("UPDATE users SET `fo_size` = `fo_size` + '" . strlen($filedata) . "' WHERE id = '$user[id]' LIMIT 1");
              header('Location: load-'.$r.'&ok');
        }
     }
   }
    echo '<FORM action="load.php" method="POST" ENCTYPE="multipart/form-data">
          <label>Загружено ' . get_size($user['fo_size']) . ' из ' . get_size($sets[2]) . '</label><br/>
          <label>Выбрать файл: <small>(*max: ' . get_size($sets[0]) . ')</small></label><br/>
          <input type="file" name="object"/>
          <br/>
          <label>Импорт файла:</label><br/>
          <input type="text" name="url" value="http://"/>
          <br/>
          <label>Скриншот: <small>(*max: 500 Kb)</small></label><br/>
          <input type="file" name="screen"/>
          <br/>
          <label>Название файла:</label><br/>
          <input type="text" name="name"/>
          <br/>
          <label>Описание файла:</label><br/>
          <textarea name="opis" cols="50" rows="5" style="width: 99%"></textarea>
          <br/>
          <label>Пароль(можна оставить пустым):</label><br/>
          <input type="password" name="parol"/>
          <br/>
          <label>В папку:</label>
          <br/>
          <select name="folder">';
    $lists = mysql_query("SELECT * FROM fo_pod WHERE cid = '$r'");
    echo '<option value="0">-Не выбрано-</option>';
    while($A = mysql_fetch_assoc($lists))
    {
        echo '<option value="'.$A['id'].'">' . $A['title'] . '</option>';
    }
    echo '</select>
          <br/>
          <input type="radio" name="upl" checked value="1"/> Обычная загрузка
          <input type="radio" name="upl" value="2"/> Импорт
          <br/>
          <input type="hidden" name="r" value="'.$r.'"/>
          <input type="submit" name="up" value="Загрузить"/>
          </FORM>';
include '../system/foot.php';
?>