+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 13
  1. #1
    Neuer Benutzer Meilensteine
    Doopanga befindet sich auf einem aufstrebenden Ast
    Registriert seit
    24.06.2010
    Beiträge
    22
    Renommee-Modifikator
    0

    Standard 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....
    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++;
      }
    
    ?>
    
    DEn code hab ich ausm Internet, da ich sowas garnicht schreiben kann....
    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....

  2. #2
    Erfahrener Benutzer Meilensteine
    Furien ist zur Zeit noch ein unbeschriebenes Blatt Avatar von Furien
    Registriert seit
    28.06.2008
    Ort
    Kuhkaff in Niedersachsen
    Beiträge
    246
    Blog-Einträge
    1
    Renommee-Modifikator
    0

    Standard

    Inwiefern sollen die Dateinamen denn erlaubt sein?
    Das Skript bricht nämlich einfach die Schleife ab, wenn der Dateiname stimmt.

    mfg furien

  3. #3
    Neuer Benutzer Meilensteine
    Doopanga befindet sich auf einem aufstrebenden Ast
    Registriert seit
    24.06.2010
    Beiträge
    22
    Renommee-Modifikator
    0

    Standard

    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?

  4. #4
    Erfahrener Benutzer Meilensteine
    Furien ist zur Zeit noch ein unbeschriebenes Blatt Avatar von Furien
    Registriert seit
    28.06.2008
    Ort
    Kuhkaff in Niedersachsen
    Beiträge
    246
    Blog-Einträge
    1
    Renommee-Modifikator
    0

    Standard

    Ja, break; bricht eine Schleife ab.
    Wie wärs denn so:
    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!");
      }
      

    ?>
    Damit wird, sofern die Datei nicht erlaubt ist das Skript abgebrochen.
    Wenn sie jedoch erlaubt ist, geht man aus der Schleife und das Skript läuft danach normal weiter.

  5. #5
    HTML-Guru Meilensteine
    mermshaus wird schon bald berühmt werden
    Registriert seit
    11.08.2009
    Beiträge
    1.512
    Renommee-Modifikator
    3

    Standard

    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
    }

  6. #6
    Neuer Benutzer Meilensteine
    Doopanga befindet sich auf einem aufstrebenden Ast
    Registriert seit
    24.06.2010
    Beiträge
    22
    Renommee-Modifikator
    0

    Standard

    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
    

  7. #7
    Erfahrener Benutzer Meilensteine
    Furien ist zur Zeit noch ein unbeschriebenes Blatt Avatar von Furien
    Registriert seit
    28.06.2008
    Ort
    Kuhkaff in Niedersachsen
    Beiträge
    246
    Blog-Einträge
    1
    Renommee-Modifikator
    0

    Standard

    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

    ?>

  8. #8
    HTML-Guru Meilensteine
    mermshaus wird schon bald berühmt werden
    Registriert seit
    11.08.2009
    Beiträge
    1.512
    Renommee-Modifikator
    3

    Standard

    Furiens Code aus #4 ist zudem nicht ganz richtig. "Bugreport":

    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!");
    }
    Ausgabe: "Datei nicht zugelassen!"

    Besser wäre etwa so:

    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!");

    Aber noch besser mit in_array (zum Beispiel auch so wie in #7).
    Geändert von mermshaus (22.07.2010 um 03:49 Uhr)

  9. #9
    Neuer Benutzer Meilensteine
    Doopanga befindet sich auf einem aufstrebenden Ast
    Registriert seit
    24.06.2010
    Beiträge
    22
    Renommee-Modifikator
    0

    Standard

    Hey DAnke für eure Hilfe...!!!
    hab jetzt den Code aus #4 genommmen und der funktioniert super^^

  10. #10
    HTML-Guru Meilensteine
    mermshaus wird schon bald berühmt werden
    Registriert seit
    11.08.2009
    Beiträge
    1.512
    Renommee-Modifikator
    3

    Standard

    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

  1. Einzelne Leute blocken?
    Von Publisher im Forum Fragen ans Forum
    Antworten: 4
    Letzter Beitrag: 28.05.2010, 20:30
  2. Antworten: 2
    Letzter Beitrag: 24.07.2009, 22:58
  3. Download von Dateien nur von bestimmter Seite zulassen
    Von jesus_heiland im Forum Server - Apache & Co.
    Antworten: 6
    Letzter Beitrag: 03.02.2009, 17:41
  4. Aktive Inhalte nicht mehr blocken
    Von Iadan im Forum HTML und XHTML
    Antworten: 2
    Letzter Beitrag: 09.10.2005, 11:46

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein