- 21.07.2010 14:48 #1Neuer Benutzer Meilensteine
- Registriert seit
- 24.06.2010
- Beiträge
- 22
- Renommee-Modifikator
- 0
Bestimmte Dateien zulassen, den rest blocken HI
hab nen neues Problem (jetzt aber das wirklich letzte^^)
Ich hab hier ne while abfrage, ob bestimmte Dateinamen erlaubt sind....
DEn code hab ich ausm Internet, da ich sowas garnicht schreiben kann....Code:<?php $datei[] = "Datei.txt"; $datei[] = "datei.pdf"; $datei[] = "hallo.docx"; $i = 0; $anzahl = count($datei); while ($i < $anzahl) { if ($datei[$i] == $_FILES["file"]["name"]) { break; } $i++; } ?>
Das funktioniert aber nicht so wie ich möchte, da er glaub ich nicht weiß was er machen soll, wenn er keine der o.g. dateien findet.....
Wie kann mans umschreiben, das es seinen Zweck erfüllt?
Danke schonmal für eure hilfe....
- 21.07.2010 16:12 #2Erfahrener Benutzer Meilensteine


- Registriert seit
- 28.06.2008
- Ort
- Kuhkaff in Niedersachsen
- Beiträge
- 246
- Blog-Einträge
- 1
- Renommee-Modifikator
- 0
- 21.07.2010 16:32 #3Neuer Benutzer Meilensteine
- Registriert seit
- 24.06.2010
- Beiträge
- 22
- Renommee-Modifikator
- 0
Ja also das Skript sollte eigentlich das Lesen des php COdes fortsetzen, wenn der Dateiname übereinstimmt.
Alternativ soll es wirklich abbrechen und einen Fehler absenden...(der Fehlerbericht ist erstmal nicht wichtig....)
Jetzt wo du es sagst macht break wohl einen Abbruch?
- 21.07.2010 16:47 #4Erfahrener Benutzer Meilensteine


- Registriert seit
- 28.06.2008
- Ort
- Kuhkaff in Niedersachsen
- Beiträge
- 246
- Blog-Einträge
- 1
- Renommee-Modifikator
- 0
Ja, break; bricht eine Schleife ab.
Wie wärs denn so:
Damit wird, sofern die Datei nicht erlaubt ist das Skript abgebrochen.PHP-Code:<?php
$datei = array("Datei.txt","datei.pdf","hallo.docx");
$i = 0;
$anzahl = count($datei);
while ($i < $anzahl) {
if ($datei[$i] == $_FILES["file"]["name"]) {
$i++;
break;
}
else die("Datei nicht zugelassen!");
}
?>
Wenn sie jedoch erlaubt ist, geht man aus der Schleife und das Skript läuft danach normal weiter.
- 21.07.2010 17:23 #5HTML-Guru Meilensteine


- Registriert seit
- 11.08.2009
- Beiträge
- 1.512
- Renommee-Modifikator
- 3
PHP: in_array - Manual gibt es für solche Tests.
PHP-Code:<?php
$datei = array("Datei.txt","datei.pdf","hallo.docx");
if (in_array($_FILES["file"]["name"], $datei)) {
// in Array vorhanden
} else {
// nicht in Array vorhanden
}
- 21.07.2010 17:50 #6Neuer Benutzer Meilensteine
- Registriert seit
- 24.06.2010
- Beiträge
- 22
- Renommee-Modifikator
- 0
Boa ich bin total happy :9
sieht schonmal echt gut aus. ich kanns morgen erst ausprobieren.
Wo ist denn der Unterschied zwischen den beiden?
Bei dem von Furien kann ich weitere if variablen einfügen ohne auf weiteres zu achten, also gleich nach dem letzten "}",
bei dem von mermshaus muss ich noch vor else die weiteren if funktionen einbauen...(?)
Sonst gibs keinen Unterschied oder?
Oder auch so(?):
Code:<?php $datei = array("Datei.txt","datei.pdf","hallo.docx"); if (in_array($_FILES["file"]["name"], $datei)) { // in Array vorhanden } else die{ // nicht in Array vorhanden
- 21.07.2010 18:52 #7Erfahrener Benutzer Meilensteine


- Registriert seit
- 28.06.2008
- Ort
- Kuhkaff in Niedersachsen
- Beiträge
- 246
- Blog-Einträge
- 1
- Renommee-Modifikator
- 0
Ich würde sagen, die allerleichteste und kürzeste
Lösung ist folgende:
PHP-Code:<?php
//Array datei anlegen
$datei = array("Datei.txt","datei.pdf","hallo.docx");
// Wenn kein Eintrag vom array Datei im array $_FILES["file"]["name"] ist, beende das Skript durch die
if (!in_array($_FILES["file"]["name"], $datei)) die("Datei nicht erlaubt.");
//weiterer Code
?>
- 22.07.2010 03:43 #8HTML-Guru Meilensteine


- Registriert seit
- 11.08.2009
- Beiträge
- 1.512
- Renommee-Modifikator
- 3
Furiens Code aus #4 ist zudem nicht ganz richtig. "Bugreport":
Ausgabe: "Datei nicht zugelassen!"PHP-Code:<?php
$_FILES["file"]["name"] = 'hallo.docx';
$datei = array("Datei.txt","datei.pdf","hallo.docx");
$i = 0;
$anzahl = count($datei);
while ($i < $anzahl) {
if ($datei[$i] == $_FILES["file"]["name"]) {
$i++;
break;
} else
die("Datei nicht zugelassen!");
}
Besser wäre etwa so:
Aber noch besser mit in_array (zum Beispiel auch so wie in #7).PHP-Code:$i = 0;
$anzahl = count($datei);
$found = false;
while ($i < $anzahl) {
if ($datei[$i] == $_FILES["file"]["name"]) {
$found = true;
break;
}
$i++;
}
if (!$found) {
die("Datei nicht zugelassen!");
}
Geändert von mermshaus (22.07.2010 um 03:49 Uhr)
- 22.07.2010 08:24 #9Neuer Benutzer Meilensteine
- Registriert seit
- 24.06.2010
- Beiträge
- 22
- Renommee-Modifikator
- 0
Hey DAnke für eure Hilfe...!!!
hab jetzt den Code aus #4 genommmen und der funktioniert super^^
- 22.07.2010 13:11 #10HTML-Guru Meilensteine


- Registriert seit
- 11.08.2009
- Beiträge
- 1.512
- Renommee-Modifikator
- 3
Der Code aus #4 funktioniert nur dann,
- wenn der Dateiname der hochgeladenen Datei nicht in der Liste enthalten ist oder
- wenn der Dateiname der hochgeladenen Datei der erste Eintrag in der Liste ist.
Aktive Benutzer
Aktive Benutzer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Ähnliche Themen
-
Einzelne Leute blocken?
Von Publisher im Forum Fragen ans ForumAntworten: 4Letzter Beitrag: 28.05.2010, 20:30 -
Frage zu Benutzeranmeldung bzw. nur bestimmte Personen sollen bestimmte Seiten sehen
Von Tobi2102 im Forum HTML und XHTMLAntworten: 2Letzter Beitrag: 24.07.2009, 22:58 -
Download von Dateien nur von bestimmter Seite zulassen
Von jesus_heiland im Forum Server - Apache & Co.Antworten: 6Letzter Beitrag: 03.02.2009, 17:41 -
Aktive Inhalte nicht mehr blocken
Von Iadan im Forum HTML und XHTMLAntworten: 2Letzter Beitrag: 09.10.2005, 11:46



LinkBack URL
About LinkBacks
Zitieren


Lesezeichen