Ergebnis 1 bis 6 von 6
  1. #1
    Julian100200
    Gast

    Standard Upload script Fehler? case "multipart/form-data

    Hallo,
    ich habe eine Upload seite Für einen FTP server mit PHP gemacht (gesucht),
    Dieser beschränkt sich jedoch leider auf die haupt Bild-endungen, so dass ich z.B. keine exe Dateien Hochladen kann!

    Wie kann ich dass auf alle Dateiendungen (auch dateien ohne Endung) erweitern)

    Hier der PHP-Teil der Seite:

    Code:
    <?php
    if (isset($_FILES['datei']))
    {
    switch($_FILES['datei']['type'])
    {
    case "image/gif" : $error = false;
    break;
    case "image/jpeg" : $error = false;
    break;
    case "image/png" : $error = false;
    break;
    default : $error = true;
    break;
    }
    
    if(file_exists(htmlspecialchars(basename($_FILES['datei']['name'] ))))
    $error = true;
    
    
    if(!$error)
    {
    if(move_uploaded_file($_FILES['datei']['tmp_name'], htmlspecialchars(basename($_FILES['datei']['name'] ))))
    echo "<br /><font color=green><b>Die Datei (".htmlspecialchars(basename($_FILES['datei']['name'] )).") wurde erfolgreich hochgeladen</b></font><br />";
    else
    echo "<br /><font color=red><b>Es gab einen Fehler beim Hochladen der Datei: (".htmlspecialchars(basename($_FILES['datei']['name'] )).")</b></font><br />";
    }
    else
    echo "<br /><font color=red><b>Die Datei (".htmlspecialchars(basename($_FILES['datei']['name'] )).") entspricht nicht den Normen bzw. ist schon vorhanden!<br /> Erlaubt sind nur: gif, jpg, jpeg, jpe oder png</font></b><br />";
    }
    ?>
    Ich habe das auch schon mit:
    PHP-Code:
    case "multipart/form-data" $error false
    versucht!

  2. #2
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Wie wäre es, wenn Du den Dateinamen beim "." aufsplittest und dann danach gehst?

    z.B.

    PHP-Code:
    $tmp explode(".",$_FILES['datei']['name']);

    switch(
    $tmp[1]) {

    case 
    "exe":

    $error false;

    break;


    Weiß nur geraden icht genau, wie der korrekte Arraywert für den Dateinamen ist.
    Aber das Prinzip sollte klar sein.
    $tmp erhält den Wert, der beim Punkt gesplitteten Teile.
    bla.exe --> $tmp[0] = bla, $tmp[1] = exe. Wenn Du nun $tmp[1] switchest kannst Du mit jeder Dateiendung arbeiten.

    Da es aber, wie Du sagtest auch Dateien ohne Endung gibt kannst Du mit case "": arbeiten (denke ich mal). Dann kannst Du zusätzlich mit is_file() arbeiten.

    Siehe auch bei PHP.net bei explode und is_file .

    War das das, was Du suchst?
    Come to the dark side - We have cookies

  3. #3
    W32.FunLove
    Registriert seit
    15.08.2007
    Beiträge
    125

    Standard

    Ich denke, er will, dass er einfach nur alle Dateien hochladen kann. Zurzeit funktionieren nur Bilder. Im letzten Switch Teil das default ist der entscheidende Punkt. Hier werden alle anderen Dateitypen "geblockt". Wenn du alle erlauben willst, änderst du einfach das letzte
    PHP-Code:
    default : $error true
    in ein
    PHP-Code:
    default : $error false
    Das ist nicht die schönste Methode, da jetzt jede Menge überflüssiger Code übrig bleibt, aber es funktioniert

  4. #4
    Julian100200
    Gast

    Blinzeln

    So ok litlein genau das hab ihc sesucht DANKE!!! Das es an einem Wort lag tz tz tz.
    Hier der Link zur Seite
    www.databasecrew.tk

    Danke nochmla an euch für die Hilfe

  5. #5
    Attention-whore Avatar von n00kie
    Registriert seit
    26.02.2007
    Beiträge
    755

    Standard

    Naja ziemlich sicher ist das ganze nicht, da man ohne Probleme eine Shell hochladen könnte. Fall's du nicht weiss, was ich meine schau mal hier.
    Geändert von n00kie (07.07.2009 um 00:44 Uhr)
    Programming is like sex. One mistake and you have to support it for the rest of your life.

  6. #6
    Julian100200
    Gast

    Standard

    Ähm... was sit dieses "shell" und wie kann ich das verhindern, ich hab mit mla die defailt.index angeschaut und da ist kein unterschied, oder?

    EDIT: ich hba zur problem lösung erstmal was anderes hochgeladen^^
    Geändert von Julian100200 (07.07.2009 um 01:57 Uhr)

Stichworte

Berechtigungen

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