kostenloser Webspace werbefrei: lima-city


PHP Upload filter Filtert zu stark.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    wisaa

    Kostenloser Webspace von wisaa

    wisaa hat kostenlosen Webspace.

    Hallo ich habe Ein Upload PHP Script mit dem Filter das nur swf daten hochgeladen werden können.
    Nun Es funktioniert alles nur ein problem. Bei manchen swf dateien schreibt das script trotzt swf format Bitte nur swf daten Hochladen.
    Was ist da falsch. Ich hab schon adere swf dateien hoch geladen ging problemlos nur bei manchen daten versagt etwas.

    <meta http-equiv="refresh" content="5; URL=http://wisaa.lima-city.de/swf/swf/">
    <?php
    $dateityp = GetImageSize($_FILES['datei']['tmp_name']);
    if($dateityp[2] == IMAGETYPE_SWF)
       {
          move_uploaded_file($_FILES['datei']['tmp_name'], 'swf/'.$_FILES['datei']['name']);
    
          echo "Die Flash datei wurde Erfolgreich hochgeladen";
    	echo "<br>" ;
          echo "Sie werden Zur Liste Weitergeleited";
    	 
       }
    else
        {
        echo "Bitte nur Datein im Swf Format hochladen";
        }
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Für mich sieht das so aus, als läge es an diesem Vergleich:

    $dateityp[2] == IMAGETYPE_SWF

    Bin mir nicht ganz sicher, aber ich glaube, dass hier nach dem MIME-type der Datei gefragt wird. Das soll verhindern, dass du irgend eine beliebige Datei einfach mit der Endung .swf versiehst und dann hochladen kannst, sondern nur "echte" SWF-Dateien durch den Filter kommen. Es kann aber sein, dass , je nach dem mit welchem Programm die swf erstellt wurde, der MIME-type vom angegebenen Typ abweicht. Um herauszubekommen, welcher Typ dann der richtige ist, musst du dein Skript ein klein wenig modifizieren und die Schlussausgabe umbauen:

    <meta http-equiv="refresh" content="5; URL=http://wisaa.lima-city.de/swf/swf/">
          <?php
          $dateityp = GetImageSize($_FILES['datei']['tmp_name']);
    
    // aenderung 1 (nachdem du mit aenderung 2 weitere typen ermittelt hast):
    
          if($dateityp[2] == IMAGETYPE_SWF || $dateityp[2]==weiterertyp || ... )
             {
                move_uploaded_file($_FILES['datei']['tmp_name'], 'swf/'.$_FILES['datei']['name']);
    
                echo "Die Flash datei wurde Erfolgreich hochgeladen";
          	echo "<br>" ;
                echo "Sie werden Zur Liste Weitergeleited";
          	 
             }
          else
              {
    
    // aenderung 2:
    
              echo "Bitte nur Datein im Swf Format hochladen. Gefundenes Format: ".$dateityp[2];
              }
          ?>


    Kann sein, dass du dann feststellst, dass es bloß an der Groß/Kleinschreibung liegt oder so. Füge einfach die gefunden Formate in die If-Abfrage ein, dann sollte es gehen.

    Beitrag zuletzt geändert: 1.7.2010 3:35:50 von alphara
  4. Autor dieses Themas

    wisaa

    Kostenloser Webspace von wisaa

    wisaa hat kostenlosen Webspace.

    O.OK Ich werd Ma schauen dass ich das hinbekomme da ich mich 0 mit php aukenne. Soll ich einfach copy&pase oder muss ich das noch selber bearbeiten. Ic verstehe das nicht ganz.
  5. wisaa schrieb: O.OK Ich werd Ma schauen dass ich das hinbekomme da ich mich 0 mit php aukenne. Soll ich einfach copy&pase oder muss ich das noch selber bearbeiten. Ic verstehe das nicht ganz.


    Wir haben dir vor gestern gesagt das du erstmal die php Grundlagen lernen sollst, bevor du weiter jeden Tag von uns Hilfe brauchst und eigt. überhaupt keine Ahnung hast was du da eigt. machst... Ich sag dir nur eins so geht es nicht weiter und so kommst du auch nicht weit mit all deinen Projekten :shy: Deshalb empfehle ich dir nochmal guck dir einpaar Tutorials an, bevor du weiter machst... Nimm einfach mal den Rat eines Freundes an
  6. Autor dieses Themas

    wisaa

    Kostenloser Webspace von wisaa

    wisaa hat kostenlosen Webspace.

    Ok Ja ic Lern ja Schon^^ Ne wirklich Ich lren das Jetzt gerade.
  7. Da es kaum Zeit kostet, das ganze nochmal in langsam:

    1. Schritt:

    Du ersetzt diese Codezeile:
    echo "Bitte nur Datein im Swf Format hochladen.";

    durch diese:
    echo "Bitte nur Datein im Swf Format hochladen. Gefundenes Format: ".$dateityp[2];


    2. Schritt:

    Du führst das Skript aus. Wenn jetzt eine SWF-Datei nicht hochgeladen wird, bekommst du in etwa so eine Ausgabe:
    Bitte nur Datein im Swf Format hochladen. Gefundenes Format: IMAGETYPE_JPG


    3. Schritt:

    Du sammelst alle Ausgaben nach dem Doppelpunkt und notierst die dir irgendwo.
    (Im Beispiel währe das "IMAGETYPE_JPG")

    4. Schritt:

    Du änderst deinen Quellcode ein weiteres Mal.
    Ersetze diese Codezeile:
    if($dateityp[2] == IMAGETYPE_SWF)

    durch eine, die nun alle notierten Ausgaben enthält, jeweils mit Doppelstrich getrennt, also so zum Bleistiel:
    if($dateityp[2] == IMAGETYPE_SWF || $dateityp[2]==IMAGETYPE_JPG || $dateityp[2]==IMAGETYPE_GIF )


    5. Schritt:

    Du testest das Skript nochmal mit den SWF-Dateien, dann sollte es funktionieren.

    Genauer kann ich das nicht beschreiben.

    €dit: 2 kleine Anmerkungen:
    1. Ich bin zwar selbst kein Rechtschreib- und Grammatikass, aber ich glaube der Plural von Datei ist Dateien und nicht Datein und 2. hat volnerius natürlich vollkommen Recht. Das sind keine weltbewegenden Codemanipulationen, und wenn es schon da scheitert, musst du dir wirklich erst etwas Grundwissen zulegen bevor wir dir effektiv helfen können. Ist ja nicht so, dass dir niemand helfen will, aber jede kleine Sache erst so ausführlich auszuschreiben ist echt zu viel verlangt.

    Beitrag zuletzt geändert: 2.7.2010 1:20:11 von alphara
  8. Autor dieses Themas

    wisaa

    Kostenloser Webspace von wisaa

    wisaa hat kostenlosen Webspace.

    Ok Aber if($dateityp[2] == IMAGETYPE_SWF || $dateityp[2]==IMAGETYPE_JPG || $dateityp[2]==IMAGETYPE_GIF ) Währe ja dan Swf, JPG oder GIF wegen || oder?
  9. Ja, aber das ist ja auch nur ein Beispiel (und außerdem weiß ich nicht, ob die MIME_types passen). Du ersetzt IMAGETYPE_JPG und so weiter natürlich durch die von dir in den ersten Schritten ermittelten types.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!