Проблем с качване на mp3

  • Автор Автор Anonymous
  • Начална дата Начална дата
A

Anonymous

Guest
В миналата тема, прибързах да дам точка на Evolution, защото той оправи това което исках, но изникна ново.

Сега вкарва в url както си е, абе в таблицата всичко е на шест, обаче видях, че самата песен не се качва в папка song. Дори не се качва на хоста.
 
PHP:
<?php
include "config.php";
if ($_SESSION['username']) 
                {
                        echo "&nbsp&nbsp&nbsp&nbsp&nbsp<b>Добавяне на MP3</b><br><br><center>
                                <strong><span style='color: red;'><u>ВНИМАНИЕ:</u> Български изпълнители и български песни се пишат на КИРИЛИЦА!</span></strong><br />
                                <span style='color:black;'>Полетата маркирани с <span style='color:red;'>*</span> са задължителни!</span>
                                <form action='' method='post' enctype='multipart/form-data'><table style='color:lightblue;'><tr><td><span style='color:red;'>*</span>Песен: </td></tr><tr><td> <input style='width: 200px;' class=\"userinput\" type='text' name='song' value='Име и изпълнител' onclick=\"this.value='';\"  /></td></tr>";

                        echo "</select></td</tr>";
                        echo "<tr><td><span style='color:red;'>*</span>Избиране на файл:</td></tr><tr><td><input type='file' class='intext' name='song' class='user' style='width:380px;height:20px;'/></td><td></td></tr>
                                <tr><td><input type='submit' value='Готов съм!' name='submit'></td></tr>
                                </table></form><hr style='color: orange;' width='350px'></center>";
                        $song = htmlspecialchars($_POST['song']);
                         $add_by = $_SESSION['username'];
                          $username = $_SESSION['username'];
                                if(isset($_POST['submit'])) 
                        {
                        $type = $_FILES['song']['type'];
                        $files = $_FILES['song']['tmp_name'];
                        $names = $_FILES['song']['name'];
                        $size = $_FILES['song']['size'];
                        if($files != NULL || $song != NULL)
                        {
                                $rand = "song" . rand(0000, 9999) . "-" .rand(00, 99);
                                $fil = array('mp3');
                                $fil2 = end(explode('.', $names));
                                $path = "song/".$rand.".".$fil2;
                                $fileu = $rand. ".".$fil2; 
                                if(in_array($fil2, $fil)) 
                                {
                                        move_uploaded_file($files, $path)
                                         $msg = "Успешно качи песента!";
                                         $username = $_SESSION['username'];
mysql_query("INSERT INTO songs (`song`,`thumb`,`add_by`,`url`,`visited`,`odobril`,`accepted`) VALUES ('$song','$song', '$username', '$fileu', '0', 'Няма информация...', 'no')") or die(mysql_error()); 
                                        echo "<br><br><br><br><span style='color:red;'><center>Песента <strong>$song</strong> е качена успешно!<Br> <b> След одобрение, ще получиш доларите си.</span><br />";
                                } 
                                else 
                                {
                                        $msg = "Форматът трябва да е .mp3!";
                                }

                        }
                        }
                }
                                else
                                {
                                        echo "<br><br><br><br><center>Не си логнат!</center>";
                                }
 ?>
 
PHP:
<?php
include "config.php";
if ($_SESSION['username']) 
                {
                        echo "&nbsp&nbsp&nbsp&nbsp&nbsp<b>Добавяне на MP3</b><br><br><center>
                                <strong><span style='color: red;'><u>ВНИМАНИЕ:</u> Български изпълнители и български песни се пишат на КИРИЛИЦА!</span></strong><br />
                                <span style='color:black;'>Полетата маркирани с <span style='color:red;'>*</span> са задължителни!</span>
                                <form action='' method='post' enctype='multipart/form-data'><table style='color:lightblue;'><tr><td><span style='color:red;'>*</span>Песен: </td></tr><tr><td> <input style='width: 200px;' class=\"userinput\" type='text' name='song' value='Име и изпълнител' onclick=\"this.value='';\"  /></td></tr>";

                        echo "</select></td</tr>";
                        echo "<tr><td><span style='color:red;'>*</span>Избиране на файл:</td></tr><tr><td><input type='file' class='intext' name='song' class='user' style='width:380px;height:20px;'/></td><td></td></tr>
                                <tr><td><input type='submit' value='Готов съм!' name='submit'></td></tr>
                                </table></form><hr style='color: orange;' width='350px'></center>";
                        $song = htmlspecialchars($_POST['song']);
                         $add_by = $_SESSION['username'];
                          $username = $_SESSION['username'];
                                if(isset($_POST['submit'])) 
                        {
                        $type = $_FILES['song']['type'];
                        $files = $_FILES['song']['tmp_name'];
                        $names = $_FILES['song']['name'];
                        $size = $_FILES['song']['size'];
                        if($files != NULL || $song != NULL)
                        {
                                $rand = "song" . rand(0000, 9999) . "-" .rand(00, 99);
                                $fil = array('mp3');
                                $fil2 = end(explode('.', $names));
                                $path = "/song/".$rand.".".$fil2;
                                $fileu = $rand. ".".$fil2; 
                                if(in_array($fil2, $fil)) 
                                {
                                         move_uploaded_file($files, $path)
                                         $msg = "Успешно качи песента!";
                                         $username = $_SESSION['username'];
mysql_query("INSERT INTO songs (`song`,`thumb`,`add_by`,`url`,`visited`,`odobril`,`accepted`) VALUES ('$song','$song', '$username', '$fileu', '0', 'Няма информация...', 'no')") or die(mysql_error()); 
                                        echo "<br><br><br><br><span style='color:red;'><center>Песента <strong>$song</strong> е качена успешно!<Br> <b> След одобрение, ще получиш доларите си.</span><br />";
                                } 
                                else 
                                {
                                        $msg = "Форматът трябва да е .mp3!";
                                }

                        }
                        }
                }
                                else
                                {
                                        echo "<br><br><br><br><center>Не си логнат!</center>";
                                }
 ?>
:idea:
 
nfarkt каза:
Отново. :cry:
Да не би да си разрешил само 2MB и затова да не може? Смисъл променил ли си php.ini?

PHP:
<?php
include "config.php";
if ($_SESSION['username']) 
                {
                        echo "&nbsp&nbsp&nbsp&nbsp&nbsp<b>Добавяне на MP3</b><br><br><center>
                                <strong><span style='color: red;'><u>ВНИМАНИЕ:</u> Български изпълнители и български песни се пишат на КИРИЛИЦА!</span></strong><br />
                                <span style='color:black;'>Полетата маркирани с <span style='color:red;'>*</span> са задължителни!</span>
                                <form action='' method='post' enctype='multipart/form-data'><table style='color:lightblue;'><tr><td><span style='color:red;'>*</span>Песен: </td></tr><tr><td> <input style='width: 200px;' class="userinput" type='text' name='song' value='Име и изпълнител' onclick="this.value='';"  /></td></tr>";

                        echo "</select></td</tr>";
                        echo "<tr><td><span style='color:red;'>*</span>Избиране на файл:</td></tr><tr><td><input type='file' class='intext' name='song' class='user' style='width:380px;height:20px;'/></td><td></td></tr>
                                <tr><td><input type='submit' value='Готов съм!' name='submit'></td></tr>
                                </table></form><hr style='color: orange;' width='350px'></center>";
                        $song = htmlspecialchars($_POST['song']);
                         $add_by = $_SESSION['username'];
                          $username = $_SESSION['username'];
                                if(isset($_POST['submit'])) 
                        {
                        $type = $_FILES['song']['type'];
                        $files = $_FILES['song']['tmp_name'];
                        $names = $_FILES['song']['name'];
                        $size = $_FILES['song']['size'];
                        if($files != NULL || $song != NULL)
                        {
                                $rand = "song" . rand(0000, 9999) . "-" .rand(00, 99);
                                $fil = array('mp3');
                                $fil2 = end(explode('.', $names));
                                $path = "/song/".$rand.".".$fil2;
                                $fileu = $rand. ".".$fil2; 
                                if(in_array($fil2, $fil)) 
                                {
                                         move_uploaded_file($files, $path);
print_r($_FILES['song']['error']);
                                         $msg = "Успешно качи песента!";
                                         $username = $_SESSION['username'];
mysql_query("INSERT INTO songs (`song`,`thumb`,`add_by`,`url`,`visited`,`odobril`,`accepted`) VALUES ('$song','$song', '$username', '$fileu', '0', 'Няма информация...', 'no')") or die(mysql_error()); 
                                        echo "<br><br><br><br><span style='color:red;'><center>Песента <strong>$song</strong> е качена успешно!<Br> <b> След одобрение, ще получиш доларите си.</span><br />";
                                } 
                                else 
                                {
                                        $msg = "Форматът трябва да е .mp3!";
                                }

                        }
                        }
                }
                                else
                                {
                                        echo "<br><br><br><br><center>Не си логнат!</center>";
                                }
 ?>
 
Неограничено е качването.

Ето ми php.ini :D

PHP:
disable_functions = 
safe_mode = Off
open_basedir = Off
register_globals = On
 
Код:
$path = "/song/" . $rand . "." . $fil2;

=>


Код:
$path = "/song/" . $rand . "." . $fil2;
if(!is_dir($path)) {
    @mkdir($path, 0777, 'nested');
}
 
Здрасти ако искаш мога да ти напиша, да ти дам друг код работещ със огромни защити от нежелани обекти :)
 
IvayloGoranov каза:
Здрасти ако искаш мога да ти напиша, да ти дам друг код работещ със огромни защити от нежелани обекти :)
Е сподели го този тей защитен код и на нас.. :idea:
 
Код:
<?php
@session_start();
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = " http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF' ]);
$url_this = " http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF' ];

// Къде да се записват качените файлове?

$upload_dir = "files/";
$upload_url = $url_dir."/files/";
$message ="log.txt";
/************************************************************
Създава директория за качените файлове
************************************************************/
if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("няма папка за качените файлове и не можах да създам такава");
if (!chmod($upload_dir,0755))
die ("не можах да сменя правата на 755");
}
/************************************************************
Обслужва заявката на потребителя
************************************************************/
if ($_REQUEST[del]) { 
print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
}
else if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
print "<script>window.location.href='$url_this?message=$message'</script>";
}
else if (!$_FILES['userfile']);
else
$message = "Invalid File Specified.";

/************************************************************
Списък с файлове
************************************************************/
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
$filelist .= "<br><a href='$upload_dir$file'>".$file."</a>";
}
}
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_type = $_FILES['']['exe'];
$file_type = $_FILES['']['mp3'];
$file_type = $_FILES['']['avi'];
$file_type = $_FILES['']['mp3u'];
$file_type = $_FILES['']['php'];
$file_type = $_FILES['']['html'];
$file_type = $_FILES['']['*.*'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;

//File Name Check
if ( $file_name =="") {
$message = "Невалиден тип файл";
return $message;
}
//File Size Check
else if ( $file_size > 999999999999999999999) {
print $file_size;
$message = "Размера на файла е много голям.";
return $message;
}
else if (end(explode(".",$file_name)) != "mp3") { $message = "Можете да качвате само mp3 файлове!"; return $message; }
//File Type Check
else if ( $file_type == "text/plain"
|| $file_type == "application/force-download"
|| $file_type == "application/octet-stream") {
$message = "Не може да качвате скриптови файлове";
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0755))
$message = "не можах да сменя правата на 755";
else
$message = ($result)?"$file_name($file_type) файла качен успешно." :
"Каченият файл е повреден.";
return $message;
}
?>
<table style="width: 40%" align="center" valign="top">
<tr>
<td>
<div align="center" style="font-size: 19px; font-weight: bold">
</table>
<body bgcolor="#667987"><center>
<font color=red><?=$_REQUEST[message]?></font>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
<b>Хващаш химикала, и върху листа римата изписваш. После хващаш микрофона и трака записваш, и с bgrapar.com го споделяш, и със неизвестността се разделяш.</b><br /><br />
Качи фаил: <input type="file" id="userfile" name="userfile" size="20">
<input type="submit" name="upload" value="Качи трака!">
</form>

<b>До сега потребителите ни са качили следните файлове:</b>
<hr style="color:yellow; background-color:black; height:1px;
margin-right:0; text-align:right; border:0px">
<?=$filelist?>
</center>
<?
if ($_REQUEST[debug]==1) print "------------------Debugging Info----------------<br>";
if ($_REQUEST[debug]==1) print "site=$site_name<br>dir=$url_dir<br>url=$url_this<br>";
if ($_REQUEST[debug]==1) print "upload dir=$upload_dir<br>upload url=$upload_url<br>";
?>
 
nfarkt каза:
Неограничено е качването.

Ето ми php.ini :D

PHP:
disable_functions = 
safe_mode = Off
open_basedir = Off
register_globals = On

1. register_globals трябва задължително да ти е off.

2. file_max_size е променливата която ти трябва и post_max_size а не тези които ти си дал.

3. Сложи следният код най-горе при започване на обработката на файла в php скрипта ти.


if( $_FILES["file"]["error"] > 0 ){
echo "Error number: " . $_FILES["file"]["error"]; }

и кажи дали ти показва грешката и кое число е.
 
Ето кавко ми излиза в страницата.

1



Песента T-pain feat. Chris Brown - The Best Love Song1 е качена успешно!
След одобрение, ще получиш доларите си.
 
Array ( [song] => Array ( [name] => T-pain feat. Chris Brown - The Best Love Song.mp3 [type] => [tmp_name] => [error] => 1 [size] => 0 ) ) 1



Песента T-pain feat. Chris Brown - The Best Love Song1 е качена успешно!
След одобрение, ще получиш доларите си.
 

Back
Горе