fehler bei post-upload

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

  • fehler bei post-upload

    auch wenn das thema jetzt etwas trivial erscheint:

    aber ich komm nicht dahinter:

    bei einem einfachen http-post-upload (z.B: ein Bild hochladen) bekomme ich die Meldung

    open_basedir restriction in effect. File is in wrong directory in /usr/local/httpd/htdocs... on line...

    in der betreffenden line steht:

    PHP-Code:
    copy($fupload,$path); 
    $fupload ist: /tmp/phpe3...

    $path geht von der gleichen pfadebene aus (ab open_basedir) bis in das Verzeichnis, in dem die Datei kopiert werden soll (chmod 777).

    Was mich allerdings etwas zum stutzen bringt:

    mit phpinfo(); bekomme ich die Pfadangaben für den open_basedir und den upload_temp_dir.

    der upload_temp_dir ist dort aber mit /phptmp/ angegeben... statt /tmp/ wie mir $fupload anzeigt. Kann das der fehler sein?

    obendrein kommt noch dazu, dass der 3-Zeiler bis vorkurzem keine Schwierigkeiten machte. Mein Provider meint aber, es liegt an meinem Script! - **ratlos

    ** ich will doch nur ein bildchen hochladen, das kann doch nicht so schwer sein, oder?!!??

  • #2
    Poste mal den Komplette Scriptabschnitt und die kompletten Fehlermeldungen.
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      PHP-Code:

      if (isset($fupload)){
          
      $picName=$fupload_name;
          
      $path="/html/ziel/test/$picName"// hab hier schon alles mögliche probiert
          
      copy($fupload,$path);
      }
      echo 
      $fupload;
      echo 
      $path;
      phpinfo(); 
      AUSGABE:

      Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/httpd/htdocs/home/www/meinweb/html/ziel/upload.php on line 9

      /tmp/phpovLHXC
      /html/ziel/test/bildchen.gif

      open_basedir: /usr/local/httpd/htdocs/home/www/meinweb/ no value

      upload_tmp_dir: /usr/local/httpd/htdocs/home/www/meinweb/phptmp/ no value

      Kommentar


      • #4
        gib mal $path nur realtiv nicht absolut an. und hast du in dem <form> auch den enctype drin?
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          setzte mal auf das zielverzeichnis die rechte 777.

          und ist php_upload in der php.ini auf on?
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            chmod bei test ist auf 777
            upload ist seitens provider auf on
            $path habe ich in sämtlichen abwandlungen geschrieben:

            $path="/test";
            $path="test";
            $path="/test.$picName";
            $path="test.$picName";
            ... etc

            Formular für upload:

            <form enctype="multipart/form-data" action="upload.php" method="post">
            <input type="hidden" name="MAX_FILE_SIZE" value="100000">
            <input type="file" name="fupload" class="formfield">&nbsp;&nbsp;
            <input type="submit" name="goUpload" value="Hochladen!" class="formfield">
            </form>

            Das bild ist auch nicht größer als 100000.

            Da die Fehlermeldung aber offensichtlich über die Pfadangaben mit mir streitet, wird da wohl irgendwo der Fehler liegen, Denn das Bild ist bereits in dem Tempverzeichnis (upload erfolgreich), weil ich es ja mit _name etc abfragen kann.

            Kommentar


            • #7
              der zielpath ist vom root-fs zu sehen. und nicht vom webroot

              wahrscheinlich webroot
              $path="/test";

              root-fs
              $path="/home/www/deinuser/deinwww/test";
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                seht euch aber mal das an:


                echo $fupload; // ausgabe: /tmp/phpovLHXC

                phpinfo(); // ausgabe:

                open_basedir: /usr/local/httpd/htdocs/home/www/meinweb/
                upload_tmp_dir: /usr/local/httpd/htdocs/home/www/meinweb/phptmp/

                könnte das nicht der pfadkonflikt sein?

                müßte dann wenn ich

                echo $fupload; // ausgabe /phptmp/phpovLHXC

                kommen????

                Kommentar


                • #9

                  der zielpath ist vom root-fs zu sehen. und nicht vom webroot
                  sprich ab open_basedir, gell? ->

                  /usr/local/httpd/htdocs/home/www/meinweb/ <- ab hier die pfadangabe des Zielverzeichnisses

                  wird ja auch immer im konflikt angegeben, open_basedir restriction...

                  vielleicht habe ich auch keine leserechte für tmp...
                  Zuletzt geändert von mute; 15.05.2003, 14:55.

                  Kommentar


                  • #10
                    Original geschrieben von mute
                    sprich ab open_basedir, gell? ->

                    /usr/local/httpd/htdocs/home/www/meinweb/ <- ab hier die pfadangabe des Zielverzeichnisses
                    aber inclusive dem basedir.

                    noch was.

                    verwende mal $_FILES bzw $HTTP_POST_FILES

                    und noch besser... schaue mal hier uns lies alles laaaangsam durch.
                    http://de.php.net/manual/de/features.file-upload.php
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      endlich es hat geklappt:

                      danke, Abraxax, für den hinweis auf php.net, und die kompletten root dazu zu benutzen

                      fazit:
                      mit

                      move_uploaded_file (http_post_files)

                      hat es dann geklappt :

                      mit

                      copy (http_post_files)

                      geht es nicht!


                      der Version ( 4.0.6 :-( ) halber konnte ich $_FILES nicht verwenden...

                      meine kopfschmerzen lassen jetzt langsam nach

                      Kommentar


                      • #12
                        Original geschrieben von mute
                        der Version ( 4.0.6 :-( ) halber konnte ich $_FILES nicht verwenden...
                        aber $HTTP_POST_FILES kannst du dann statt $_FILES verwenden...

                        damit läuft das script dann auch noch nach einem php-update ohne probleme.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar

                        Lädt...
                        X