Файл: zc/up.php
Строк: 69
<?
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 ) * 20)) {
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 ();
?>