problem mit per mkdir() erstellten ordnern

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

  • problem mit per mkdir() erstellten ordnern

    hi

    das erste problem hat sich gelöst.. jetzt klappt was anderes im gleichen zusammenhang nich.. steht ca 5 posts weiter unten

    ich habe auf meinem webspace einige ordner von einem script über mkdir() erstellen lassen.. die ordner wurden alle erstellt und es lief wunderbar.. aber jetzt wollte ich das script reseten. dazu musste ich die ganzen, neu erstellten ordner wieder löschen. aber wenn ich das machen will dann kommt eine fehlermeldung im ftp programm:
    550 /html/rude-fabian/gallery/thumbnails/10/25.jpg: Permission denied.

    auch wenn ich die dateien per rmdir() bzw unlink() löschen will, dann klappt das nicht (habe eine funktion zum löschen von ordnern mit inhalt aus dem forum hier)

    weiß jemand an was das liegen kann? und wie kann ich die ordner trotzdem löschen?

    achja.. falls es von bedeutung ist:
    ich benutze das ftp programm "Perfect FTP" (is freeware ). ein freund hat auch versucht den ordner zu löschen und bei ihm kam die gleiche oder eine ähnliche fehlermeldung (er benutzt WS_FTP )
    die ordner wurden mit chmod 755 erstellt.

    mfg
    whizzler

    edit: falls das hier das falsche forum ist bitte verschieben.. hab irgendwie nix gefunden wo das wirklich reinpasst
    Zuletzt geändert von WhiZZler; 08.12.2003, 19:24.

  • #2
    ob es das falsche forum ist, ist so ein graubereich ... ich lasse es mal hier.

    so. wenn du mit php (also user: apache) ein verzeichnis anlegst, so gehört diese DIR auch dem apache-user.

    wenn du nun die rechte 755 hast, kann der apache-user lesen/schreiben/ausführen.

    alle anderen können nur lesen/ausführen. also nicht schreiben und damit auch nicht löschen.

    jetzt kommst du mit deinem ftp-proggi. dort loggst du dich aber nicht als apache-user ein, sondern mit DEINEM ftp-account. und der ist nicht gleich dem apache-user. also kannst du nur lesen und ausführen bei den verzeichnissen machen.

    du kannst es entweder mit einem php-script löschen, welches dann logischerweise als apache-user zugriff hat. oder du sagst deinem hoster bescheid, dass er die DIRs löschen soll.

    das mit dem script hast du ja schon probiert. nur ohne erfolg. das macht mich ein wenig stutzig. check das noch einmal ab.

    ---

    noch was für die zukunft. lege verzeichnisse mit 777 unter php an, damit du als ftp-user damit auch noch was machen kannst. bei dateien entsprechend 666 verwenden.


    EDIT:
    ach ja... das verwendete ftp-programm spielt hierbei keine rolle...
    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


    • #3
      danke für die schnelle antwort

      ich habe bei der mkdir() funktion das optionale zweite parameter weggelassen, weil auf php.net stand, dass dieses paramater standard mäßig auf 0777 steht. (meine ich jedenfalls gelesen zu haben..)

      hab ich das jetzt richtig verstanden, dass die datei, die mit php hochgeladen bzw erstellt wird einen anderen "eigentümer" hat als eine datei, die mit dem ftp programm erstellt wird? trifft dann die erste zahl vom chmod nur auf scripte zu, die auf dem server ausgeführt werden?

      ich hab mich auf jeden fall mal bei meinem hoster gemeldet.. ich probier auch nochmal die verzeichnisse mit nem script zu löschen..

      Kommentar


      • #4
        wenn das so mit dem löschen in einem fto-programm nicht geht, dann geh mal in den entsprechenden ordner und schreib in die befehlszeile: del dateiname.gfx

        das hat mir schonmal geholfen...

        Kommentar


        • #5
          hab ich das jetzt richtig verstanden, dass die datei, die mit php hochgeladen bzw erstellt wird einen anderen "eigentümer" hat als eine datei, die mit dem ftp programm erstellt wird?
          im normalfall JA. man(n) kann den apache auch so konfigurieren, dass er dateien entsprechend den rechten des ftp-users anlegt. aber das ist eben nicht der standard.

          daher kannst du auf jeden fall bei dir davon ausgehen apache-user != ftp-user



          trifft dann die erste zahl vom chmod nur auf scripte zu, die auf dem server ausgeführt werden?
          du solltest dich einfach mal mit den rechten im linux/unix-dateisystem vertraut machen. dann weisst du mehr.
          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
            alles klar
            danke für die antworten

            edit:
            das ursprüngiche problem hat sich mittlerweile erledigt..

            ich habe den teil, an dem die verzeichnisse in meinem script erstellt werden nun geändert..
            es sieht folgendermaßen aus:
            PHP-Code:
            mkdir("../gallery/thumbnails/".$id.""0777) OR DIE ("Verzeichniss konnte nicht erstellt werden!"); 
            ich bekomme die fehlermeldung nicht ausgegeben, jedoch werden die verzeichnisse trotzdem mit chmod 755 erstellt.

            was stimmt da nicht?
            Zuletzt geändert von WhiZZler; 08.12.2003, 19:16.

            Kommentar


            • #7
              Original geschrieben von WhiZZler
              was stimmt da nicht?
              spntan würde ich sagen ..... k.a.
              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
                hmm.. ich poste hier mal den gesamten ganzen code, bei dem die ordner erstellt werden.. vielleicht liegt der fehler ja irgendwo außerhalb der mkdir() funktion..

                PHP-Code:
                elseif ($mode == "insert")
                {
                    
                $id_q "SELECT id FROM alben ORDER BY id DESC LIMIT 1";
                    
                $id_r mysql_query($id_q) OR DIE (mysql_error());
                    
                $id_row mysql_fetch_object($id_r);
                    
                $id $id_row->id 1;

                    
                $sid session_id();
                    
                $a_query mysql_query("SELECT nick FROM admins WHERE UserSession = '$sid'");
                    
                $a_row mysql_fetch_object($a_query);
                    
                $autor $a_row->nick;

                    
                $name $_POST["name"];
                    
                $query "INSERT INTO alben (name, autor, id) VALUES ('$name', '$autor', '')";
                    
                $result mysql_query($query) OR DIE (mysql_error());

                    if (
                mkdir("../gallery/media/".$id.""0777) AND mkdir("../gallery/thumbnails/".$id.""0777))
                    {
                        echo 
                "Die Verzeichnisse wurden angelegt und das Album wurde eingetragen!";
                    }
                    else
                    {
                        echo 
                "Die Verzeichnisse konnten nicht angelegt werden!";
                    }

                mfg
                whizzler

                Kommentar


                • #9
                  spontan fällt mir nichts auf.

                  aber die beiden mkdir() solltest du ggfls getrennt machen.

                  es könnte sein, das ein verzeichnis angelegt wird, das andere aber nicht.
                  dann müsstest du in der lage sein, das erste ggfls wieder zu löschen.
                  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