bambooS
OC Addicted
|
Hi Leute, ich habe das Problem, dass mein move_uploaded_file nicht wirklich funktioniert. Zuerst hole ich mir die Daten: echo "<tr>\n";
echo " <td colspan='4' style='text-align:right;'><b>Bild </b> (opt. 100x100px, max. 50K):";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='50000'>";
echo "<input type='file' name='bild" . $i . "' size='30' accept='image/jpg jpeg' maxlength='50000' ><br>\n";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='100000'><b>Bild </b>(groß, max. 100K):";
echo "<input type='file' name='bild_big" . $i . "' size='30' accept='image/jpg jpeg' maxlength='100000' >\n";
echo "</td>\n";
echo "</tr>\n";
Wenn dann der Button Speichern geklickt wird, wird folgende Funktion aufgerufen: FileUpload($_FILES["bild" . $i], 50000, "../images/players/", $ID, 0);
FileUpload($_FILES["bild_big" . $i], 100000, "../images/players/", $ID, 1);
Die Funktion selbst sieht so aus: //----------------------------------------------
function FileUpload($file, $size, $path, $ID, $kind)
//----------------------------------------------
{
if( !empty( $file["name"] ) )
{
if( $file["error"] == UPLOAD_ERR_INI_SIZE || $file["error"] == UPLOAD_ERR_FORM_SIZE )
{
echo "Die Datei " . $file["name"] . " wure nicht gespeichert. Die maximale Dateigröße beträgt " . $size . " Byte.<br>\n";
return;
}
$pieces = explode('.', $file["name"]);
$type = strtolower( $pieces[sizeof($pieces) - 1] );
if( $type != "jpg" && $type != "jpeg" && $type != "gif" && $kind != 3 && $kind != 4)
{
echo "Die Datei \"" . $file["name"] . "\" wure nicht gespeichert. Es können nur jpg/jpeg Dateien hochgeladen werden.<br>\n";
return;
}
if($file["size"] > $size)
{
echo "Die Datei " . $file["name"] . " wure nicht gespeichert. Die maximale Dateigröße beträgt " . $size . " Byte.<br>\n";
return;
}
switch($kind)
{
//Spieler
case 0:
$fileName = $path . $ID . ".jpg"; break;
//Spieler groß
case 1:
$fileName = $path . $ID . "_big.jpg";
break;
//Teambild
case 2:
$fileName = $path . $ID . "_team.jpg";
break;
//Logo
case 3:
$fileName = $path . $ID . "_logo.";
if($type == "gif") $fileName .= "gif";
else
$fileName .= "jpg";
break;
//Logo klein
case 4:
$fileName = $path . $ID . "_logo_small.";
if($type == "gif")
$fileName .= "gif";
else
$fileName .= "jpg";
break;
}
if( !move_uploaded_file($file["tmp_name"], $fileName) )
echo "Fehler beim Uploaden von " . $file["name"];
}
}
Das Problem äußert sich so, dass ich zwar keinerlei Fehlermeldung bekomme, aber es werden auch die Bilder nicht hochgeladen. Ich hab auch schon geschaut, dass die Rechte der Ordner auf chmod 777 gesetzt sind. Ich weiß nicht mehr weiter und würde um Rat bieten. Danke lg bam
|
watchout
Legendundead
|
Ich würde mal einen parser error vermuten - hast du error_reporting(E_ALL) gesetzt in der php.ini?
|
mat
AdministratorLegends never die
|
Sind die Dateien im $_FILES-Array? Wenn nicht dann hast du beim form-Tag das enctype="multipart/form-data" vergessen.
|
bambooS
OC Addicted
|
@watchout Ich hab in meiner config.php die immer mitgeladen wird, folgendes stehen: error_reporting(1). Serverseitig ist folgendes eingestellt: error_reporting (6135). Den Wert kann ich aber nicht ändern.
@mat Das enctype="multipart/form-data" ist bei mir im form-Tag gesetzt.
|
mat
AdministratorLegends never die
|
Setz im config.php mal folgende Zeilen statt dem error_reporting() rein: error_reporting(E_ALL);
ini_set("display_errors", TRUE);
|
bambooS
OC Addicted
|
wenn ich ich die Befehle in meine config.php reinschreibe und dann versuche die Bilder hochzuladen, passiert nix.
Soll heißen, ich klick auf Speichern und es kommt weder eine Fehlermeldung noch wird das Fenster neugeladen (mit den aktuellen Infos dann drinnen...).
|
Spikx
My Little Pwny
|
wenn ich ich die Befehle in meine config.php reinschreibe und dann versuche die Bilder hochzuladen, passiert nix.
Soll heißen, ich klick auf Speichern und es kommt weder eine Fehlermeldung noch wird das Fenster neugeladen (mit den aktuellen Infos dann drinnen...). Dann passiert definitiv ein Fehler, der aber nicht angezeigt wird.
|
jives
And the science gets done
|
Poste bitte mal das gesamte Upload-Formular. So wie ich das verstehe, liegt eher da der Hund begraben (wenn sich nach dem Klick auf den Button gar nichts tut). Zusätzlich könntest du auch in die FileUpload-Funktion ganz oben ein var_dump($file) einfügen, um zu schauen ob überhaupt was sinnvolles übergeben wird.
|
bambooS
OC Addicted
|
Hab ich mir schon fast gedacht . Nur finde ich ihn leider nicht. Oder noch besser: ich seh den Fehler einfach nicht. Für mich wäre der Code richtig. Deswegen frage ich hier nach, ob jmd von euch den Fehler erkennt. Hilfts wenn ich den kompletten Code rauflade?
|
mat
AdministratorLegends never die
|
phpinfo() wäre auch praktisch. Du kannst aber jederzeit einen eigenen Error-Handler schreiben, der dir per echo einfach nur den Fehler ausgibt.
|
bambooS
OC Addicted
|
Hier mal die PHP Info: Klick michDer Code ist im Anhang. Einen eigenen Errorhandler zu bauen ist natürlich ein guter Vorschlag, nur bin ich nicht der Programmierer. Die Seite habe ich übernommen und jede Änderung die ich im Code mache bzw. nach Fehlern suche ist, linde gesagt, Schwerstarbeit für mich. Vielleicht findet jmd den Fehler, denn ich übersehe. Ansonsten muss ich diese Funktionalität rausnehmen und es irgendwie anders lösen. lg
new_138397.txt (downloaded 89x)
|
watchout
Legendundead
|
Das Problem ist dass parse-errors nicht angezeigt werden, selbst wenn error_reporting(E_ALL) aufgerufen wird (deshalb hab ich auch gefragt ob er in php.ini so eingestellt hat) Das lässt sich aber durch einen wrapper umgehen: error_reporting(E_ALL);
include("upload.php");
So wird zuerst error_reporting auf einen sinnvollen wert gesetzt und dann included, geparsed und php merkt - huch parse error
|
bambooS
OC Addicted
|
Hab das Ganze mal in den Code integriert. Folgende Fehler erhalte ich: Warning: include(upload.php) [function.include]: failed to open stream: No such file or directory in /home/funhoop/public_html/forms/kaderEdit.php on line 4
Warning: include(upload.php) [function.include]: failed to open stream: No such file or directory in /home/funhoop/public_html/forms/kaderEdit.php on line 4
Warning: include() [function.include]: Failed opening 'upload.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/funhoop/public_html/forms/kaderEdit.php on line 4
Jedoch wenn ich auf speichern klicke, erscheint kein Fehler...
|
watchout
Legendundead
|
Folgende Erklärung bringt in deinem Fall zwar nichts, weil lt. phpinfo hast du ja compiler warnings aktiviert, der Vollständigkeit halber schreib ich sie aber dazu: ähm... "upload.php" war nur symbolisch gemeint da ich ja nicht weiss wie dein file heisst.
Nach der Fehlermeldung vermute ich dass es kaderEdit.php heisst, also machst du ein neues file - zB. kaderEditWrapper.php, das enthält den code
error_reporting(E_ALL);
include("kaderEdit.php");
und statt kaderEdit.php rufst du kaderEditWrapper.php im browser auf. Dann werden parse-errors in fast jeder Konfiguration angezeigt. Zu deinem immer noch existierenden Problem - Das ist sicher lösbar, doch hier übers Forum... imho nicht - oder es dauert ewig. Außer da sieht jetzt jemand von den anderen auf Anhieb das Problem, solltest du dir also wen suchen der hands-on das Teil mal durchtesten kann, dann wird sich der Fehler schon zeigen.
|