ویرایش تگ ام پی تری
Mp3 Tag Editor
1024 && $i<$total;$i++){
$size/=1024;
}
return round($size,$round).$sizes[$i];
}
$default_mp3_directory = "./".jdate('y/m/d/');
$default_mp3_address = "./".jdate('y/m/d/');
$default_filename_prefix = ".mp3";
$default_songname_prefix = " ( ahaang.com )";
$default_comment = "@ahaang";
$default_artist = "";
$default_album = "( ahaang.com )";
// دیفالت سال به صورت داینامیک بر اساس سال میلادی فعلی تنظیم شد
$default_year = date("Y");
$default_genre = "@ahaang";
if(isset($_POST['submit'])){
// اصلاح اول: ساخت و بررسی پوشههای تاریخ با دسترسی 02775
$directoryParts = explode('/', trim($default_mp3_directory, '/'));
$currentDirectory = '.';
$requiredPermissions = 02775;
foreach ($directoryParts as $part) {
if ($part === '' || $part === '.') {
continue;
}
$currentDirectory .= '/' . $part;
$safeDirectory = htmlspecialchars(
$currentDirectory,
ENT_QUOTES,
'UTF-8'
);
clearstatcache(true, $currentDirectory);
if (!is_dir($currentDirectory)) {
$created = @mkdir($currentDirectory, 0775);
clearstatcache(true, $currentDirectory);
// اگر درخواست دیگری همزمان پوشه را ساخته باشد، ادامه بده
if (!$created && !is_dir($currentDirectory)) {
exit('
ساخت پوشه انجام نشد: ' . $safeDirectory . '
');
}
}
$permissions = @fileperms($currentDirectory);
// chmod تحت تأثیر umask نیست؛ پوشه با مجوز درست تغییر نمیکند
if ($permissions === false
|| ($permissions & 07777) !== $requiredPermissions) {
if (!@chmod($currentDirectory, $requiredPermissions)) {
exit(
'
تنظیم دسترسی 02775 برای پوشه انجام نشد: '
. $safeDirectory
. '؛ مالکیت و مجوز تغییر دسترسی را بررسی کنید.
'
);
}
}
clearstatcache(true, $currentDirectory);
$permissions = @fileperms($currentDirectory);
if ($permissions === false
|| ($permissions & 07777) !== $requiredPermissions) {
exit(
'
سرور دسترسی 02775 را برای این پوشه اعمال نکرد: '
. $safeDirectory
. '
'
);
}
}
// پایان اصلاح ساخت پوشه
$mp3_filepath = $_POST['mp3_filepath'];
$mp3_filename = $_POST['mp3_filename'];
$mp3_songname = $_POST['mp3_songname'];
$mp3_comment = $_POST['mp3_comment'];
$mp3_artist = $_POST['mp3_artist'];
$mp3_album = $_POST['mp3_album'];
$mp3_year = $_POST['mp3_year'];
$mp3_genre = $_POST['mp3_genre'];
if(filter_var($mp3_filepath,FILTER_VALIDATE_URL)){
if($mp3_filename!=""){
$mp3_filename = str_replace(DIRECTORY_SEPARATOR,"-X-",$mp3_filename);
// رفع خطای Notice برای end(explode)
$filepath_parts = explode(".",basename($mp3_filepath));
if(strtolower(end($filepath_parts))!="mp3"){
exit("
آدرس بایل با فرمت MP3 باشد.
");
}
$filename_parts = explode(".",basename($mp3_filename));
if(strtolower(end($filename_parts))!="mp3"){
exit("
نام فایل باید پسوند MP3 داشته باشد.
");
}
$sname = $default_mp3_directory.$mp3_filename;
// اصلاح دوم: دامنه ثابت فقط برای لینک خروجی، با حفظ مسیر
$script_url_directory = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/');
$download_url = 'https://dl.ahaang.com'
. $script_url_directory
. '/'
. substr($default_mp3_directory, 2)
. rawurlencode($mp3_filename);
$download_href = htmlspecialchars($download_url, ENT_QUOTES, 'UTF-8');
if(copy($mp3_filepath,$sname)){
$size = friendly_size(filesize($sname));
echo"
فایل زیر به آدرس :
به آدرس زیر کپی شد :
";
$mp3_tagformat = 'UTF-8';
require_once('getid3/getid3.php');
$mp3_handler = new getID3;
$mp3_handler->setOption(array('encoding'=>$mp3_tagformat));
require_once('getid3/write.php');
$mp3_writter = new getid3_writetags;
$mp3_writter->filename = $sname;
$mp3_writter->tagformats = array('id3v1', 'id3v2.3');
$mp3_writter->overwrite_tags = true;
$mp3_writter->tag_encoding = $mp3_tagformat;
$mp3_writter->remove_other_tags = true;
$mp3_data['title'][] = $mp3_songname;
$mp3_data['artist'][] = $mp3_artist;
$mp3_data['album'][] = $mp3_album;
$mp3_data['year'][] = $mp3_year;
// رفع اشتباه تایپی: جایگزینی mp3_year با mp3_genre
$mp3_data['genre'][] = $mp3_genre;
$mp3_data['comment'][] = $mp3_comment;
if($_FILES['mp3_image']['error']==0 && $_FILES['mp3_image']['size']>0)
{
if(in_array($_FILES['mp3_image']['type'],array("image/png","image/jpeg","image/gif"))){
$mp3_data['attached_picture'][0]['data'] = file_get_contents($_FILES['mp3_image']['tmp_name']);
$mp3_data['attached_picture'][0]['picturetypeid'] = 3;
$mp3_data['attached_picture'][0]['description'] = $_FILES['mp3_image']['name'];
$mp3_data['attached_picture'][0]['mime'] = $_FILES['mp3_image']['type'];
}
else{
echo"
تصویر ناسازگار است.
";
}
}
$mp3_writter->tag_data = $mp3_data;
if($mp3_writter->WriteTags()) {
echo"
ویرایش تگ با موفقیت انجام شد.
";
}
else{
echo"
Failed to write tags!
".implode("
",$mp3_writter->errors);
}
}
else{echo"
امکان کپی فایل مقدور نیست.
";}
}
else{echo"
نام فایل خالی است.
";}
}
else{echo"
مسیر فایل اشتباه است.
";}
}
else{
?>