Файл: masteram_us/usscripts/upload.php
Строк: 174
<?
require'../shaxty.php'; // waphp.ru - закрытый клуб вап мастеров!
$align='left';
$title='Скрипты пользователей';
$head='Скрипты пользователей';
include_once (H.'shaxty/head.php');
check_login();
function parseUA($s) {
if(preg_match('/Opera Mini/1/i', $s)) return 1;
if(preg_match('/Opera Mini/2/i', $s)) return 2;
if(preg_match('/Opera Mini/3/i', $s)) return 3;
if(preg_match('/Opera Mini/4/i', $s)) return 4;
}
function retrans($t){
$a = array('_','YA','Ya','ya','yee','YO','yo','Yo','ZH','zh','Zh','Z','z','CH','ch','Ch','SH','sh','Sh','YE','ye','Ye','YU','yu','Yu','JA','ja','Ja','A','a','B','b','V','v','G','g','D','d','E','e','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','W','w','x','q','Y','y','C','c','!');
$b = array(' ','Я','Я','я','ые','Ё','ё','Ё','Ж','ж','Ж','З','з','Ч','ч','Ch','Ш','ш','Ш','Э','э','Э','Ю','ю','Ю','Я','я','Я','А','а','Б','б','В','в','Г','г','Д','д','Е','е','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Щ','щ','ъ','ь','Ы','ы','Ц','ц','');
return str_replace($b,$a,$t);
}
function del123456789($text)
{
$text=str_replace('"','', $text);
$text=str_replace("'",'', $text);
$text=str_replace('&','', $text);
$text=str_replace('$','', $text);
$text=str_replace('>','', $text);
$text=str_replace('<','', $text);
$text=str_replace('~','', $text);
$text=str_replace('`','', $text);
$text=str_replace('#','', $text);
$text=str_replace('*','', $text);
$text=str_replace(''','', $text);
return $text;
}
function getExt($name) {
return end(explode('.', $name));
}
function checkExt($name) {
$exts[] = 'rar';
$exts[] = 'zip';
$exts[] = 'tar';
$found = false;
foreach($exts as $key=>$value) {
if(getExt($name) == $value) {
$found = true;
break;
}
}
if(!$found) return false;
else return true;
}
function getWithoutPath($filename) {
return end(explode("/", $filename));
}
function p20repl($fn) {
return str_replace('%20', ' ', $fn);
}
echo $div1.'<a href="/usscripts">Скрипты</a>|<b>Добавить файл</b>'.$div9;
if (empty($act)){
echo '<b>Перед загрузкой ознакомтесь с правилами:</b><br />
<b>1</b>) Запрещенно загружать файлы в несоответствующюю им категорию.<br />
<b>2</b>) В описании запрещено использовать нецензурную лексику.<br />
<b>3</b>) Запрещено выкладывать файлы с шеллами и т.п.!<br />
<b>4</b>) Запрещено выкладывать файлы которые уже есть в нашем <a href="/down/">Архиве файлов</a>!<br />
<b>5</b>) За нурешение правил, ваш файл будет удален, а вы наказанны!<br /><br />';
echo '<form action="?act=act&'.SID.'" method="post" enctype="multipart/form-data">';
echo '<input type="radio" name="fileupl" value="f" id="fuid" checked><label for="fuid">Загрузить файл (max. '.$set['scripts_size'].' мб)</label><br/>';
switch(parseUA($_SERVER['HTTP_USER_AGENT'])) {
case 1:
case 2:
echo '<b>*</b>Файл:<br/>';
echo '<input name="file_opera" value="" /><a href="op:fileselect">Выбрать файл</a><br/>';
case 3:
case 4:
default:
echo '<b>*</b>Файл:<br/>';
echo '<input type="file" name="file" /><br/>';
break;
}
echo '<input type="radio" name="fileupl" value="u" id="uuid"><label for="uuid">Загрузить по ссылке</label><br/><input type="text" name="url" value="http://" /><br/><br/>';
echo '<b>*</b>Имя:<br/><input type="text" name="name" value="" /><br/>';
echo '<b>*</b>Описание:<br/><input type="text" name="desc" value="" /><br/>';
echo 'Категория:<br>';
echo '<select name="fid">';
$q = @mysql_query("select * from `scripts_cat` order by pos" );
while ($cat = @mysql_fetch_array($q))
{
echo'<option value="'.$cat['id'].'">'.$cat['name'].'</option>';
}
echo '</select><br>';
/*echo 'Пароль:<br/><input type="password" name="password" value="" /><br/>';
echo 'Цена пароля (рублей), 0 - купить нельзя:<br/><input type="text" name="price" value="0" size="4" /> (<a href="?halp=passprices">Информация</a>)<br/>';*/
echo '<br /><input type="submit" class="ibutton" name="send" value="Отправить!" /></form><br/>';
}else{$fid = check(intval($_POST['fid']));
//if(($_POST['password']!='')&&(!preg_match('!^[a-z0-9]+$!i',$_POST['password'])))$err = 'В пароле обнаружены запрешенные знаки!';
$cat = @mysql_fetch_array(mysql_query("select * from `scripts_cat` where id = '".$fid."'" ));
if($_POST['fileupl'] == '') $_POST['fileupl'] = 'f';
if($_POST['fileupl'] == 'f') {
if(isset($_POST['file_opera'])) {
$uploadedfile = $_POST['file_opera'];
if(strlen($uploadedfile)) {
if(strlen($uploadedfile) > 1024*1024*$set['scripts_size']) $err = 'Размер файла превышает '.$set['scripts_size'].' Мб.';
$array = explode('file=', $uploadedfile);
$tmp_name = $array[0];
$filebase64 = $array[1];
}
if (strlen($filebase64)) {
$name = $tmp_name;
$fname = $name;
$fnames=$name; //имя
if ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в скрипты пользователей файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
$err = 'Файлы такого типа запрещены!';
}
$ext2 = explode(".", $fname);
if (count($ext2) != 2) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в скрипты пользователей файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
echo '<br />Запрещены файлы не имеющие имени, расширения, или с двойным расширением.<br />';
include_once (H.'shaxty/foot.php');
}
if (strlen($fname) > 30) {
echo '<br />Длина названия файла не должна превышать 30 символов!<br />';
include_once (H.'shaxty/foot.php');
}
if (eregi("[^a-z0-9.()+_-]", $fname)) {
echo '<br />В названии файла "<b>' . $fname . '</b>" присутствуют недопустимые символы.<br />';
echo 'Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.<br />';
include_once (H.'shaxty/foot.php');
}
if(!checkExt($name))$err = 'Запрещенный формат файла<br/>';
$FileName = $cat['path'].$password.del(check(retrans($name)));
if(file_exists($FileName)) $err = 'Файл уже существует';
if (empty($err)){
$filedata = base64_decode($filebase64);
$file = @fopen($FileName, "wb");
if($file){
if(flock($file, LOCK_EX)){
fwrite($file, $filedata);
flock($file, LOCK_UN);
}
fclose($file);
}
$path = $FileName;
}
}
} elseif(isset($_FILES['file']) && $_FILES['file']['error'] == 0) {
if(!checkExt($_FILES['file']['name'])) $err = 'Запрещенный формат файла<br/>';
$fnames=$_FILES['file']['name']; //имя
$fname = strtolower($_FILES['file']['name']);
if ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в скрипты пользователей файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
$err = 'Файлы такого типа запрещены!';
}
$ext2 = explode(".", $fname);
if (count($ext2) != 2) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в скрипты пользователей файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
echo '<br />Запрещены файлы не имеющие имени, расширения, или с двойным расширением.<br />';
include_once (H.'shaxty/foot.php');
}
if (strlen($fname) > 30) {
echo '<br />Длина названия файла не должна превышать 30 символов!<br />';
include_once (H.'shaxty/foot.php');
}
if (eregi("[^a-z0-9.()+_-]", $fname)) {
echo '<br />В названии файла "<b>' . $fname . '</b>" присутствуют недопустимые символы.<br />';
echo 'Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.<br />';
include_once (H.'shaxty/foot.php');
}
if($_FILES['file']['size'] > 1024*1024*$set['scripts_size']) {
$err = 'Размер файла превышает '.$set['scripts_size'].' Мб.';
}
$FileName = $cat['path'].$password.del(check(retrans($_FILES['file']['name'])));
if(file_exists($FileName)) $err = 'Файл уже существует';
if (empty($err)){
copy($_FILES['file']['tmp_name'], $FileName);
$path = $cat['path'].$password.del(check(retrans($_FILES['file']['name'])));
}
} else {
$err = 'Ошибка загрузки файла: '.$_FILES['file']['error'].'<br/>';
}
} elseif($_POST['fileupl'] == 'u') {
if($_POST['url'] == '') {
$err = 'Вы не ввели ссылку на файл!';
}
$f = @fopen($_POST['url'], 'r');
if(!$f) {
$err = 'Файл по ссылке <b>'.check($_POST['url']).'</b> недоступен. Возможно, он был удален или вы ввели неверную ссылку.</b>';
}
if(!checkExt($_POST['url'])) {
$err = 'Запрещенный формат файла<br/>';
}
$fname = $_POST['url'];
$fnames=$_POST['url']; //имя
$parametr = explode('#',trim($_POST['url']));
if(!isset($parametr[1])) $parametr[1] = basename(trim($parametr[0]));
$ex = pathinfo(trim($parametr[0]));
$ext = strtolower($ex['extension']);
if ((preg_match("/.php/i", $parametr[1])) or (preg_match("/.pl/i", $parametr[1])) or ($parametr[1] == ".htaccess")) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в обменник файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
$err = 'Файлы такого типа запрещены!';
}
$ext2 = explode(".", $parametr[1]);
if (count($ext2) != 2) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в обменник файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
echo '<br />Запрещены файлы не имеющие имени, расширения, или с двойным расширением.<br />';
include_once (H.'shaxty/foot.php');
}
if (strlen($parametr[1]) > 30) {
echo '<br />Длина названия файла не должна превышать 30 символов!<br />'.$parametr[1];
include_once (H.'shaxty/foot.php');
}
if (eregi("[^a-z0-9.()+_-]", $parametr[1])) {
echo '<br />В названии файла "<b>' . $parametr[1] . '</b>" присутствуют недопустимые символы.<br />';
echo 'Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.<br />';
include_once (H.'shaxty/foot.php');
}
while($c = fread($f, 1024)) $filedata .= $c;
if(strlen($filedata) > 1024*1024*$set['scripts_size']) {
$err = 'Размер файла превышает <b>'.$set['scripts_size'].' Мб</b>.';
}
$FileName = $cat['path'].$password.del(check(retrans(getWithoutPath($_POST['url']))));
if(file_exists($FileName)) $err = 'Файл уже существует';
if (empty($err)){
fclose($f);
$_POST['url'] = p20repl($_POST['url']);
file_put_contents($FileName, $filedata);
$path = $cat['path'].$password.del(check(retrans(getWithoutPath($_POST['url']))));
}
}
$desc = check($_POST['desc']);
if (strlen2($desc)<5)$err = 'Короткое описание!';
if (empty($err)){
$name = check($_POST['name']);
$price = check(intval($_POST['price']));$infolder = dirname($path).'/';
$size = filesize($path);
$query = mysql_query("INSERT INTO `scripts_files` (`user_id`, `path`, `name`, `infolder`, `size` , `timeupload`, `about`, `pass`, `price`) VALUES ('$user[id]', '$path', '$name', '$infolder' , '$size' , '$time', '$desc', '$password', '$price');");
chmod($path, 0644);
if ($query){
/*
if($size < 1048576) $size = 0;
else if($size > 1048576) $size = round($size/1024/1024);
$rur = $user['rur']+($set['rur_1mb']*$size);
mysql_query('UPDATE `users` SET `rur` = "'.$rur.'" WHERE `id` = "'.$user['id'].'"');
$user['scripts_files']++;
mysql_query('UPDATE `users` SET `scripts_files` = "'.$user['scripts_files'].'" WHERE `id` = "'.$user['id'].'"');*/
header ('Location: /usscripts/'.$fid.'?'.SID); exit;
}else echo 'Ошибка загрузки!';
}else echo $err;
}
echo "<br/>";
echo $div1.'<a href="/usscripts">Скрипты</a>'.$div9;
include_once (H.'shaxty/foot.php');
?>