kostenloser Webspace werbefrei: lima-city


preg_match klappt nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m**l

    Hi,

    dieser Script soll testen, ob die Hochgeladene Datei ein jpg oder ein gif ist. Aber selbst wenn ich ein jpeg oder ein gif hochlade, ich bekomme immer eine Fehlermeldung. Was ist falsch?

    if(!preg_match("/.+\.(jpeg|jpg|gif)$/i",$_FILES["datei"]["type"]))
    {
        header ("Location: new_pics.php?format=1");
        exit;
    }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Dein RegEx scheint in Ordnung zu sein. Aber
    $_FILES["datei"]["type"]
    enth?lt meines Wissens nicht den ganzen Dateinamen, sondern eine MIME-Type-Kodierung. Lass sie mal anzeigen:

    printf("[[%s]]<br />", $_FILES["datei"]["type"]);

    Theoretisch m?sste der Dateiname in
    $_FILES["datei"]
    stehen.


    MfG
    alopex
  4. Autor dieses Themas

    m**l

    es steht folgendes drinne

    [[image/jpeg]]
  5. Autor dieses Themas

    m**l

    und was jetzt alopex???
  6. c*********c



    moul schrieb:
    und was jetzt alopex???


    ok, ich bin nicht alopex, aber egal :wink:

    Jetzt kannst Du den Mime-Type untersuchen:

    <?

    $mime = $_FILES["datei"]["type"];
    printf("[[%s]]<br />", $_FILES["datei"]["type"]);

    if($mime == "image/jpeg")
    {
    print("Das Bild ist vom Typ ". $mime);
    }
    elseif($mime == "image/gif")
    {
    print("Das Bild ist vom Typ ". $mime);
    }
    else
    {
    print("Das Bild ist vom Typ her weder gif noch jpeg!");
    }

    ?>
  7. Autor dieses Themas

    m**l

    danke so hat es geklappt
  8. Autor dieses Themas

    m**l

    ich habe jetzt meinen Script erweiter, so das der Pfad eigentlich in einer Db gespeichert wird. Zus?tzlich kann man auch einen Titel schreiben und einen bereich ausw?hlen. Aber es kommt wieder das ich nur jpg daten hochlden kann obwohl es jpg ist. Wo ist der fehler?
    hier mal das Formular:

    <form action="save_pic.php" method="post" enctype="multipart/form-data">
    <br><br>
    <div style="margin-left:85px">
    <table>
    <tr>
    <td>Titel: </td><td><input type="text" name="title" size="42"></td>
    </tr>
    <tr>
    <td>Pic oder Wallpaper: </td><td><input name="datei" type="file"></td>
    </tr>
    <tr>
    						<td>Katigorie</td>
    <td>
    <?php
    if (isset ($_REQUEST["choose"]))
    {
    echo "<span style=\"color:red\"><b>Bitte eine Katigorie ausw?hlen!</b></span>";
    }?>
    <select name="type">
    <option value="0">Bitte w?hlen... </option>
    <option value="Wallpaper">Wallpaper</option>
    <option value="Pics">Pics</option>
    </select></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Upload" name="senden"></center></td></tr>
    </table></div>
    </form>


    und hier mal das andere scrip zum speichern:

    <?php
    // Der Ordner, in den die Bilder hochgeladen werden sollen
    $bilder_ordner = "bilder/";
    
    $katigorie = $_POST['type'];
    $title = $_POST['title'];
    
    if($katigorie == '0')
    {
    	header ("Location: new_pics.php?choose=1");
        exit;
    }
    
    // Dateiname leer?
    
    if($_FILES["datei"]["name"] == "")
    {
    	header ("Location: new_pics.php?fehler=1");
        exit;
    }
    
    // Tempor?rer Dateiname leer?
    if($_FILES["datei"]["tmp_name"] == "")  
    {
      	header ("Location: new_pics.php?fehler2=1");
        exit;
    }
    
    // Leere Datei?
    if($_FILES["datei"]["size"] == 0)  
    {
        header ("Location: new_pics.php?fehler3=1");
        exit;
    }
    
    // Datei gr??er als 10000 Byte?
    if($_FILES["datei"]["size"] > 1572864)
    {
        header ("Location: new_pics.php?fehler4=1");
        exit;
    }
    
    // jpg oder gif Datei?
    $mime = $_FILES["datei"]["type"];
    
    if($mime == "image/jpeg" || $mime == "image/gif" || $mime == "image/jpg")
    {
    include ('verbindung.php');
    
    $pfad = $bilder_ordner .$_FILES["datei"]["name"];
    
     mysql_query("INSERT INTO wallpaper (title, pfad, bereich)
     VALUES('$title', '$pfad', '$bereich')") or
     die(mysql_error());
     
    
    // In den Bilderordner verschieben
    move_uploaded_file($_FILES["datei"]["tmp_name"], $bilder_ordner .$_FILES["datei"]["name"]);
    
    // Wo ist die Datei jetzt? -> Pfad ausgeben
    header ("Location: new_pics.php?fertig=1");
    }
    else
    {
        header ("Location: new_pics.php?format=1");
        exit;
    }
    
    ?>
  9. Autor dieses Themas

    m**l

    ^danke Problem hat sich erledigt
  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!