Файл: modules/zc/file.php
Строк: 261
<?
$title = 'Загруз-центр';
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT * FROM `zc_file` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Файла не существует!');
}
$file = $db->query("SELECT * FROM `zc_file` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
if($user['level']<1 AND $file['moderation']==0){
error('Файл на модерации!');
}
if($file['moderation']==2){
error('Файл не прошёл модерацию!');
}
if(($file['dir']==21 or $file['dir']==22 or $file['dir']==23) AND $user['rating']<0.45 AND $user['level']<1){
error('Для просмотра данной директории нужно получить статус "Лучший юзер" (0.45 рейтинга)');
}
switch($_GET['act']){
default:
if(!empty($file['password']) AND $user['level']<1 AND $user['id']!=$file['us']){
if(isset($_POST['ok'])){
$_POST['password'] = md5($_POST['password']);
if($file['password']==$_POST['password']){
$fo=true;
}else{
?>
<div class="error">Введён не верный пароль.</div>
<?
}
}
if(!$fo){
?>
<div class="error">Файл защищён паролем</div>
<form action="" method="POST">
<div class="text">
Введите пароль:<br/>
<input type="password" name="password" placeholder="Введите пароль"><br/>
<input type="submit" name="ok" value="Продолжить">
</div>
</form>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
}
?>
<div class="title"><?=htmlspecialchars($file['name'])?></div>
<?
if($file['bloc']==1){
?>
<div class="error">
Файл был заблокировал <?=nick($file['bloc_adm'])?> <?=times($file['bloc_time'])?> по причине:<br/>
<?=output($file['reason'])?><br/>
<?
if($user['level']>=1){?>
<a href="/zc/file/<?=$_GET['id']?>?act=rebloc">Разблокировать</a>
<?}?>
</div>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
?>
<div class="text">
<?
if($user['level']>=1 AND $file['moderation']==0){
?>
<a href="/admin/zc/file_moderation/<?=$file['id']?>?ok">Добавить</a> | <a href="/admin/zc/file_moderation/<?=$file['id']?>?no">Отлонить</a>
<?
}
if($user['level']>=1 or $user['id']==$file['us']){
?>
<a href="?act=edit">Редактировать</a> | <a href="?act=upfile">Замена файла</a> | <a href="?act=screen">Управление скриншотами</a> | <a href="?act=password">Установить пароль</a>
<?
if($user['level']<1){
?>
<br/>
<?
}
}
if($user['level']>=1){
if($file['bloc']==0){
?>
| <a href="/zc/file/<?=$_GET['id']?>?act=bloc">Заблокировать</a> <br/>
<?
}
}
?>
<b>Описание:</b><br/>
<?=output($file['description'])?><br/>
<b>Выгрузил</b> <?=nick($file['us'])?> в <?=times($file['time'])?>
<?
if($db->query("SELECT * FROM `zc_screen` WHERE `file`='".$_GET['id']."'")->num_rows!=0){
?>
<br/>Скриншоты:<br/>
<?
$q = $db->query("SELECT * FROM `zc_screen` WHERE `file`='".$_GET['id']."'");
while($s = $q->fetch_assoc()){
echo '<a href="/files/zc/screen/'.$s['screen'].'"><img src="/files/zc/screen/'.$s['screen'].'" style="width: 60px; height: 60px;"></a>';
}
}
?><br/>
<b>Скачиваний:</b> <?=intval($file['count_down'])?><br/>
<?if($file['rating']>=0){
$color = 'green';
}elseif($file['rating']<0){
$color = 'red';
}?>
<b>Рейтинг:</b> <font color="<=?$color?>"><?=$file['rating']?></font> (<font color="green"><?=$db->query("SELECT `id` FROM `zc_rating_history` WHERE `id_file`='".$_GET['id']."' AND `type`='1'")->num_rows?></font>/<font color="red"><?=$db->query("SELECT `id` FROM `zc_rating_history` WHERE `id_file`='".$_GET['id']."' AND `type`='2'")->num_rows?></font>)
<?
if(isset($user['id']) AND $db->query("SELECT `id` FROM `zc_rating_history` WHERE `id_file`='".$_GET['id']."' AND `id_us`='".$user['id']."'")->num_rows==0 AND $user['id']!=$file['us']){
?>
[<a href="/zc/file/<?=$_GET['id']?>?act=plus">+</a>] / [<a href="/zc/file/<?=$_GET['id']?>?act=minus">–</a>]
<?
}
?>
<br/>
<a href="/zc/rating_history/<?=$_GET['id']?>">История изменения рейтинга</a> (<?=$db->query("SELECT `id` FROM `zc_rating_history` WHERE `id_file`='".$_GET['id']."'")->num_rows?>)<br/>
<a href="/zc/down/<?=$_GET['id']?>">Скачать <?=htmlspecialchars($file['name'])?></a><br/>
<b>Ссылка на файл в ЗЦ:</b><br/>
<input type="text" value="http://php-zona.ru/zc/file/<?=$_GET['id']?>"><br/>
<b>Импорт:</b><br/>
<input type="text" value="http://php-zona.ru/files/zc/file/<?=htmlspecialchars($file['file'])?>"><br/><br/>
<a href="/zc/comm/<?=$_GET['id']?>">Комментарии</a> [<?=$db->query("SELECT `id` FROM `zc_comm` WHERE `file`='".$_GET['id']."'")->num_rows?>]
</div>
<?
break;
case 'edit':
mode('user');
if($user['level']<1 AND $file['us']!=$user['id']){
error('У вас нет доступа к этой странице!');
}
if(isset($_POST['ok'])){
$_POST['name'] = guard($db->real_escape_string($_POST['name']));
$_POST['description'] = guard($db->real_escape_string($_POST['description']));
$db->query("UPDATE `zc_file` SET `name`='".$_POST['name']."', `description`='".$_POST['description']."' WHERE `id`='".$_GET['id']."'");
success('Данные файла успешно изменены!');
$file = $db->query("SELECT * FROM `zc_file` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
}
?>
<div class="title">Редактирование файла</div>
<div class="text">
<a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
<form action="" method="POST">
Название:<br/>
<input type="text" name="name" value="<?=htmlspecialchars($file['name'])?>"><br/>
Описание:<br/>
<textarea name="description"><?=htmlspecialchars($file['description'])?></textarea><br/>
<input type="submit" name="ok" value="Изменить">
</form>
</div>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>">Вернуться к файлу</a></div>
<?
break;
case 'upfile':
mode('user');
if($user['level']<1 AND $file['us']!=$user['id']){
error('У вас нет доступа к данной странице');
}
if(isset($_POST['ok'])){
if($_POST['imp']==imp){
$_POST['import'] = guard($db->real_escape_string($_POST['import']));
if (!@fopen($_POST['import'], 'r')){
error('Файла не существует!');
}
$gh = get_headers($_POST['import'], 1);
$maxsize = 100; // Максимальный размер файла,в мегабайтах
$size = $gh['Content-Length']; // Вес файла
if ($size > (1048576 * $maxsize)){
error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
}
$info_url = pathinfo($_POST['import']);
$filetype = array(
'jpg',
'gif',
'png',
'jpeg',
'3gp',
'mp4',
'mp3',
'flv',
'zip',
'rar');
/* Если тип файла не подходит */
if (!in_array($info_url['extension'], $filetype))
{
error('Тип файла не подходит!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.time().'.'.$info_url['extension'];
if (!copy($_POST['import'], '../../files/zc/file/'.$file.'')){
error('Ошибка в копировании на сервер!');
}
$db->query("UPDATE `zc_file` SET `file`='".$file."', `moderation`='0' WHERE `id`='".$_GET['id']."'");
include_once('c.php');
success('Файл успешно обновлен! Ожидайте проверки файла администрацией.');
unlink('../../files/zc/file'.$file['file']);
}else{
$size = $_FILES['file']['size'];
$max = 100;
$filetype = array(
'jpg',
'gif',
'png',
'jpeg',
'3gp',
'mp4',
'mp3',
'flv',
'zip',
'rar');
$upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
error('Выберите файл!');
}elseif($size > (1048576 * $max)){
error('Вес файла должен быть не более '.$max.' мб.');
}elseif(!in_array($upfiletype, $filetype)){
error('Файл данного формата загржать запрещено!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], "../../files/zc/file/".$file."");
$db->query("UPDATE `zc_file` SET `file`='".$file."', `moderation`='0' WHERE `id`='".$_GET['id']."'");
include_once('c.php');
success('Файл успешно обновлен, ожидайте одобрения администрацией!');
unlink('../../files/zc/file/'.$file['file']);
}
}
?>
<div class="title">Обновление файла</div>
<div class="text">
<form action="" method="POST" enctype="multipart/form-data">
*Выберите файл:<br/>
<input type="file" name="file"><br/>
<input type="radio" name="imp" value="imp"> Импорт:<br/>
Файл:<br/>
<input type="text" name="import" value="http://"><br/>
<input type="submit" name="ok" value="Обновить">
</form>
</div>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>">Вернуться к файлу</a></div>
<?
break;
case 'screen':
mode('user');
if($user['level']<1 AND $file['us']!=$user['id']){
error('У вас нет доступа к данной странице');
}
if(isset($_GET['del'])){
$_GET['ids'] = abs(intval($_GET['ids']));
if($db->query("SELECT * FROM `zc_screen` WHERE `id`='".$_GET['ids']."'")->num_rows==0){
error('Скриншота не существует!');
}
$sc = $db->query("SELECT * FROM `zc_screen` WHERE `id`='".$_GET['ids']."'")->fetch_assoc();
if($sc['file']!=$_GET['id']){
error('Скриншот прикреплен не к этому файлу!');
}
unlink('../../files/zc/screen/'.$sc['screen']);
$db->query("DELETE FROM `zc_screen` WHERE `id`='".$_GET['ids']."'");
success('Скриншот успешно удален!');
}
if(isset($_GET['new'])){
?>
<div class="text">
<form action="/zc/file/<?=$_GET['id']?>?act=screen" method="POST" enctype="multipart/form-data">
*Выберите файл:<br/>
<input type="file" name="file"><br/>
<input type="radio" name="imp" value="imp"> Импорт:<br/>
Файл:<br/>
<input type="text" name="import" value="http://"><br/>
<input type="submit" name="ok" value="Добавить">
</form>
</div>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>?act=screen">Управление скриншотами</a></div>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>">Вернуться к файлу</a></div>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
if(isset($_POST['ok'])){
if(isset($_POST['ok'])){
if($_POST['imp']==imp){
$_POST['import'] = guard($db->real_escape_string($_POST['import']));
if (!@fopen($_POST['import'], 'r')){
error('Файла не существует!');
}
$gh = get_headers($_POST['import'], 1);
$maxsize = 10; // Максимальный размер файла,в мегабайтах
$size = $gh['Content-Length']; // Вес файла
if ($size > (1048576 * $maxsize)){
error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
}
$info_url = pathinfo($_POST['import']);
$filetype = array(
'jpg',
'gif',
'png',
'jpeg');
/* Если тип файла не подходит */
if (!in_array($info_url['extension'], $filetype))
{
error('Тип файла не подходит!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.time().'.'.$info_url['extension'];
if (!copy($_POST['import'], '../../files/zc/screen/'.$file.'')){
error('Ошибка в копировании на сервер!');
}
$db->query("INSERT INTO `zc_screen` SET `file`='".$_GET['id']."', `screen`='".$file."'");
success('Скриншот успешно добавлен');
}else{
$size = $_FILES['file']['size'];
$max = 10;
$filetype = array(
'jpg',
'gif',
'png',
'jpeg',
'3gp',
'mp4',
'mp3',
'flv',
'zip',
'rar');
$upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
error('Выберите файл!');
}elseif($size > (1048576 * $max)){
error('Вес файла должен быть не более '.$max.' мб.');
}elseif(!in_array($upfiletype, $filetype)){
error('Файл данного формата загржать запрещено!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], "../../files/zc/screen/".$file."");
$db->query("INSERT INTO `zc_screen` SET `file`='".$_GET['id']."', `screen`='".$file."'");
success('Скриншот успешно добавлен');
}
}
}
?>
<div class="title">Управление скриншотами</div>
<?
$q = $db->query("SELECT * FROM `zc_screen` WHERE `file`='".$_GET['id']."'");
?>
<div class="text">
<?
while($s = $q->fetch_assoc()){
echo '<a href="/files/zc/screen/'.$s['screen'].'"><img src="/files/zc/screen/'.$s['screen'].'" style="width: 60px; height: 60px;"></a> <a href="/zc/file/'.$_GET['id'].'?act=screen&ids='.$s['id'].'&del">[Уд.]</a><br/>';
}
?>
</div>
<?
if($db->query("SELECT * FROM `zc_screen` WHERE `file`='".$_GET['id']."'")->num_rows==0){
?>
<div class="error">Скриншотов нет</div>
<?
}
?>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>?act=screen&new">Добавить скриншот</a></div>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>">Вернуться к файлу</a></div>
<?
break;
case 'bloc':
mode('user');
level(1);
$file = $db->query("SELECT `us`, `bloc` FROM `zc_file` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
if(isset($_POST['ok'])){
$_POST['reason'] = guard($db->real_escape_string($_POST['reason']));
if(empty($_POST['reason'])){
error('Введите причину блокировки!');
}elseif(mb_strlen($_POST['reason'])<10 or mb_strlen($_POST['reason'])>4000){
error('Причина блокировки должна содержать не менее 10 и не более 4000 символов!');
}
$db->query("UPDATE `zc_file` SET `bloc`='1', `reason`='".$_POST['reason']."', `bloc_adm`='".$user['id']."', `bloc_time`='".time()."' WHERE `id`='".$_GET['id']."'");
$db->query("INSERT INTO `notifications` SET `id_us`='".$file['us']."', `time`='".time()."', `section`='zc', `sender`='".$user['id']."', `text`='заблокировал ваш [url=http://".$_SERVER["HTTP_HOST"]."/zc/file/".$_GET['id']."]файл[/url]'");
success('Файл успешно заблокирован');
}
if($file['bloc']==0){
?>
<div class="text">
<a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
<form action="" method="POST">
Причина блокировки:<br/>
<textarea name="reason"></textarea><br/>
<input type="submit" name="ok" value="Заблокировать">
</form>
</div>
<?
}
?>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>">Вернуться к файлу</a></div>
<?
break;
case 'rebloc':
level(1);
$file = $db->query("SELECT `us`, `bloc` FROM `zc_file` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
$db->query("UPDATE `zc_file` SET `bloc`='0' WHERE `id`='".$_GET['id']."'");
$db->query("INSERT INTO `notifications` SET `id_us`='".$file['us']."', `time`='".time()."', `section`='zc', `sender`='".$user['id']."', `text`='разблокировал ваш [url=http://".$_SERVER["HTTP_HOST"]."/zc/file/".$_GET['id']."]файл[/url]'");
success('Файл успешно разблокирован');
?>
<div class="nvg"><a href="/zc/file/<?=$_GET['id']?>">Вернуться к файлу</a></div>
<?
break;
case 'plus':
mode('user');
if($file['us']==$user['id']){
error('Голосовать за свой файл запрещено!');
}
if($db->query("SELECT `id` FROM `zc_rating_history` WHERE `id_file`='".$_GET['id']."' AND `id_us`='".$user['id']."'")->num_rows!=0){
error('Вы уже оценивали данный файл!');
}
$db->query("UPDATE `zc_file` SET `rating`=`rating`+0.01 WHERE `id`='".$_GET['id']."'");
$db->query("INSERT INTO `zc_rating_history` SET `id_file`='".$_GET['id']."', `id_us`='".$user['id']."', `time`='".time()."', `type`='1'");
$db->query("INSERT INTO `notifications` SET `id_us`='".$file['us']."', `time`='".time()."', `section`='rating', `sender`='".$user['id']."', `text`='[b]положительно[/b] оценил ваш [url=http://".$_SERVER["HTTP_HOST"]."/zc/file/".$_GET['id']."]файл[/url]'");
$db->query("UPDATE `users` SET `rating`=`rating`+0.01 WHERE `id`='".$file['us']."'");
header('location:/zc/file/'.$_GET['id']);
break;
case 'minus':
mode('user');
if($file['us']==$user['id']){
error('Голосовать за свой файл запрещено!');
}
if($db->query("SELECT `id` FROM `zc_rating_history` WHERE `id_file`='".$_GET['id']."' AND `id_us`='".$user['id']."'")->num_rows!=0){
error('Вы уже оценивали данный файл!');
}
$db->query("UPDATE `zc_file` SET `rating`=`rating`-0.01 WHERE `id`='".$_GET['id']."'");
$db->query("INSERT INTO `zc_rating_history` SET `id_file`='".$_GET['id']."', `id_us`='".$user['id']."', `time`='".time()."', `type`='2'");
$db->query("INSERT INTO `notifications` SET `id_us`='".$file['us']."', `time`='".time()."', `section`='rating', `sender`='".$user['id']."', `text`='[b]отрицательно[/b] оценил ваш [url=http://".$_SERVER["HTTP_HOST"]."/zc/file/".$_GET['id']."]файл[/url]'");
$db->query("UPDATE `users` SET `rating`=`rating`-0.01 WHERE `id`='".$file['us']."'");
header('location:/zc/file/'.$_GET['id']);
break;
case 'password':
mode('user');
if($user['id']!=$file['us']){
error('У Вас нет доступа к данной странице.');
}
if(isset($_POST['ok'])){
if(empty($_POST['password'])){
error('Введите пароль.');
}
$_POST['password'] = md5($_POST['password']);
$db->query("UPDATE `zc_file` SET `password`='".$_POST['password']."' WHERE `id`='".$file['id']."'");
success('Пароль успешно изменён.');
}
?>
<div class="title">Установка пароля на файл</div>
<div class="text">
<form action="" method="POST">
<input type="password" name="password" placeholder="Введите пароль" /><br/>
<input type="submit" name="ok" value="Сохранить">
</form>
</div>
<?
break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>