Schleife läuft nicht so wie ich es will

  • Hi, ich habe ein Problem mit einer For-Schleife:


    Wenn es nach mir ginge, würde die Ausgabe die Dateiendungen hinschreiben, welche die 3 Dateien hatten. Es wird aber nur 3 mal die letzte Endung ausgegeben. Also 3 mal 'png'.


    Ich habe schon viel herumprobiert, und irgendwie scheint da eine Blockade im Kopf zu sein, denn ich kann diesen eigentlich simplen Code nicht zum laufen kriegen.

  • Hey,


    Was ist denn dein Ziel?


    Magst du nur bestimmte Dateiendungen erlauben?


    Wenn ja dann rate ich dir ein Array mit den erlaubten Dateiendungen anzulegen. Nun Überprüfst du ob die Dateiendung vom Formularinput in diesem Array vorhanden ist. Dazu kannst du die Funktion in_array() verwenden.


    Grüße,

    Stef

  • In deiner 'function checkFiles' führst du zwei mal nacheinander die identische Abfrage if(isset($files[$i])) durch.

    Ist die Antwort 'true' weist du der Variablen $allow einen Wert zu... in der nächsten Abfrage hat sich ja aber nichts geändert, die Antwort ist wieder 'true' und somit wird der erste Wert von $allow überschrieben.

    Als Antwort (echo) bekommst du also immer das, was in der letzten if Anweisung zugewiesen wurde. In deinem Code also 'png'

  • Und ich würde zusätzlich noch mit foreach() anstelle von for()arbeiten.

    Bei for() musst Du entweder die Laufzeitbedingung anpassen oder die Array-Länge zur Ermittlung heranziehen, wenn es mal um mehr oder weniger als 3 Dateien gehen sollte.

  • Hey,

    Hi Stef, die Sache ist, dass nur eine bestimmte Dateiendung pro <input> Feld erlaubt sein soll.

    dann brauchst du kein Array mit den erlaubten Dateiendungen.


    Dann kannst du für jedes Feld auf eine Dateiendung prüfen.


    Grüße,

    Stef

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!