<?
/*
=====================================================
 Volkov NET!! - by SaNcHeS Group 
-----------------------------------------------------
 http://AllForCS.RU/
-----------------------------------------------------
 Copyright (c) 2009 SaNcHeS Group
=====================================================
 Данный код защищен авторскими правами
=====================================================
 Файл: upload.php
-----------------------------------------------------
 Назначение: Загрузка файлов
=====================================================
*/
include("./../inc/config.php");
include("./html.php");
include("./../inc/info.php");
include("./../inc/id3v2.php");


function rm_tmp($dir)
{
if (!$dir) return;
@$d = opendir ($dir);
while (($e=readdir($d))!== false)
{
if ($e=="." || $e==".." || !$e) continue;
}
@rmdir($dir);
@closedir($dir);
@opendir("./");
}


function fsize($str_size){
if ($str_size != ""){
$str_size=(int)$str_size;
$mpd="./../m3_files/".get_dir($str_size)."/".$str_size.".mp3";
@$blya=(int)(@filesize($mpd)/1024);
@$blya=$blya/1024;
list($mb,$kb) = @explode(".",$blya);
@$kb = substr($kb, 0, 2);
if ($kb==""){$kb="00";}
@$blyxa=$mb.".".$kb." Mb";
return($blyxa);
}
}

if ($_GET['info'] == 'wget'){
print <<<vivod
<link rel="stylesheet" href="../inc/comments.css" type="text/css">
<body bgcolor=#FFFFF4><table cellpadding="10" cellspacing="10" width="100%" height="100%"><tr><td valign="top"><p align="left">
Если вы когда нибудь работали под unix, то наверняка знаете для чего предназначена программка wget. Функции теже! В поле WGET вы вводите прямую ссылку (http или ftp) на mp3 файл и сервер пытается его закачать на сайт. Преимущества - мелкий траффик в сторону пользователя и высокая скорость загрузки. Недостатки - бывает mp3 файл размещен на серверах со слабеньким каналом и по этому время загрузки файла сервером может достигать нескольких минут, бывает что загрузка файла не заканчивается успехом.
</p></td></tr></table>
vivod;
exit;}

echo $HEAD;
echo $STYLE;
echo $BODY;

if ($_GET['event'] == 'thx'){
print "&nbsp; &nbsp;Файл успешно добавлен в базу.<br>";
if ($prava < 2){print "&nbsp; &nbsp;Он появится на сайте после проверки администратором";}
exit;
}


if ($_GET['event'] == 'upload' && $_POST['gruju']){

function safe_sql($string)
{
$string = str_replace ("<", "&lt;", $string);
$string = str_replace (">", "&gt;", $string);
$string = str_replace ('"', "&quot;", $string);
$string = str_replace ("'", "&quot_;", $string);
$string = str_replace ("\r", "", $string);
$string = str_replace ("\n", "", $string);
$string = str_replace ("%", "&#37;", $string);
$string = str_replace ("!", "&#33;", $string);
$string = str_replace ("^ +", "", $string);
$string = str_replace (" +$", "", $string);
$string = str_replace (" +", " ", $string);
$string = str_replace ("|", "l", $string);
return ($string);
}

// Проверяем наличие данных
if ($_POST['myartist'] == ""){$aut_error .= "<br><br>Не заполнено одно из обязательных полей.";}
if ($_POST['mytitle'] == ""){$aut_error .= "<br><br>Не заполнено одно из обязательных полей.";}
$w_artist=safe_sql($_POST['myartist']);
$w_track=safe_sql($_POST['mytitle']);

// Проверяем на дубли
$leed = mysql_query("SELECT * FROM `m3_mp3` WHERE `artist` LIKE  '%".$w_artist."%' AND `track` LIKE '%".$w_track."%';") or die (mysql_error());
if ($leed && mysql_num_rows($leed)>0){
$aut_error .= "<br><br>Данная песня уже присутсвует на сайте.";
@unlink($HTTP_POST_FILES['myfile']['tmp_name']);
}

include("./../inc/info.php");

if ($_POST['wget'] != ""){
@rm_tmp("./../m3_temp/");
@mkdir("./../m3_temp/");
@chmod("./../m3_temp/", 0777);
$wwget=str_replace("|","",$_POST['wget']);
$temp="tmp/".rand(54645,653635).".mp3";
system("wget -O ".$temp." '".$wwget."'");
}else{
if ($HTTP_POST_FILES['myfile']['error'] == 0){
$file = $HTTP_POST_FILES['myfile']['name'];
$temp = $HTTP_POST_FILES['myfile']['tmp_name'];
}else{$aut_error .= "<br><br>Неудачная загрузка файла.";}}

// Заменяем опасные спец. символы
// Вырезаем пробелы в начале и в конце
// Первая буква каждого слова - заглавная, остальные строчные
$w_artist=safe_sql($_POST['myartist']);
$w_artist=strtolower($w_artist);
$w_artist=trim($w_artist);
$w_artist=ucwords($w_artist);
$w_title=safe_sql($_POST['mytitle']);
$w_title=strtolower($w_title);
$w_title=trim($w_title);
$w_title=ucwords($w_title);


// Ваши права? - ROOT :)
if ($prava == 0){$w_active = "0";}
if ($prava == 1){$w_active = "0";}
if ($prava == 2){$w_active = "1";}

// Проверяем тэги
//@$id3 = new id3($temp);
//@$artist = $id3->artist();
//@$title = $id3->title();
//@$bitrate = $id3->bitrate();

//if ($bitrate != ""){if ($bitrate < 128){$aut_error .= "<br><br>Битрейт песни ниже 128 kbps.";}}
//if ($artist == "" or $title == ""){$aut_error .= "<br><br>Не заполнены обязательные тэги в mp3 файле.";}

include("./../inc/info.php");

// Заносим информацию в MySQL
@$result = mysql_query("INSERT INTO `m3_mp3` ( `id`, `active`, `artist`, `track`, `uploader`, `date`, `count`, `ip`, `size`, `notice` ) VALUES ( '', '$w_active', '$w_artist', '$w_track', '$username', '".date("Y-m-d")."',  '0', '".$HTTP_SERVER_VARS["REMOTE_ADDR"]."', '".fsize($temp)."', '' )") || die (mysql_error());
$new_id = mysql_insert_id();
@mkdir("./../m3_files/".get_dir($new_id)."/");
$nf="./../m3_files/".get_dir($new_id)."/".$new_id.".mp3";

// Присваиваем файлу нормальное имя в соответствии с id MySQL
@move_uploaded_file($temp, "$nf");
@copy($temp, $nf);
@unlink($temp);
@mkdir("./../m3_mini/".get_dir($new_id));
@system("./../lame/bin/lame -b 8 -f -m m ./../m3_files/".get_dir($new_id)."/".$new_id.".mp3 ./../m3_mini/".get_dir($new_id)."/".$new_id.".mp3");
echo "<br>./../lame/bin/lame -b 8 -f -m m ./../m3_files/".get_dir($new_id)."/".$new_id.".mp3 ./../m3_mini/".get_dir($new_id)."/".$new_id.".mp3";
if (!file_exists("./../m3_files/".get_dir($new_id)."/".$new_id.".mp3")){echo "<br>FILE NOT FOUND!";}
@chmod($nf, 0444);

// Если хватает прав, то перегенериваем страницы
if ($w_active == 1){
include("./../m3_admin/generator.php");
@generate_filesize($new_id); 
@generate_new_mp3();
@generate_new();
@generate_pop_mp3();
@generate_viewers($new_id, $new_id);
}

// Благодарим юзверя
?>
<meta http-equiv="refresh" content="0;url=upload.php?event=thx">
<?
exit;}




if (!$_GET['event']){
print <<<vivod
&nbsp; &nbsp;Внимание! Вся закачиваемая музыка должна быть только в формате mp3 с битрейтом<br>
не ниже 128 kbps, и обязательно прописанны тэги ID3v1 или ID3v2 (их можно прописать<br>
например в плеере winamp, сочетание клавиш Alt + 3), достаточно прописать только<br>
исполнителя и название песни. Если не получается закачать, повторите попытку позднее,<br>
если опять ничего не вышло значит не судьба.<br><br>


<script language="JavaScript">
<!--
function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'yes';
  resizable_str = resizable ? 'yes' : 'no';
  if (name == 'artist')window.open(url+'?artist='+document.forms[0].myartist.value, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
  if (name == 'title')window.open(url+'?title='+document.forms[0].mytitle.value, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
  if (name == 'info')window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}
// -->
</script>


<form name='load_mp3' enctype='multipart/form-data' action='?event=upload' method=post>
<table width="450" cellpadding="0" cellspacing="0" align="left">
<tr>
<td width="110" nowrap>
<p>Исполнитель:<font color="red">*</font></p>
</td>
<td width="10">
<p></p>
</td>
<td height="25">


<p><input type="text" name="myartist" maxlength="50" size="27"> <a href="javascript:na_open_window('artist', 'chk.php', 100, 100, 400, 250, 0, 0, 0, 1, 0)" target="_self">проверить</a></p></td>

</tr>
<tr>
<td nowrap>
<p>Название:<font color="red">*</font></p>
</td>
<td width="10" nowrap>
</td>
<td>
<p><input type="text" name="mytitle" maxlength="50" size="27"> <a href="javascript:na_open_window('title', 'chk.php', 100, 100, 400, 250, 0, 0, 0, 1, 0)" target="_self">проверить</a></p>
</td>
</tr>
<tr>
<td nowrap>
<p>Файл:<font color="red">*</font></p>
</td>
<td width="10" nowrap>
</td>
<td height="25">
<p><input type="file" name="myfile" size="27"></p>
</td>
</tr>
vivod;

if ($prava == 2){echo "<tr><td nowrap><p><a href=\"javascript:na_open_window('info', 'upload.php?info=wget', 100, 100, 400, 250, 0, 0, 0, 1, 0)\">WGET</a>:</p></td><td width='10' nowrap></td><td><p><input type='text' name='wget' size='42'></p></td></tr>";}

print <<<vivod
<tr>
<td>
</td>
<td width="10" nowrap>
</td>
<td height="30">
<p><input type="submit" name="gruju" value="Загрузить"> <input type="reset" name="rezet" value="Очистить"></p>
</td>
</tr>
</table>
</form>
vivod;
}



echo $FOOT;
@mysql_free_result();
@mysql_close();
?>
