kostenloser Webspace werbefrei: lima-city


Fehler im Uploadscript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    w****e

    Ich habe das Uploadscript aus einem der Tuts genommen.
    Mir ist dann aber aufgefallen das dies nicht nur Bilder Hochl?d sonder alles was man im Vorsetzt.
    Ich habe dann versucht es selbst zu coden das man nur Bilder Hochladen darf.

    Diese Zeile habe ich hinzugef?gt
    if ($size[2]==0)
    {
    die "Das ist kein zul?ssiges Bild"
    }


    Doch dann bekomme ich eine Fehlermeldung
    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in ... on line 54

    das hier ist das nochmal das komplette script
    <?php
    $PicPathIn="./fotos/org/"; 
    $PicPathOut="./fotos/"; 
    $neueBreite=100; 
    $neueHoehe=100; 
    
    //das formular zum hochladen
    echo "
    <form action=\"".$PHP_SELF."\" method=\"post\" 
    enctype=\"multipart/form-data\">
    Ein Bild hochladen :<br>
    <input type=\"file\" name=\"datei\" />
    <input type=\"submit\" value=\"Datei hochladen\" />
    </form>";
    
    if (isset($_FILES['datei']))
    {
    
    $bild = $_FILES['datei']['name'];
    move_uploaded_file($_FILES['datei']['tmp_name'],
    $PicPathIn."/".$bild);
    
    $size=getimagesize("$PicPathIn"."$bild");
    $breite=$size[0];
    $hoehe=$size[1];
    
    if($size[2]==1)
    {
    // GIF
    $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
    $neuesBild=imageCreate($neueBreite,$neueHoehe);
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,
    $neueBreite,$neueHoehe,$breite,$hoehe);
    imageGIF($neuesBild,"$PicPathOut"."$bild");
    }
    
    if($size[2]==2)
    {
    // JPG
    $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
    $neuesBild=imageCreate($neueBreite,$neueHoehe);
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,
    $neueBreite,$neueHoehe,$breite,$hoehe);
    ImageJPEG($neuesBild,"$PicPathOut"."$bild");
    }
    
    if($size[2]==3)
    {
    // PNG
    $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
    $neuesBild=imageCreate($neueBreite,$neueHoehe);
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,
    $neueBreite,$neueHoehe,$breite,$hoehe);
    ImagePNG($neuesBild,"$PicPathOut"."$bild");
    
    }
    
    if ($size[2]==0)
    {
    die "Das ist kein zul?ssiges Bild"
    }
    
    // kanne evtl. gel?scht weden, zeigt nur das hochgeladene bild an!
    echo "Altes Bild<BR>";
    echo "<IMG SRC=\"$PicPathIn$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\">
    <BR><BR>";
    echo "Neues Bild:<BR>";
    $Thumbnail=$PicPathOut.$bild;
    echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";
    
    }
    ?>


    also wo ist der Fehler und vor allem Funtionier das ?berhaupt was ich da geschrieben habe???
    falls nicht was muss ich tippen damit das Script nur jpg/gif/png hochl?d?

    mfg
    web4me


    Beitrag ge?ndert am 31.07.2005 11:31 von web4me
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Also, zuerst mal hast du bei

    die "Das ist kein zul?ssiges Bild"


    das ; am Ende vergessen, zudem geh?rt, ich meine es sei notwendig ^^, der Text in eine Klammer (die ist ja eine Funktion, oder irre ich mich?!)

    Also so m?sste es funzen:

    die ("Das ist kein zul?ssiges Bild");
  4. Autor dieses Themas

    w****e

    geht imer noch nicht :mad:

    mfg
    web4me

    Beitrag ge?ndert am 29.07.2005 23:28 von web4me

  5. Also, zuerst mal hast du bei

    die "Das ist kein zul?ssiges Bild"


    das ; am Ende vergessen, zudem geh?rt, ich meine es sei notwendig ^^, der Text in eine Klammer (die ist ja eine Funktion, oder irre ich mich?!)

    Also so m?sste es funzen:

    die ("Das ist kein zul?ssiges Bild");


    Ja, das stimmt, aber ich glaube, dass man die Funktion "die ()" auch ohne die Klammern aufrufen kann, wie bei "echo ()".

    @web4me :
    Was passiert denn?
    Was soll passieren?
    Gibt es eine Fehlermeldung etc.?
  6. Autor dieses Themas

    w****e

    jetzt wird die datei Trotzdem hochgeladen. es wird halt nur kein Thumbnail erzeugt

    mit anderen Worten Hochladen immernoch an
    Thumbnail f?r Nichtbilder aus


    also wie Sperre ich den Upload?


    mfg
    web4me

    Beitrag ge?ndert am 30.07.2005 19:01 von web4me
  7. Du musst dir am besten auf php.net eine Funktion suchen, die ?berpr?ft, ob das was hochgeladen wurde auch wirklich ein Bild ist.
    Dann musst du folgendes nach "$bild = $_FILES['datei']['name'];" einf?gen :
    if (is_das_ein_bild ($bild)) {
      die ('Es wurde kein Bild hochgeladen!');
    }


    Vllt geht das mit folgender Funktion
    -> http://de.php.net/manual/de/function.image-type-to-extension.php
    Einfach mal einf?gen und den Wert den die Funktion zur?ckgibt ausgeben. Das dann mit mehreren Dateien und Bildern ausprobieren und dann siehste ja, obs klappt.

    Beitrag ge?ndert am 30.07.2005 19:09 von lucas9991
  8. Autor dieses Themas

    w****e

    ich habe jetzt noch folgende Zeilene hinzugef?gt
    $type = $_FILES['file']['type']; 
    if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/png") 
    {
    die ("nur Bilder d?rfen hochgeladen werden.");
    }


    aber jetzt wird die Fehlermeldung immer angezeigt. und png?s lassen sich auch nicht Hochladen.

    Fragen
    1. Wie Lasse ich PNG zu
    2. Wie sorge ich daf?r das die Fehlermeldung nur angezeigt wird wenn man versucht eine datei hochzuladen die nicht jpg/gif/png ist?

    Hier ist das Script zum testen
    http://web4me.xardas.lima-city.de/gallery.php

    und hier der Quellcode
    http://web4me.xardas.lima-city.de/upload.txt

    mfg
    web4me

    Beitrag ge?ndert am 31.07.2005 10:57 von web4me
  9. c*********c

    Du musst die ?berpr?fung des Array $_FILES direkt nach dem Formular schreiben!

    Also so:
    $PicPathIn="./fotos/org/"; 
    $PicPathOut="./fotos/"; 
    $neueBreite=100; 
    $neueHoehe=100; 
    
    //das formular zum hochladen
    echo "
    <form action=\"".$PHP_SELF."\" method=\"post\" enctype=\"multipart/form-data\">
    Ein Bild hochladen :<br>
    <input type=\"file\" name=\"datei\" />
    <input type=\"submit\" value=\"Datei hochladen\" />
    </form>";
    
    
    if (isset($_FILES['datei']))
    {
    
    $type = $_FILES['file']['type']; 
    if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/png") 
    {
    die ("nur Bilder d?rfen hochgeladen werden.");
    }
  10. Autor dieses Themas

    w****e

    jetzt wird gar nichts mehr hochgeladen :-(

    hier die Zeilen die f?r den Upload zust?ndig sind
    <?php
    $PicPathIn="./fotos/org/"; 
    
    $PicPathOut="./fotos/"; 
    
    $neueBreite=100; 
    
    $neueHoehe=100; 
    
    
    
    //das formular zum hochladen
    
    echo "
    
    <form action=\"".$PHP_SELF."\" method=\"post\" 
    enctype=\"multipart/form-data\">
    
    Ein Bild hochladen :<br>
    
    <input type=\"file\" name=\"datei\" />
    
    <input type=\"submit\" value=\"Datei hochladen\" />
    
    </form>";
    
    if (isset($_FILES['datei']))
    {
    
    $type = $_FILES['file']['type']; 
    
     if($type != "image/gif" && $type != "image/pjpeg" 
    && $type != "image/png") 
    
     {
    
     die ("nur Bilder d?rfen hochgeladen werden.");
    
     }
    
    
    $bild = $_FILES['datei']['name'];
    
    move_uploaded_file($_FILES['datei']['tmp_name'], 
    $PicPathIn."/".$bild


    mfg
    web4me

    Beitrag ge?ndert am 31.07.2005 11:28 von web4me
  11. c*********c

    Du hast einmal das falsche Arrayelement angesprochen:

    So sollte das funktionieren!

    $PicPathIn="./fotos/org/";$PicPathOut="./fotos/"; 
    $neueBreite=100; 
    $neueHoehe=100; 
    
    //das formular zum hochladenecho echo "<form action=\"".$PHP_SELF."\" method=\"post\" enctype=\"multipart/form-data\">
    
    Ein Bild hochladen :<br>
    <input type=\"file\" name=\"datei\" />
    <input type=\"submit\" value=\"Datei hochladen\" /></form>";
    
    if (isset($_FILES['datei'])) {
    $type = $_FILES['datei']['type']; 
    if($type != "image/gif" && $type != "image/pjpeg" 
    && $type != "image/png") 
    {
    die ("nur Bilder d?rfen hochgeladen werden.");
    }
    
    $bild = $_FILES['datei']['name'];
    
    move_uploaded_file($_FILES['datei']['tmp_name'], 
    
    $PicPathIn."/".$bild


    Beitrag ge?ndert am 31.07.2005 13:08 von compactdisc

    Beitrag ge?ndert am 31.07.2005 13:09 von compactdisc
  12. 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!