Ich speichere den Pfad der .mp3-Datei in der Datenbank, aber beim Hochladen einer Datei wird die eigentliche Datei nicht hochgeladen, nur der Name und die Benutzerinformationen. hier ist die CodierungIch versuche eine Online-Musikbibliothek zu erstellen, wo der Administrator Musikdateien hochladen kann
<?php
if($_POST[ins])
{
@mkdir("songs");
$spath="songs/".time()."-".$_FILES[sonsor][name];
copy($_FILES[sonsor][tmp_name],$spath);
$son="insert into `songs` values('','$_POST[sonam]','$_POST[soalmoi]','$spath')";
//echo $s;
mysql_query($son);
header("location:songs.php?");//action=show&msg=va
}
?>
<form method="POST" action="" enctype="multipart/form-data">
<table>
<tr>
<td>Song Name</td>
<td><input type="text" name="sonam"></td>
</tr>
<tr>
<td>Album/Movie</td>
<td><input type="text" name="soalmoi"></td>
</tr>
<tr>
<td>Song File</td>
<td><input type="file" name="sonsor"></td>
</tr>
<tr>
<td><input type="submit" name="ins"></td>
</tr>
</table>
</form>
der Dateipfad aktualisiert aber die eigentliche MP3-Datei fertig wird nicht in die Lieder Ordner
Ihr Code ist ** weit offen für SQL-Injection-Angriffe. Verwenden Sie parametrisierte Abfragen mit PDO oder ähnlichem, um dieses Problem zu beheben. Außerdem erlauben Sie dem Client, Dateinamen auf der Festplatte anzugeben, was keine gute Idee ist. Jemand könnte 'somethingevil.php' hochladen und effektiv tun, was immer Sie wollten mit Ihrem Server. Lassen Sie den Client niemals den Dateinamen steuern. Schließlich sollte Ihr 'Location:' - Header eine vollständige URL sein, um den Spezifikationen zu entsprechen. Eine relative URL ist nicht ausreichend, wird aber mit den meisten Browsern funktionieren. – Brad