Naja, Xardas hat das Script zwar bereinigt aber nicht korrigiert. Die Prüfung ist so natürlich absoluter Müll, da du genau das Gegenteil herausbekommst. Es wird nicht die Endung zurück gegeben, sondern das was davor steht.
Ersetze diese Zeile:
- Code: Select all
$endung = strtolower(substr($_FILES['datei']['name'], 0, strrpos($_FILES['datei']['name'], '.') + 1));
durch diese:
- Code: Select all
$endung = strtolower(substr($_FILES['datei']['name'], strrpos($_FILES['datei']['name'], '.') + 1, strlen($_FILES['datei']['name'])));
wobei diese Prüfung natürlich dennoch totaler Blödsinn ist. Jede kann hackmich.php nach hackmich.jpg umbenennen, hochladen und dann hast den mist.
Daher solltest du den Content-Type der Datei rausfinden. Entweder mit
mime_content_type oder dem neuen
finfo_file, allerdings musst du das separat installieren (PECL) und ich hab keine Ahnung ob du das bei einem Hoster machen kannst.
mfg glitzi