JES: Komme einfach nicht weiter!

Moin Leute!
Nach meinem Post von gestern vormittag habe ich mir fast die ganze Nacht um die Ohren gehauen nur wegen dieser einen Funktion:
move_uploaded_file($_FILES['datei']['tmp_name'],"gbook_img/$_FILES['name']");
Wieso funzt das nicht. Ich komm nicht dahinter!
Die Variable datei wird in einer Form mit übergeben. Ich bekomme immer die Fehlermeldung:
"Parse error: parse error, expecting T\_STRING' or T_VARIABLE' or `T_NUM_STRING' in /kunden/.../gaestebuch.php on line 28"
Hilfe!!!!

  1. Hi!

    Probiers mal so:

    move_uploaded_file($_FILES['datei']['tmp_name'],"../gbook_img/".$_FILES['name']."");

    Grüsse
    Andi

    1. Hallo,

      move_uploaded_file($_FILES['datei']['tmp_name'],"../gbook_img/".$_FILES['name']."");

      sollte es nicht so aussehen:

      move_uploaded_file($_FILES['datei']['tmp_name'],"../gbook_img/".$_FILES['datei']['name']."");

      ?

      Gruß Frank

  2. Moin!

    Bist Du sicher, dass der Fehler wirklich in dieser Zeile liegt? :

    move_uploaded_file($_FILES['datei']['tmp_name'],"gbook_img/$_FILES['name']");

    Bist Du sicher, dass das $_FILES-Array korrekt gefüllt ist?

    Testen, Testen, Testen... Debuggen will gelernt sein. Frage die Vars mit isset ab, gebe Arrays testweise mit print_r aus, etc..

    1. Also:
      Wenn ich echo $datei; mache, gibt er den Pfad der Datei aus, die hochgeladen werden soll.
      Wenn ich aber echo $_FILES['datei']; mache, kommt garnichts.
      Ich kapier das nicht.

      1. Erklärt mir doch mal bitte kurz diese Zeile:
        "move_uploaded_file($_FILES['datei']['tmp_name'],"../gbook_img/".$_FILES['name']."");"
        die Variable datei kommt wie gesagt aus der Form. Aber wieso wird die auf ein Array angewandt? Was sind tmp_name und name?

        1. Hi!

          Erstens so:

          <input type='file' name='userfile'>

          dann hast du nach dem senden:

          $_FILES['userfile']['name']-> Der Originale Name der Datei
          $_FILES['userfile']['tmp_name'] -> Dateiname auf dem Server
          $_FILES['userfile']['size'] -> Größe der Hinaufgeladenen Datei
          $_FILES['userfile']['error']  -> Error Code

          Kleines Beispiel

          $uploaddir = '/var/www/uploads/';
          $uploadfile = $uploaddir. $_FILES['userfile']['name'];

          print "<pre>";
          if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
              print "File is valid, and was successfully uploaded. ";
              print "Here's some more debugging info:\n";
              print_r($_FILES);
          } else {
              print "Possible file upload attack!  Here's some debugging info:\n";
              print_r($_FILES);
          }
          print "</pre>";

  3. Vielen Dank für eure Hilfe!
    Der Fehler war ziemlich banal. Wenn man das ganze per get verschickt, kann das auch nicht funzen *schäm*.
    Wenn mir jetzt noch jemand ausm Stehgreif sagen könnte wie ich die Zugriffsrechte für die Dateien steuern kann, wäre das genail.
    Vielen Dank und Gruß,

    Enno