Файл: usscripts/upload.php
Строк: 124
<?
require '../config.php';
$title='Скрипты пользователей';
include '../style/head.php';
who_add(0,'us');
aut();
$ip = preg_replace('|[^0-9.]|', '', $_SERVER['REMOTE_ADDR']);
$ip=mysql_escape_string(stripslashes(htmlspecialchars($ip)));
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 del($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 $div3.'<a href="/usscripts">Скрипты</a>|<b>Добавить файл</b>'.$div9;
$act = check($_GET['act']);
if (empty($act)){
if ($user['version']==1){
echo 'Загрузка файлов доступна только в xHTML версии!';
echo "<br/>";
echo $div1.'<a href="/usscripts">Скрипты</a>'.$div9;
include '../style/foot.php';
exit();
}
echo '<b>Перед загрузкой ознакомтесь с правилами:</b><br />
<b>1</b>) Запрещенно загружать файлы в несоответствующюю им категорию.<br />
<b>2</b>) В описании запрещено использовать нецензурную лексику.<br />
<b>3</b>) Запрещено выкладывать файлы с шеллами и т.п.!<br />
<b>4</b>) Запрещено выкладывать файлы которые уже есть в нашем <a href="/fo/">Архиве файлов</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">Загрузить файл</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/>';*/
$chislo=rand(1000,9999);
mysql_query("DELETE FROM `chislo` WHERE `ip` = '".$ip."'");
mysql_query("INSERT INTO `chislo` (chislo,ip) values('$chislo','".$ip."')");
echo ' <b>'.$chislo.'</b><br/><b>*</b>Проверочный код:<br/>
<input type="text" name="code" size="4" maxlength="4" title="code"/><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;
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/>';
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/>';
}
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 = 'Короткое описание!';
$online = mysql_fetch_array(mysql_query("SELECT * FROM `chislo` WHERE `ip` = '".$ip."'"));
if($online['chislo'] != intval($_POST['code']))$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 '../style/foot.php';
?>