|
Windows Se7en
|
| Titel: MIME-Type |
06.03.2009 14:20 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Hallo, welchen MIME-Type bzw. welche MIME-Typen braucht man, um alle Web-Dokumente beim Upload zu verbieten? Also alle Arten von Webdokumenten. Gruss und danke im Vorraus, Windows Se7en
|
 |
|
| |
|
L3oop
|
| Titel: MIME-Type |
06.03.2009 14:25 |
|
Moderator 45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
 |
Experte |
|
Hallo,
also du hast ein Uploadscript und willst Dateien verbieten?
Mach es z.B. so:
<?php
$dateiname = $_FILES['upload']['name'];
$endungen = array(".htm", ".php", ".html"); // usw. $endung1 = substr($dateiname, -5); $endung2 = substr($dateiname, -4);
if(in_array($endung1, $endungen) or in_array($endung2, $endungen)) echo "Falsches Dateiformat.";
?>
Gruß L3oop
[Zuletzt bearbeitet: 06.03.2009 14:27]
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: MIME-Type |
06.03.2009 14:27 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Hallo, danke schonmal! Aber wie kann man es schreiben, das im if überprüft wird ob es nicht vorhanden ist? Also sozusagen if (not in array) oder wie schreibt man das? Windows Se7en
|
 |
|
| |
|
L3oop
|
| Titel: MIME-Type |
06.03.2009 14:28 |
|
Moderator 45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
 |
Experte |
Akzeptierte Antwort (+50 Punkte)
|
Einfach ein Ausrufezeichen davor setzen.
Edit. Dann musst du aber and verwenden:
if(!in_array($endung1, $endungen) and !in_array($endung2, $endungen)) echo "Falsches Dateiformat.";
[Zuletzt bearbeitet: 06.03.2009 14:30]
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: MIME-Type |
06.03.2009 14:28 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Okay danke!
|
 |
|
| |
|
jacobi22
|
| Titel: MIME-Type |
06.03.2009 14:45 |
|
13.125 Punkte (?)[Gesperrt]
Anmeldungsdatum: 20.05.2008
Beiträge: 2.667
|
Würde ich aus Sicherheitsgründen aber anders machen, sonst bist du mal ganz schnell ausgetrickst.
Mit
$type = $_FILES['file']['type'];
ermittelst du den Typ der hochgeladenen Datei - 'file' ist dabei der Name des Dateiauswahlfeldes. Bei L3oops Beispiel wäre das dann upload
In ein Array schreibst du dann die Dateien, die erlaubt oder verboten sein sollen, z.b. so
Zitat: $type_erlaubt = 'array(".pdf"=>"application/pdf",".jpg"=>"image/jpeg",".jpeg"=>"image/jpeg",".jpe"=>"image/jpeg")';
eine Liste der gebräuchlichsten Applikationsbezeichnungen findest du hier
der Rest dann weiter wie in L3oop's Beispiel
Zitat: if(!in_array($type, $type_erlaubt) ) echo "Falsches Dateiformat.";
[Zuletzt bearbeitet: 06.03.2009 14:45]
________________________________________ Uwe Eisblume - Danke - Sophie Zelmani - Blutengel
|
 |
|
| |
|
Windows Se7en
|
| Titel: MIME-Type |
06.03.2009 14:47 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Danke, Jacobi! Das werd ich gleich mal testen! Aber was ist php fürn MIME Type?
www.filsh4you.de.ms
[Zuletzt bearbeitet: 06.03.2009 14:49]
|
 |
|
| |
|
bitsnack
|
| Titel: MIME-Type |
07.03.2009 15:52 |
|
|
Anmeldungsdatum: 30.01.2009
Beiträge: 3.551
|
Also ich würde so machen:
If(!preg_match("~(.*).php\z~i", $filename)) { echo "das ist keine php Datei"; }
Nur eine Idee
|
 |
|
| |
|
jacobi22
|
| Titel: MIME-Type |
07.03.2009 16:09 |
|
13.125 Punkte (?)[Gesperrt]
Anmeldungsdatum: 20.05.2008
Beiträge: 2.667
|
Gh0stc0der hat folgendes geschrieben: Also ich würde so machen:
If(!preg_match("~(.*).php\z~i", $filename)) { echo "das ist keine php Datei"; }
Nur eine Idee
und wenn ich den Namen ändere, ist es doch eine
Windows Se7en hat folgendes geschrieben: Aber was ist php fürn MIME Type?
application/x-httpd-php *denk ich
Laß ihn dir doch ausgeben
echo $type;
[Zuletzt bearbeitet: 07.03.2009 16:12]
________________________________________ Uwe Eisblume - Danke - Sophie Zelmani - Blutengel
|
 |
|
| |
|
Windows Se7en
|
| Titel: MIME-Type |
07.03.2009 16:16 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Hm es geht jetzt mit L3oops Script, aber wenn ich echo $type mache, und dann den ausgegebenen MIME Type nehme bei: if ($type == "ausg. MIME-Type") { ... dann können zwar keine php Dateien hocgeladen werden, aber auch keine PSD Dateien. Also mist. Naja hauptsache es funzt. Windows Se7en
[Zuletzt bearbeitet: 07.03.2009 16:17]
|
 |
|
| |
|
bitsnack
|
| Titel: MIME-Type |
07.03.2009 16:26 |
|
|
Anmeldungsdatum: 30.01.2009
Beiträge: 3.551
|
jacobi22 hat folgendes geschrieben:Gh0stc0der hat folgendes geschrieben: Also ich würde so machen:
If(!preg_match("~(.*).php\z~i", $filename)) { echo "das ist keine php Datei"; }
Nur eine Idee und wenn ich den Namen ändere, ist es doch eine
Wenn du den Namen änderst nicht, erst wenn du das Suffix änderst, aber dann kannst du das php script nicht ausführen
Oder wie meinst du das?
@htmlfreak:
Der ausgegebene mimetype von php ist application/octet-stream, richtig? Das ist aber nicht alleine für php Dateien, sondern es ist eher eine für Gruppe von Dateitypen. So geht das also nicht
[Zuletzt bearbeitet: 07.03.2009 16:34]
|
 |
|
| |
|
Windows Se7en
|
| Titel: MIME-Type |
07.03.2009 17:25 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Genau, es war octet Stream
|
 |
|
| |
|
bitsnack
|
| Titel: MIME-Type |
07.03.2009 17:42 |
|
|
Anmeldungsdatum: 30.01.2009
Beiträge: 3.551
|
octet-stream bedeutet übrrigens, das der Server den Dateityp nicht erkennen konnte, und es so als "Bitfolge" bezeichnet (wenn ich das noch richtig im Kopf hab)
Also so werden auch PSD und andere solche Dateien ausgesperrt.
|
 |
|
| |
|
jacobi22
|
| Titel: MIME-Type |
07.03.2009 18:26 |
|
13.125 Punkte (?)[Gesperrt]
Anmeldungsdatum: 20.05.2008
Beiträge: 2.667
|
Windows Se7en hat folgendes geschrieben: Genau, es war octet Stream
Da seid ihr euch einig, wa?
PHP ist application/x-httpd-php
[Zuletzt bearbeitet: 07.03.2009 18:26]
________________________________________ Uwe Eisblume - Danke - Sophie Zelmani - Blutengel
|
 |
|
| |
|
Windows Se7en
|
| Titel: MIME-Type |
07.03.2009 18:31 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Hm kann schon sein, aber wenn ich ne php Datei hochlade ist es octet stream 
|
 |
|
| |
|
|
|
|