Antworten auf deine Fragen:
Neues Thema erstellen

Fileupload funktioniert nicht

SWFP

SWFP Mitglied

Hi,
ich wollte in einem Gästebuchformular einen Avatarupload anbieten. Doch bei der Ausgabe wird lediglich der Dateiname ausgegeben und das Script behauptet auch steif und fest, es hätte die Datei hochgeladen, nur dass sie nirgendwo auf dem Server, geschweige denn im angegebenen Verzeichnis ist.
Wo liegt also mein Problem? Überall steht doch, dass damit eine Datei hochgeladen werden kann...

gaestebuch.php
PHP:
<form action="neuerbeitrag.php" Method="post">
Ihr Name:<br />
<input name="Name" size="40"><br /><br />

E-Mail:<br />
<input name="EMail" type="email" size="40"><br />
<br /><br />

Avatar <i>(optional)</i>:<br />
<input name="avatar" type="file" size="50" maxlength="100000" accept="image/*"><br />
<br /><br />

Titel <i>(optional)</i>:<br />
<input name="Titel" size="40"><br /><br />

Inhalt:<br />

<textarea name="inhalt" cols="40" rows="12"
wrap="physical"></textarea><br>
<input type="submit" value="Absenden">
</form>

neuerbeitrag.php
PHP:
<?php
$user = $_POST["Name"];
$user = htmlentities($user);

$avatar = $_POST["avatar"];

$titel = $_POST["Titel"];
$titel = htmlentities($titel);

$inhalt = $_POST["inhalt"];
$inhalt = htmlentities($inhalt);
$inhalt = str_replace("\n", "<br>", $inhalt);

$email = $_POST["EMail"];
$email = htmlentities($email);

[COLOR="Red"]//Bildverabeitung
$uploaddir = '/Bilder/';
$uploadfile = $uploaddir . basename($_FILES['avatar']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['avatar']['tmp_name'], $uploadfile)) {
    echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
} else {
    echo "Möglicherweise eine Dateiupload-Attacke!\n";
}

echo 'Weitere Debugging Informationen:';
print_r($_FILES);

print "[/COLOR]


//Überprüfung der eingegebenen Daten

if ($inhalt == "" or $user == "")
   {
   echo "Sie müssen das Feld \"Namen\"
   und \"Inhalt\" ausfüllen";
   }
   
//Verarbeitung der Daten

else
   {
   $datum= date("d.m.Y H:i:s");

   $eintrag="$avatar|$email|$user|$datum|$titel|$inhalt";

   $datei = fopen("gaestebuch.txt", "a");
   fwrite($datei, "\n".$eintrag);
   fclose($datei);

   echo "Ihr Eintrag wurde erfolgreich gespeichert";
   }
?>

Weitere Möglichkeiten:
PHP:
move_uploaded_file($_FILES['avatar']['tmp_name'], "Bilder/".$_FILES['avatar']['name']);
echo "Das Bild wurde erfolgreich nach Bilder/".$_FILES['avatar']['name']." hochgeladen!<br />";
oder
PHP:
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if($dateityp[2] != 0)
   {

   if($_FILES['datei']['size'] <  102400)
      {
      move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
      echo "Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen";
      }

   else
      {
         die("Das Bild darf nicht größer als 100 kb sein ");
      }

    }

else
    {
    die("Bitte nur Bilder im Gif bzw. jpg Format hochladen");
    }
MfG
SWFP
 

Duddle

Posting-Frequenz: 14µHz

AW: Fileupload funktioniert nicht

Ich glaube, dass ist mal wieder ein Fall von "Debugging will gelernt sein". Du musst dem Pfad einer hochgeladenen Datei folgen, indem du nach jedem größeren Schritt dir relevante Zwischendaten / den Status ausgeben lässt. Irgendwann weicht dann SOLL von HABEN ab, dann hast du die Fehlerquelle erkannt.

Ansonsten sehe ich unmittelbar keine direkte Ursache, bis auf den BBCODE
Code:
"[COLOR="Red" ]"
und
Code:
"print "[/COLOR ]"
, aber das schließe ich auf irgendeinen Verarbeitungsfehler im Forum zurück.


Duddle
 

Duddle

Posting-Frequenz: 14µHz

AW: Fileupload funktioniert nicht

Naja, wenn du eine Fehlermeldung erhälst, dann kannst du die im Code aufspüren. Danach verfolgst du den Pfad von dort zum Anfang zurück, also welche Variablen unterwegs gesetzt werden und wie sie gefüllt werden.

Das ist wie in einer Fabrik: wenn am Ende nicht das Erwartete rauskommt, gehst du rückwärts den Produktionsweg entlang und schaust dir die Zwischenprodukte an. Sobald dann das erwartete Produkt vom erzeugten Produkt abweicht, hast du die Fehlerquelle gefunden.


Duddle
 

Duddle

Posting-Frequenz: 14µHz

AW: Fileupload funktioniert nicht

Dann musst du eben selbst Zwischenausgaben einbauen? Ein Programm arbeitet exakt die Schritte ab, die ihm vorgegeben werden. Ergo kannst du immer exakt nachvollziehen, was er wann macht.


Duddle
 

SWFP

SWFP Mitglied

AW: Fileupload funktioniert nicht

Könntest du das etwas näher erläutern?

---
Mir ist aufgefallen, für Bilder brauche ich ja ein
Code:
 enctype="multipart/form-data"
im <form>-Tag. Aber dann kann ich ja keine anderen Daten mehr übergeben, oder?

SWFP
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Fileupload funktioniert nicht

Das könnte es tatsächlich schon sein, probier es einfach mal aus.
Aber dann kann ich ja keine anderen Daten mehr übergeben, oder?
Wie kommst du darauf? Das sollte kein Problem sein.


Duddle
 

Duddle

Posting-Frequenz: 14µHz

AW: Fileupload funktioniert nicht

Das ist nicht die Fehlermeldung. Irgendwo ist ein unerwartetes ", wahrscheinlich hast du es nicht korrekt maskiert. Das kommt aber auf den Kontext an und du verschweigst ihn.


Duddle
 

Mr_Quick

Ich bin so - wie Ich bin

AW: Fileupload funktioniert nicht

Vielleicht mag dein Code richtig sein, aber bei bplaced gibt es immer Einschränkungen und vielleicht ist dies auch in deinem Falle so.
 

SWFP

SWFP Mitglied

AW: Fileupload funktioniert nicht

Nein, da ist lediglich eine Leerzeile Duddle.

@Mr_Quick: Meinst du, dass das bei bplaced eingeschränkt ist?

SWFP

Edit: Ich habe noch einmal nachgeschaut. Nach einer Änderung befindet sich an dieser Stelle lediglich ein else:

PHP:
...
//Bildverabeitung
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if($dateityp[2] != 0)
   {

   if($_FILES['datei']['size'] <  102400)
      {
      move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
      echo "Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen";
      }

   else
      {
         die("Das Bild darf nicht größer als 100 kb sein ");
      }

    }

else
    {
    die("Bitte nur Bilder im Gif bzw. jpg Format hochladen");
    }
...
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Fileupload funktioniert nicht

Der Parser lügt nicht. Entweder schaust du auf der falschen Zeile (weil irgendwas includet wird o.ä.) oder du schaust in der falschen Datei.

Du kannst auch einfach mal alles ab Zeile 20 auskommentieren und das Script starten. Wenn das geht, machst du das gleiche ab Zeile 40 usw. bis du den Bereich auf exakt die Zeile eingegrenzt hast, bei der der Parser meckert.


Duddle
 

SWFP

SWFP Mitglied

AW: Fileupload funktioniert nicht

Okay, okay. ich probiers mal.

Edit: Ich bekomme da ausgegeben, dass GetImageSize leer ist. Aber warum?
 
Zuletzt bearbeitet:

Mr_Quick

Ich bin so - wie Ich bin

AW: Fileupload funktioniert nicht

Nein, da ist lediglich eine Leerzeile Duddle.

@Mr_Quick: Meinst du, dass das bei bplaced eingeschränkt ist?

Bilderhoster und Fileupload sind auf bplaced nicht erwünscht.
Miro (Chef) sperrt diese Seiten sofort.

In deinem Falle weiß ich es nicht, da ich auch nicht weiß welche Seite Du betreibst und Du einen Free Account verwendest?
 

SWFP

SWFP Mitglied

AW: Fileupload funktioniert nicht

Ja, es ist ein FreeAccount. Das heißt: Es geht wahrscheinlich nicht. Also, kann ich das irgendwie anders machen?
 

Mr_Quick

Ich bin so - wie Ich bin

AW: Fileupload funktioniert nicht

Ja, es ist ein FreeAccount. Das heißt: Es geht wahrscheinlich nicht. Also, kann ich das irgendwie anders machen?

Das habe ich nicht gesagt.

Denn ich weiß nicht was Du für eine Seite erstellst.
Möchtest Du nur einen Filehoster, dann geht es sicherlich nicht.

Baust Du in eine bestehende Seite einen FileUpload ein "ala Avatar" wird da gewiss keiner etwas dagegen haben.

Was hast Du denn bitte für eine Seite am Start?

Aber Duddles hilft dir zu 100% schon weiter und der ist immer fit in solchen Dingen ;)
 

SWFP

SWFP Mitglied

AW: Fileupload funktioniert nicht

Okay. ich will ja nur, dass ein Benutzer in einem Gästebuch ein Avatar hinzufügen kann, wenn er will. Mehr nicht. Ich habe eine vom Gästebuch unabhängige Seite. Wenn du mal gucken willst:
 

Mr_Quick

Ich bin so - wie Ich bin

AW: Fileupload funktioniert nicht

Okay. ich will ja nur, dass ein Benutzer in einem Gästebuch ein Avatar hinzufügen kann, wenn er will. Mehr nicht. Ich habe eine vom Gästebuch unabhängige Seite. Wenn du mal gucken willst:


In diesem Falle wird bplaced nichts dagegen haben.

Autsch, das ist aber schon ein Farbenflash für die Augen (nicht persönlich nehmen).

Über uns, kann ich nur die Themen am Pfeil lesen, aber nichts anklicken (verschwindet sofort wieder)
 

SWFP

SWFP Mitglied

AW: Fileupload funktioniert nicht

Das ist gut.

Ja, soll ja ein bisschen bunt sein, oder ist das zu extrem?

Stimmt. Danke für den Hinweis. Mache mich mal gleich an die Änderung.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben