Файл: profi_wm/fo/up.php
Строк: 97
<?php
function getExt($name){
return end(explode('.', $name));
}
include '../system/core.php';
include '../system/header.php';
$id = abs(intval($_GET['id']));
$praz = mysql_fetch_assoc(mysql_query("SELECT * FROM `fo_pr` WHERE `id` = '$id' LIMIT 1"));
if(empty($praz['id'])){
header('location:/');
exit();
}
$raz = mysql_fetch_assoc(mysql_query("SELECT * FROM `fo_r` WHERE `id` = '$praz[id_r]' LIMIT 1"));
$_title = 'Загрузка файла';
if($_POST['imp']==0){
if(isset($_POST['ok'])){
$name = TextGuard($_POST['name']);
$about = TextGuard($_POST['about']);
if(empty($name) or strlen($name)>100){$err = 'Что-то с названием файла! Или оно слишком длинное, или вы вообще его не ввели!';}
if(empty($about)){$err = 'Вы не ввели описание файла!';}
if($_FILES['file']['size'] > 1024*60*1024){$err = 'Размер файла превышает 60 мб.!';}
if(mysql_result(mysql_query("SELECT COUNT(id) FROM `fo` WHERE `name` = '$name'"),0)==1){
$err = 'Такой файл уже есть!';}
$file = $_FILES['file']['name'];
$ext = strtolower(strrchr($file, '.'));
$file = 'file_'.rand(1000,9999).$ext;
$type_upload = getExt($file);
$tp = explode(',',$raz['type']);
$cc = count($tp);
$type_no_error = false;
for($i=0;$i<$cc;$i++){
if($type_upload==$tp[$i]) $type_no_error = true;
}
if(!$type_no_error) $err = 'Запрещенный формат файла!';
/*if(preg_match('/(.php|.pl|.phpb|.htmlb|.htmb|.phtmb|.inib|.perlb|.htaccess)/i', $file)){
$err .= 'Запрещенный формат файла!';}*/
if(!isset($err)){
$uploaddir = 'files/'.$file;
if(copy($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/fo/'.$uploaddir)){
mysql_query("INSERT INTO `fo` SET `id_r` = '$raz[id]', `id_pr` = '$praz[id]', `time` = '".time()."', `last` = '".time()."', `name` = '$name', `value` = '$about', `file` = '$uploaddir', `user_id` = '$user[id]'");
mysql_query("UPDATE user SET rub = rub + '$money_fo' WHERE id = '$user[id]' LIMIT 1");
header('location: file.php?id='.mysql_insert_id());}
}
}
}else{
function getWithoutPath($filename){
return end(explode("/", $filename));
}
function p20repl($fn){
return str_replace('%20', ' ', $fn);
}
if($_POST['import'] == ''){
$err .= 'Вы не ввели ссылку на файл!';
}
$f = @fopen($_POST['import'], 'r');
if(!$f){
$err .= 'Файл по ссылке <b>'.TextGuard($_POST['import']).'</b> недоступен.</b>';
}
$parametr = explode('#',trim($_POST['import']));
if(!isset($parametr[1])) $parametr[1] = basename(trim($parametr[0]));
$ex = pathinfo(trim($parametr[0]));
$ext = strtolower($ex['extension']);
$fname = $parametr[1];
$fnames=$parametr[1]; //имя
/*if(preg_match('/(.php|.pl|.phpb|.htmlb|.htmb|.phtmb|.inib|.perlb|.htaccess)/i', $fnames)){
$err .= 'Файлы такого типа запрещены!';
}*/
$type_upload = getExt($fname);
$tp = explode(',',$raz['type']);
$cc = count($tp);
$type_no_error = false;
for($i=0;$i<$cc;$i++){
if($type_upload==$tp[$i]) $type_no_error = true;
}
if(!$type_no_error) $err = 'Запрещенный формат файла!';
$ext2 = explode(".", $fname);
/*if (count($ext2) != 2) {
$err = 'Запрещены файлы не имеющие имени, расширения, или с двойным расширением.';
}
*/
if(strlen($fname)>250){
$err = 'Длина названия файла не должна превышать 250 символов!';
}
if (preg_match("/[^a-z0-9.()+_-]/i", $fname)){
$err = '<br />В названии файла "<b>'.$fname.'</b>" присутствуют недопустимые символы.<br />Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.';
}
while($c = fread($f, 1024)) $filedata .= $c;
if(strlen($filedata) > 1024*1024*30){
$err .= 'Размер файла превышает <b>30 Мб</b>.';
}
$FileName = 'files/file_'.rand(1000,9999).'.'.$ext;
$adres = $FileName;
fclose($f);
$_POST['import'] = p20repl($_POST['import']);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/fo/'.$adres, $filedata);
$name = TextGuard($_POST['name']);
$about = TextGuard($_POST['about']);
if(empty($name) or strlen($name)>100){$err = 'Что-то с названием файла! Или оно слишком длинное, или вы вообще его не ввели!';}
if(mysql_result(mysql_query("SELECT COUNT(id) FROM `fo` WHERE `name` = '$name'"),0)==1){
$err = 'Такой файл уже есть!';}
if(empty($about)){$err = 'Вы не ввели описание файла!';}
if(!isset($err)){
mysql_query("INSERT INTO `fo` SET `id_r` = '$raz[id]', `id_pr` = '$praz[id]', `time` = '".time()."', `last` = '".time()."', `name` = '$name', `value` = '$about', `file` = '$adres', `user_id` = '$user[id]'");
mysql_query("UPDATE user SET rub = rub + '$money_fo' WHERE id = '$user[id]' LIMIT 1");
header('location: file.php?id='.mysql_insert_id());}
}
error($err);
echo '<div class="post2">Доступные форматы для загрузки: <b><font color="red">'.$raz['type'].'</font></b><br/><br/><form action="up.php?id='.$id.'" method="post" enctype="multipart/form-data">* Название:<br/><input type="text" name="name"/><br/>* Описание:<br/><textarea name="about"></textarea><br/>
Файл:<br/><input type="file" name="file"/><br/>
<input type="radio" name="imp" value="1"> Импорт<br/>Ссылка для импорта:<br/>
<input type="text" value="http://" name="import"/><br/>
<input type="submit" name="ok" value="Загрузить"/></form></div>';
echo '<div class="post1"><img src="ext/dir.gif" alt="*"/> <a href="/fo">Обменник</a> / <a href="/fo/pr.php?id='.$raz['id'].'">'.$raz['name'].'</a> / <a href="/fo/files.php?id='.$praz['id'].'">'.$praz['name'].'</a></div>';
include '../system/footer.php';
?>