Hallo alle miteinander. Ich habe mit unten stehendem Code folgendes Problem:
Das ganze dient, wie unschwer zu erkennen dazu Dateien auf den Server zu laden, wobei der Pfad je nach Endung und Inhalt im Dateinamen variiert. Ursprünglich wollte ich die Endungen über MIME filtern lassen, hab dass allerdings wieder verworfen, da anscheinden manche Browser da garnichts mitsenden. Jedenfalls war bei den Tests $_FILES["file"]["typ"] immer leer.
Nun zum Problem. Es wird anscheinend jede Datei durchgelassen, absolut egal wie die Endung ist. Abgelehnt wird sie erst dort, wo der Dateiname auf Bestandteile wie "-w_b" überprüft wird. Der Teil scheint wie gewollt zu funktionieren. ($fault=1 wird gesetzt, $fault=2 nie)
Ich hab nun also schon filtern der Dateiendung über MIME, strpos auf .gif etc. und nun über die dort stehende Variante probiert, aber es scheint alles nicht zu funktionieren. Vermutlich ist es irgendetwas simples, was ich einfach nicht sehe, aber ich bin nun echt mit meinem PHP am Ende.
Das ganze dient, wie unschwer zu erkennen dazu Dateien auf den Server zu laden, wobei der Pfad je nach Endung und Inhalt im Dateinamen variiert. Ursprünglich wollte ich die Endungen über MIME filtern lassen, hab dass allerdings wieder verworfen, da anscheinden manche Browser da garnichts mitsenden. Jedenfalls war bei den Tests $_FILES["file"]["typ"] immer leer.
Nun zum Problem. Es wird anscheinend jede Datei durchgelassen, absolut egal wie die Endung ist. Abgelehnt wird sie erst dort, wo der Dateiname auf Bestandteile wie "-w_b" überprüft wird. Der Teil scheint wie gewollt zu funktionieren. ($fault=1 wird gesetzt, $fault=2 nie)
Ich hab nun also schon filtern der Dateiendung über MIME, strpos auf .gif etc. und nun über die dort stehende Variante probiert, aber es scheint alles nicht zu funktionieren. Vermutlich ist es irgendetwas simples, was ich einfach nicht sehe, aber ich bin nun echt mit meinem PHP am Ende.
PHP-Code:
if(isset($_POST[upload_submit]))
{
if(isset($_FILES["file"]) && !$_FILES["file"]["error"])
{
// -------- permitted file-extensions for upload
$permitted_ext=array(".jpg",".gif",".csv");
$file_ext=strtolower(substr($_FILES["file"]["name"], strpos('.', $_FILES["file"]["name"])));
if(isset($fault)){unset($fault);}
if(in_array($file_ext, $permitted_ext))
{
if(strpos($_FILES["file"]["name"], "-w_b")!==false){$filepath=$_folder["1"];}
elseif(strpos($_FILES["file"]["name"], "-w_s")!==false){$filepath=$_folder["2"];}
elseif(strpos($_FILES["file"]["name"], "-m_b")!==false){$filepath=$_folder["3"];}
elseif(strpos($_FILES["file"]["name"], "-m_s")!==false){$filepath=$_folder["4"];}
if(strpos($_FILES["file"]["name"], "whisky")!==false || strpos($_FILES["file"]["name"], "monin")!==false){$filepath=$_folder["5"];}
else{$fault=1;}
}
else
{
$fault=2;
}
if(!isset($fault))
{
move_uploaded_file($_FILES["file"]["tmp_name"], $filepath.$_FILES["file"]["name"]);
echo TEXT_UPLOAD_DONE1.": ".$filepath.$_FILES["file"]["name"]." ".TEXT_UPLOAD_DONE2;
}
else
{
if($fault=1){echo"<br><center>".TEXT_UPLOAD_NONAME."</center>";}
elseif($fault=2){echo"<br><center>".TEXT_UPLOAD_UNKNOWN."</center>";}
else{echo"<br><center>".TEXT_UPLOAD_FAULT."</center>";}
}
}
else
{
echo"Fehler!";
}
}
echo"<br><form enctype=\"multipart/form-data\" action=\"index.php?page=6&spage=4&panel=1&lang=".$_GET["lang"]."\" method=\"post\">
<table width=\"300px\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">
<tr>
<td width=\"300px\" align=\"center\">".TEXT_UPLOAD_DATA.": <input name=\"file\" type=\"file\">
</td>
</tr>
<tr>
<td width=\"300px\" align=\"center\">
<input type=\"submit\" name=\"upload_submit\" value=\"".TEXT_UPLOAD_BUTTON_1."\">
</tr></table></form>";
Kommentar