Fehler im Uploadscript
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
beitrag
bild
breite hhe
datei
error
fehlermeldung
folgender funktion
formular
funktion
gel
gen
hochgeladene bild
hochladen
hhen
image
kanne
klammern
sperren
zeile
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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");
-
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.? -
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 -
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 -
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."); }
-
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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage