Upload Fehler

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Upload Fehler

    Ich hab n ziemliches Problem, bei dem ich bei bestem Willen nicht weiter komme.

    Ich habe eine Seite, auf der man ein Verzeichnis erstellen kann.
    Dieses Verzeichnis wird dann an die nächste Seite übergeben:

    PHP-Code:
    echo "<a href=\"upload.step2.php?new=".$DirName."\" class=\"menu\">Weiter zu Schritt 2</a></b><br/>"
    Auf dieser Seite soll man dann Bilder in das zuvor erstellte Verzeichnis uploaden können:

    PHP-Code:
    $CONFIG[directory] = "bilder/".$new;
    (...)
    if(
    file_exists("$CONFIG[directory]/$datei1")) {
    $fehler .="Die Datei Nr.$num existiert bereits auf dem Server.<br>";
    } elseif(
    $ok!="2") {
    copy ($datei3"$CONFIG[directory]/$datei1");
    $fehler .="Datei Nr.$num wurde hochgeladen.<br>"
    Das Problem ist, wenn ich $new durch eine Konstante (z.B. Test) ersetze, funktioniert das Skript tadellos.
    Aber wenn ich es mit der Variable verwende, werden die Dateien nicht in das zuvor erstellte Verzeichnis, sonder in die Ebene dadrüber (in diesem Fall "bilder") upgeloaded.

    Weiss einer, wo die Ursachem für diesen Fehler liegt und wie ich den beheben kann?
    Ich weiss einfach nicht mehr weiter...

    Schon mal vielen Dank für Eure Hilfe,

    so long
    Sevenger

  • #2
    evt an register globals.
    nimm mal statt $new $_GET['new']
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Danke, es ändert aber leider nichts.
      Der Fehler ist der gleiche, das Bild wird immer noch in /bilder statt in /bilder/test upgeloaded.

      ;(

      so long
      Sevenger

      p.s.: Kleine Ergänzung:
      Die Variable $new wird korrekt übergeben.
      Ich habe auf der zweiten Seite eine Ausgabe, in der über Echo auch $new angezeigt wird.
      Diese Aussgabe ist soweit richtig.
      Zuletzt geändert von Sevenger; 23.08.2003, 20:50.

      Kommentar


      • #4
        [Vermutung=ON]

        Oder der abschließende Slash fehlt, so dass PHP $new für einen Dateinamen hält und ihn deshalb streicht, weil er ja den Typ "Verzeichnis" erwartet?

        PHP-Code:
        $CONFIG[directory] = "bilder/".$new."/"
        [Vermutung=OFF]

        Kommentar


        • #5
          Hatte ich auch schon vermutet, hat aber auch nix geholfen....

          Das Problem scheint ja echt irgendwie komplizierter zu sein, als ich ursprünglich erwartet hab.

          so long
          Sevenger

          Kommentar


          • #6
            verfolge halt mal den Weg Deines $new mit ein paar echos dann wirste schon sehen woran es liegt
            und $CONFIG['directory'] auch...
            btw solltest Du Text von variablen trennen und verketten
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Mir kommt der Index des Arrays $config auch etwas spanisch vor.
              Müsste es nicht so heißen?
              PHP-Code:
              $CONFIG['directory'] = "bilder/".$new;
              (...)
              if(
              file_exists($CONFIG['directory']."/".$datei1)) {
              $fehler .="Die Datei Nr.$num existiert bereits auf dem Server.<br>";
              } elseif(
              $ok!="2") {
              copy ($datei3$CONFIG['directory']."/".$datei1);
              $fehler .="Datei Nr.$num wurde hochgeladen.<br>"
              Was gibt er denn aus, wenn Du Dir per echo die Variable $CONFIG['directory'] ausgeben lässt?

              Kommentar


              • #8
                Bei echo "$CONFIG[directory]"; bekomme ich, wenn ich vorher das Verzeichnis "nerv" erstellt habe das zurück:
                bilder/nerv

                sieht ja schon mal nicht schlecht aus

                Werde jetzt noch mal Deinen Vorschlag testen...


                so, hab jetzt getestet:
                Bekomme diese Fehlermeldung:
                Warning: Division by zero in /www/htdocs/seve/index-links/upload.step2.php on line 63

                Warning: Division by zero in /www/htdocs/seve/index-links/upload.step2.php on line 66


                In den betreffenden Zeilen steht folgendes:
                PHP-Code:
                Zeile 63: }
                Zeile 64: }
                Zeile 65: if(!$fehler) {
                Zeile 66$fehler .= "Es wurde keine Datei ausgewählt.<br>"
                so long
                Sevenger
                Zuletzt geändert von Sevenger; 23.08.2003, 21:25.

                Kommentar


                • #9
                  Division durch 0?

                  Ich sehe keine Division - zumindest nicht bei dem Teil des Sripts, den Du gepostet hast.

                  Aber bleib am Ball, das kriegen wir hin. :-)
                  Zuletzt geändert von DSB; 23.08.2003, 21:30.

                  Kommentar


                  • #10
                    Zuerst mal vielen Dank für die rege Hilfe, mit "vereinten Kräften" muss dem doch bei zu kommen sein

                    Ich poste mal mehr von dem Quellcode, vielleicht hilft das ja?

                    PHP-Code:
                    $CONFIG[directory] = "bilder/".$new;
                    $CONFIG[RequirePass] = "Nein";      # Soll eine Passwortabfrage benutzt werden? (Ja oder Nein)
                    $CONFIG[Password] = "passwort";     # Hier das Passwort eintragen
                    $CONFIG[UploadNum] = "3";           # Nummer der Upload-Felder
                    $CONFIG[File_Size] = "5000000";       # Maximale Datei größe in Bytes
                    echo $CONFIG[directory]";
                    if(
                    $action=="upload") {
                    if(
                    $CONFIG[RequirePass] == "Ja") {
                    if(
                    $password != "$CONFIG[Password]") {
                    $fehler .="Das von ihnen eingegebene Passwort ist falsch!<br>";
                    exit;
                    }
                    }
                    $num = 0;
                    while(
                    $num < $CONFIG[UploadNum]) {
                    $num++;
                    $datei = "fileup$num"."_name";
                    $datei1 = $$datei;
                    $datei2 = "fileup$num";
                    $datei3 = $$datei2;
                    if(
                    $datei3 != "none") {
                    $filesizebtyes = filesize($datei3);
                    $ok = 1;
                    if(
                    $filesizebtyes!="0") {
                    if(
                    $filesizebtyes < 10) {
                    $ok="2";
                    $fehler .="Datei Nr.$num ist kleiner als 10 Bytes.<br>";
                    }
                    if(
                    $filesizebtyes > $CONFIG[File_Size]) {
                    $ok="2";
                    $fehler .="Datei Nr.$num ist zu groß.<br>Sie darf Maximal $CONFIG[File_SizeBytes haben!<br>";
                    }
                    if(file_exists("
                    $CONFIG[directory]/$datei1")) {
                    $fehler .="Die Datei Nr.$num existiert bereits auf dem Server.<br>";
                    } elseif(
                    $ok!="2") {
                    copy (
                    $datei3, "$CONFIG[directory]/$datei1");
                    $fehler .="Datei Nr.$num wurde hochgeladen.<br>";
                    }
                    }
                    }
                    if(!
                    $fehler) {
                    $fehler .= "Es wurde keine Datei ausgewählt.<br>";
                    }
                    exit; 
                    so long
                    Sevenger

                    EDIT:

                    wow, das wichtigste hab ich direkt vergessen :
                    /****************************************
                    Simple Uploader
                    http://www.PHPKing.de
                    Copyright © 2002 by [cyber]
                    Dieses Script darf frei benutzt werden,
                    solange das Copyright bestehen bleibt!
                    *****************************************/


                    (ich hab den Jungs schon ne mail geschickt, mit der Frage, ob ich das Skript überhaupt verändern darf.
                    Wenn sie mir das erlauben, werde ich auch bei denen sonst noch mal fragen, ob die n Plan haben, was falsch ist...
                    Zuletzt geändert von Sevenger; 23.08.2003, 21:49.

                    Kommentar


                    • #11
                      Original geschrieben von Sevenger
                      [PHP]
                      echo $CONFIG[directory]";
                      Das Gänsefüßchen am Ende ist zu viel.
                      Kommt die Fehlermeldung deshalb?

                      Kommentar


                      • #12
                        Vermutlich nicht, das echo wurde ja korrekt ausgegeben.

                        Die Fehlermeldung kam, nachdem ich den Code hierhin abgeändert habe:
                        PHP-Code:
                        $CONFIG['directory'] = "bilder/".$new;
                        (...)
                        if(
                        file_exists($CONFIG['directory']."/".$datei1)) {
                        $fehler .="Die Datei Nr.$num existiert bereits auf dem Server.<br>";
                        } elseif(
                        $ok!="2") {
                        copy ($datei3$CONFIG['directory']."/".$datei1);
                        $fehler .="Datei Nr.$num wurde hochgeladen.<br>"
                        Verzeiht bitte, wenn ich jetzt Fehler mach, aber dieser Code macht mich fertig.
                        Ich habe angefangen mich hemmungslos zu betrinken, damit mir heute nacht nicht php Befehle durch den Traum schwirren.
                        Vielleicht sehe ich morgen klarer

                        so long
                        Sevenger

                        Kommentar


                        • #13
                          Da geht es Dir ja, wie mir.
                          Nach meinem fünften, leckeren Weizenbier, habe ich auch gerade so meine Probs. :-)

                          Was aber klar zu sein scheint: nachdem ich den Code für das Script gesehen habe, scheint der Aufruf $CONFIG[directory] wohl richtig zu sein.
                          Also versuch es nochmal so und schreibe mir mal, was dann das Ergebnis ist.

                          PHP-Code:
                          $CONFIG[directory] = "bilder/".$new;
                          (...)
                          if(
                          file_exists($CONFIG[directory]."/".$datei1)) {
                          $fehler .="Die Datei Nr.$num existiert bereits auf dem Server.<br>";
                          } elseif(
                          $ok!="2") {
                          copy ($datei3$CONFIG[directory]."/".$datei1);
                          $fehler .="Datei Nr.$num wurde hochgeladen.<br>"
                          Und jetzt bin ich echt gespannt.

                          Kommentar


                          • #14
                            Tataaa:
                            Parse error: parse error, unexpected '\"', expecting ',' or ';' in /www/htdocs/seve/index-links/upload.step2.php on line 36

                            *narf*, ich hasse php

                            Ich glaube ich brauche mehr alkohol, das erträgt man nüchtern ja nicht mehr

                            PHP-Code:
                            $CONFIG[directory] = "bilder/".$new;
                            $CONFIG[RequirePass] = "Nein";      # Soll eine Passwortabfrage benutzt werden? (Ja oder Nein)
                            $CONFIG[Password] = "passwort";     # Hier das Passwort eintragen
                            $CONFIG[UploadNum] = "3";           # Nummer der Upload-Felder
                            $CONFIG[File_Size] = "5000000";       # Maximale Datei größe in Bytes
                            echo $CONFIG[directory]";
                            if(
                            $action=="upload") {
                            if(
                            $CONFIG[RequirePass] == "Ja") {
                            if(
                            $password != "$CONFIG[Password]") {
                            $fehler .="Das von ihnen eingegebene Passwort ist falsch!<br>";
                            exit;

                            die letzte zeile (}) ist Zeile 36...

                            so long
                            Sevenger

                            Kommentar


                            • #15
                              Dann ändere doch endlich mal die Zeile:
                              PHP-Code:
                              echo $CONFIG[directory]"; 
                              in
                              PHP-Code:
                              echo $CONFIG[directory]."<br>"

                              Kommentar

                              Lädt...
                              X