Rechteproblem bei Bildupload

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

  • Rechteproblem bei Bildupload

    Hallo,

    ich hab folgendes Problem bei einem Bildupload:

    PHP Warning: Unknown: open_basedir restriction in effect. File(c:\temp\) is not within the allowed path(s): (d:/web) in Unknown on line 0 PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0

    Der Server ist gemietet und läuft unter Windows. Also kein CHMOD möglich. Davon mal abgesehen, komme ich auf die d:/web-Ebene schon garnicht, meine Rechte fangen erst bei d:/web/kunde/ an.

    Was kann ich nun tun?
    Safe-Mode will ich anlassen - kann der Mensch, der den Server verwaltet das Standard-temp-Verzeichnis vorwoanders "hindefinieren"?

    Oder kann ich per Script was machen?

    Danke vorab,
    Pust

  • #2
    Ich will jetzt hier nicht über (un)sinn von safe-mode sprechen, es sei nur erwähnt, dass es den in der nächsten Version wohl nicht mehr geben wird...

    Um deine Frage zu beantworten: Natürlich kann dein Admin das upload_tmp_dir ändern. Ob das dein Problem dann behebt, ist eine andere Frage.

    Kommentar


    • #3
      Hm, also folgendes hat der Serveradmin mir geschrieben:

      --->
      OK, habe mal temp und tmp nach d:\web\default\temp (wie PHP Upload-Dir und Co.) verschoben.

      TEMP=d:\web\default\temp\1
      TMP=d:\web\default\temp\1

      (wieso er die \1 noch dranmacht keine Ahnung)
      <---

      Der Pfad, ab da, wo ich Kunde bin, lautet:

      d:/web/kunde/

      und mein Upload soll da hin:

      d:/web/kunde/testpage.de/htdocs/upload/

      Auf einem anderen Server hat das Script funktioniert, der war auch Windows. Ich bin der Meinung, daß es nicht an meinem Script liegt...
      Der Fehler besteht jedenfalls unverändert. Hat mir noch jemand einen Tipp?

      Danke und Grüße,
      Pust

      Kommentar


      • #4
        Die Umgebungsvariablen haben da wenig mit zu tun. Entscheidend ist die php.ini-Einstellung upload_tmp_dir.

        Kommentar


        • #5
          Okay, und muß der Pfad davon im gleichen Verzeichnisbaum sein, wie die Datei, mit der ich arbeite?

          Ich meine, die Fehlermeldung deutet doch auf ein Rechteproblem hin, was kann ich denn noch tun, das zu beheben??

          Kommentar


          • #6
            Noch etwas code (auch wenn ich glaube, daß es daran nicht liegt, schließlich hat der vor ein paar Wochen noch funktioniert, vor dem Serverumzug...)

            PHP-Code:

            $dateityp 
            GetImageSize($_FILES['datei']['tmp_name']);

            $dateiname=$_FILES['datei']['name'];

            $altername=$dateiname;
            $extension=$dateityp[2];

            if(
            $dateityp[2] == && $dateityp[0] <= 2000 && $dateityp[1] <= 2000)
               {

               if(
            $_FILES['datei']['size'] <  2048000)
                  {


            $dateityp GetImageSize($_FILES['datei']['tmp_name']);

            $breite_alt=$dateityp[0];
            $hoehe_alt=$dateityp[1];

            if (
            $breite_alt $hoehe_alt)  // = querformat
            {
                
            //.... Formate ändern
            }

            if(
            $extension=='1'//Überprüfen, ob GIF oder JPG
             
            {
                  
            $altes_gr imagecreatefromgif($_FILES['datei']['tmp_name']);
             }
            elseif(
            $extension=='2')
             {
                  
            $altes_gr imagecreatefromjpeg($_FILES['datei']['tmp_name']);
             }



                  
            $new_picture_gr  imagecreatetruecolor($breite_neu$hoehe_neu);                  //neues bild definieren

            include("manager/uploadpfade.php");

                
            imagecopyresampled($new_picture_gr$altes_gr0000$breite_neu$hoehe_neu$breite_alt$hoehe_alt);  //resample
                
            imagejpeg($new_picture_gr$pfad_gr.$dateiname80); 

            Kommentar


            • #7
              Erstmal:
              open_basedir !== savemode
              open_basedir Problem !== Rechte Problem

              Rechte sind eine OS spezifische Angelegenheit.
              open_basedir gehört zu PHP.


              phpinfo() zeigt dir die aktuellen Einstellungen.

              Und den Uploadpath kannst du evtl per .htaccess einstellen.
              Das Handbuch sagt dir wie das geht.

              Ganz am Rande:
              Wie wäre es, wenn du die Datei erstmal in deinen Bereich verschiebst, BEVOR du ein halbes Dutzend Funktionen darauf los läßt.
              Zuletzt geändert von combie; 21.07.2008, 11:27.
              Wir werden alle sterben

              Kommentar


              • #8
                Gut, danke für die Antwort. Wie bereits geschrieben, hab ich keinen Einfluß auf den Server und das Zeugs hat vor dem Umzug funktioniert.

                Ich probier jetzt einfach mal eine Datei zu kopieren.

                Aber es gibt ja schon ein Problem beim Anlegen der Temp-Datei und die hat ja mit meinem Script nichts zu tun, der Pfad wird ja in der .ini festgelegt...

                PHP Warning: Unknown: open_basedir restriction in effect. File(c:\temp\) is not within the allowed path(s):
                (d:/web) in Unknown on line 0 PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0

                Wo muß ich also ansetzen??


                Bei open_basedir steht in der info nur
                open_basedir d:/web

                Hab auch jetzt einiges über open_basedir gelesen, hat mir aber nicht viel weitergeholfen, hatte eher das Gefühl, daß das der Serveradmin lesen sollte....

                Kommentar


                • #9
                  Es scheint als sei dein Temp Folder nicht innerhalb des erlaubten Pfades. Was steht denn für eine Pfadangabe bei phpinfo() unter Upload Folder?
                  Wie wäre es, wenn du die Datei erstmal in deinen Bereich verschiebst, BEVOR du ein halbes Dutzend Funktionen darauf los läßt.
                  @combie
                  Ich vermute mal er kommt überhaupt nicht an die Datei ran. Da sein Upload Folder nicht im erlaubten Pfad liegt. imho wäre das Sache des Admins den Temp Folder so festzulegen, dass sich open_basedir nicht mehr daran die Zähne ausbeissen muss.
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    @Pust: Hast du meinen Beitrag überhaupt gesehen? Einfach mal entsprechende Änderungen vornehmen, dass das upload_tmp_dir innerhalb des open_basedir liegt!

                    Kommentar


                    • #11
                      *heul*

                      @beide:

                      @combie
                      Ich vermute mal er kommt überhaupt nicht an die Datei ran. Da sein Upload Folder nicht im erlaubten Pfad liegt. imho wäre das Sache des Admins den Temp Folder so festzulegen, dass sich open_basedir nicht mehr daran die Zähne ausbeissen muss.

                      Genau davon rede ich doch die ganze Zeit! Das ist ja meine Vermutung gewesen! Aber vom Admin hab ich nur die oben geschriebene Antwort darauf bekommen!

                      Was also muß er konkret einstellen, daß es funktioniert?

                      Das upload_temp muß also innerhalb meines Kundenbereichspfades (nenn ich jetzt mal so) liegen, richtig?

                      Kommentar


                      • #12
                        ich habe mal für dich gegoogelt:
                        http://bugs.php.net/bug.php?id=41954
                        So when upload_tmp_dir is unset and open_basedir is set, PHP tries to
                        autodetect temp dir and ends up with /tmp, which is not in
                        open_basedir.
                        sieht also so aus, als wäre upload_tmp_dir bei dir nicht gesetzt, aber den hinweis hattest du auch schon mehrfach erhalten.

                        Kommentar


                        • #13
                          phpinfo:
                          open_basedir d:/web
                          upload_tmp_dir d:/web/default/temp

                          Da wo ich zugriff habe: d:/web/kunde/
                          Drüber nicht! Also auf d:/web/ hab ich keinerlei Rechte!

                          Kommentar


                          • #14
                            @3-DMax
                            Ja, hab ich gelesen. Aber ich hab auch schon gepostet, daß das nicht zutrifft, bzw. die gesetzten Werte gepostet.
                            Gerade nochmal! ;-)

                            Kommentar


                            • #15
                              also irgendwie passt die fehlermeldung nicht zur einstellung.

                              es wird versucht, das uploadfile in c:\temp\ zu erstellen, aber upload_tmp_dir d:/web/default/temp

                              verstehe ich irgendwie nicht

                              Kommentar

                              Lädt...
                              X