<?


include '../system/sys.php';
include '../system/funcs.php';

if (!isset ($us)) {
        header ('location: /');    
        exit;
}

if (!isset ($_GET['pr'])) {
        header ('location: /');    
        exit;
}

$query = DB :: $dbs -> query ("SELECT * FROM `zc_pk` WHERE (`id`=?)", array ((int) $_GET['pr']));
if ($query -> rowCount () == 0) {    
        header ('location: /zc');    
        exit;
}

$pk = $query -> fetch ();

$kat = DB :: $dbs -> queryFetch ("SELECT * FROM `zc_kat` WHERE (`id`='" . $pk['id_kat'] . "')");

H ($kat['name'], '<a href="/zc" style="color:white;">ЗЦ</a> / <a href="/zc/kat' . $kat['id'] . '" style="color:white;">' . $kat['name'] . '</a> / <a href="/zc/pk' . $pk['id'] . '" style="color:white;">' . $pk['name'] . '</a> / Загрузка файла');

echo '<div class="lst">';
echo '<b>Правила загрузки файла:</b><br/>';
echo '1. Запрещено загружать файлы в несоответствующую им подкатегорию.<br/>';
echo '2. В описании запрещён мат, чьё-либо оскорбление или реклама.<br/>';
echo '3. Запрещено выкладывать хак файлы, в том числе файлы с шеллами.<br/>';
echo '4. Запрещено выкладывать файлы которые уже есть в нашем Загруз-Центре.<br/>';
echo '<b>За нарушение этих правил, ваш файл будет удален, а вы наказаны.</b>';
echo '</div>';
echo '<div class="list1">
    <form action="/zc/up.php?pr=' . $pk['id'] . '&upload" method="post" enctype="multipart/form-data">
        Название:<br/>
        <input type="text" name="name"/><br/>
        Описание:<br/>
        <textarea name="opis"></textarea><br/>
        Файл:<br/>
        <input type="file" name="filename"/><br/>
        <input type="checkbox" name="imp" value="1"> Импорт<br/>Ссылка для импорта:<br/>
        <input type="text" name="import"/><br/>
';

if ($us['reit']!=0) {
    echo '        
        Рейтинг для скачивания:<br/>
        <input name="reit"/><br/>
    ';
}

echo '
        <input type="submit" value="Загрузить"/>
    </form>
</div>
';

if (isset ($_GET['upload'])) {
        
        $_POST['name'] = htmlspecialchars (addslashes (trim ($_POST['name'])));
        $_POST['opis'] = htmlspecialchars (addslashes (trim ($_POST['opis'])));
        
        /*    if (DB :: $dbs -> querySingle ("SELECT * FROM `zc_f` WHERE (`us`='" . $us['id'] . "') AND (`dop` IS NULL)") != 0) {
                echo '<div class="list1"><b style="color:red;">Вы не можете выгружать файлы пока ваш предыдущий загруженный файл не пройдет модерацию..</b></div>';
        }
        else*/if (DB :: $dbs -> querySingle ("SELECT * FROM `zc_f` WHERE (`us`='" . $us['id'] . "') AND (`time`>'" . (time () - 60) . "')") != 0) {
                echo '<div class="list1"><b style="color:red;">Вы слишком часто выгружаете файлы..</b></div>';
        }
        elseif (empty ($_POST['name'])) {
                echo '<div class="list1"><b style="color:red;">Вы не ввели название..</b></div>';
        }
        elseif (empty ($_POST['opis'])) {
                echo '<div class="list1"><b style="color:red;">Вы не ввели описание..</b></div>';
        }
        else {
        
        if (!isset ($_POST['imp'])) {
        
            if (file_exists ($_FILES['filename']['tmp_name'])) {
                    
                $ext = substr ($_FILES['filename']['name'], strrpos ($_FILES['filename']['name'], '.') + 1);  
                if (!in_array ($ext, array ('jpg','gif','png','jpeg','bmp','zip','rar','7z','txt','mp3','avi','mp4','3gp'))) {
                        echo '<div class="list1"><b style="color:red;">Недопустимый формат файла!</b></div>';
                }
                else {
                    if ($_FILES['filename']['size'] > ((1024 * 1024 ) * 30)) {
                        echo '<div class="list1"><b style="color:red;">Файл привышает допустимый размер в 20 Мб!</b></div>';
                    }
                    else { 
                    
                    $filename = $us['id'] . '_' . passgen () . '.' . $ext;
                    copy ($_FILES['filename']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/files/zc/' . $filename);
                        
                    if (!isset ($_POST['reit'])) {
                        $_POST['reit']=0;
                    }
                    else {
                        if ($_POST['reit']<0) {
                                $_POST['reit']=0;
                        }
                        if ($_POST['reit']>$us['reit']) {
                                $_POST['reit']=$us['reit'];
                        }
                    }
                        
                    DB :: $dbs -> query ("INSERT INTO `zc_f` (`id_kat`,`id_pk`,`us`,`name`,`opis`,`time`,`filename`,`reit`, `size`) VALUES ('" . $kat['id'] . "','" . $pk['id'] . "','" . $us['id'] . "','" . $_POST['name'] . "','" . $_POST['opis'] . "','" . time () . "','" . $filename . "','" . $_POST['reit'] . "', '" . $_FILES['filename']['size'] . "')");

                    $id = DB :: $dbs -> lastInsertId ();

                    DB :: $dbs -> query ("INSERT INTO `action` (`value`,`t`,`us`) VALUES ('us{" . $us['id'] . "} выгрузил [url=/zc/file" . $id . "]файл[/url]!', '" . time () . "', '" . $kat['mod'] . "')");
                    echo '<div class="list1"><b>Файл выставлен на модерацию!</b></div>';
                        
                    header ('refresh: 1; url=/zc/pk' . $pk['id']);
                    
                    
                    }
                
                }

            }
            else {
                    echo '<div class="list1"><b style="color:red;">Вы не выбрали файл..</b></div>';
            }
    
        }
        else {
    
                $_POST['import'] = htmlspecialchars (addslashes (trim ($_POST['import'])));
                if (empty ($_POST['import'])) {
                        echo '<div class="list1"><b>Вы не ввели ссылку на импорт файла..</b></div>';
                }
                else {
                        if (!preg_match ('/https?:\/\/(.*)/i', $_POST['import'])) {
                                echo '<div class="list1"><b>Не верно указана ссылка на импорт файла!</b></div>';
                        }
                        else {
                                $ext = substr ($_POST['import'], strrpos ($_POST['import'], '.') + 1);  
                                if (!in_array ($ext, array ('jpg','gif','png','jpeg','bmp','zip','rar','7z','txt','mp3','avi','mp4','3gp'))) {
                                        echo '<div class="list1"><b style="color:red;">Недопустимый формат файла!</b></div>';
                                }
                                else {
                                        
                                        if (!isset ($_POST['reit'])) {
                                            $_POST['reit']=0;
                                        }
                                        else {
                                            if ($_POST['reit']<0) {
                                                $_POST['reit']=0;
                                            }
                                            if ($_POST['reit']>$us['reit']) {
                                                $_POST['reit']=$us['reit'];
                                            }
                                        }
                                        
                                        $filename = $us['id'] . '_' . passgen () . '.' . $ext;
                                        
                                                $f = fopen ($_SERVER['DOCUMENT_ROOT'] . '/files/zc/' . $filename, 'w');
                                        fputs  ($f, file_get_contents ($_POST['import']));
                                        fclose ($f);
                                        
                                        DB :: $dbs -> query ("INSERT INTO `zc_f` (`id_kat`,`id_pk`,`us`,`name`,`opis`,`time`,`filename`,`reit`, `size`) VALUES ('" . $kat['id'] . "','" . $pk['id'] . "','" . $us['id'] . "','" . $_POST['name'] . "','" . $_POST['opis'] . "','" . time () . "','" . $filename . "','" . $_POST['reit'] . "', '" . filesize ($_SERVER['DOCUMENT_ROOT'] . '/files/zc/' . $filename) . "')");

                                        $id = DB :: $dbs -> lastInsertId ();

                                        DB :: $dbs -> query ("INSERT INTO `action` (`value`,`t`,`us`) VALUES ('us{" . $us['id'] . "} выгрузил [url=/zc/file" . $id . "]файл[/url]!', '" . time () . "', '" . $kat['mod'] . "')");
                                        echo '<div class="list1"><b>Файл выставлен на модерацию!</b></div>';
                                            
                                        header ('refresh: 3; url=/zc/pk' . $pk['id']);
                                        
                                }
                        }                        
                }
        }

        }

}


F ();


?>