[Funktion] probleme mit mkdir()

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

  • [Funktion] probleme mit mkdir()

    hallo,
    schreibe gerade das 1.000.000.000ste gb-script, das "dau-sicher"
    sein soll. d.h. der user lädt das script per
    - ftp-client
    - oder per ftp-script (server-2-server)
    auf seinen webspace und ruft es per browser auf. soweit so gut.

    das script prüft, ob ein ordner existiert und verschiedene dateien darin
    liegen:
    PHP-Code:
    $datei "gb.txt";
    $config "config.php";
    $dir "gb";

    if(!
    is_dir($dir))
    {
     
    mkdir($dir,0777);
     
    // schreibe dateien ...
    }

    // weiter ... 
    ziel ist quasi ein autoinstall zu haben, ohne dass der user per ftp ordner
    mit rechten anlegen muss, sondern dass das script die notwendigen
    einstellungen übernimmt.

    leider gibts permanent "Permission denied in /www/htdocs/..." sobald ich
    das script im webroot laufen lasse. wie kann man soetwas bewerkstelligen?

    thx
    wurzel

    PS: ja, ich hab gesucht ... aber keine lösung gefunden
    Zuletzt geändert von Wurzel; 12.05.2003, 15:52.
    Kissolino.com

  • #2
    dir oder deiner benutzergruppe fehlt das zugriffs - bzw. schreibrecht für den ordner, in dem du mit mkdir operierst (nich der ordner, den du erstellen willst). Lass dir mit dem folgendem Ausdruck das derzeitige Verzeichnis zurückgeben, es auf Beschreibbarkeit prüfen und wenn das der Fall is deinen neuen Ordner erstellen:

    $dir = new dir("./");

    if(is_writeable($dir->path))
    {mkdir("dirpfad", "0777");}

    edit: achja, greif mal mitn FTP Prog auf das Verzeichnis zu wo dein Script liegt (also in dem das neue Verzeichnis erstellt werden soll) und versuch mal mit CHMOD oder so ner Option (bei cute_FTP heißts so bei Rechtsklick) die Schreibrechte dafür zu ändern.

    Kommentar


    • #3
      hab noch was entdeckt:
      sobald "safe_mode" on ist, geht die sache in die hose.

      ich könnte zwar per ftp-fkts einen ordner erstellen, dann müssen
      aber auch alle weiteren aktionen per ftp-fkts laufen, da auch ein
      nachträglicher chmod() am "safe_mode" scheitert.

      womit sich die frage (mal wieder) stellt, kann mann den "safe_mode"
      für die eine operation => mkdir() abschalten/umgehen, so dass ein
      verzeichnis erstellt wird und das script später dateien lesen & schreiben
      kann, ohne dass der user sein ftp-prog bemühen muss?



      @ MaxPayne
      PHP-Code:
      $dir = new dir("./");

      if(
      is_writeable($dir->path))  // das ist nicht das problem
      {
        
      mkdir("dirpfad""0777");

      else
      {
        
      // was mach ich hier ??? ausser ner Fehlermeldung ???

      edit: achja, greif mal mitn FTP Prog auf das Verzeichnis zu wo dein Script liegt (also in dem das neue Verzeichnis erstellt werden soll) und versuch mal mit CHMOD oder so ner Option (bei cute_FTP heißts so bei Rechtsklick) die Schreibrechte dafür zu ändern.
      genau das will ich ja vermeiden
      Kissolino.com

      Kommentar


      • #4
        problem lässt sich scheinbar nur so lösen:

        PHP-Code:
        if(!is_dir($dir))
        {
        $connection ftp_connect('www.domain.tld');
        $username 'xy';
        $pass 'yz';
        $login_result ftp_login($connection,$username,$pass);

        if ((!(
        $login_result)) or (!($connection)))
        {
          
        // fehlermeldung
        }
        else
        {
        ftp_mkdir($connection,$dir);
        ftp_close($connection);
        }
        chmod($dir,0777);

        liefert auf manch einem server der chmod() den fehler
        "Operation not permitted..." obwohl script und verzeichnis
        per ftp und damit unter demselben user erstellt wurden.

        weiss jemand noch ne lösung?
        Kissolino.com

        Kommentar


        • #5
          Mit den Fehlermeldungen bei genau diesem Problem könnte ich auch Wände vollpflastern..
          Anscheinend gehört ein per mkdir() erstelltes Verzeichnis nicht dem User des Scripts sondern dem User, unter dem der Apache läuft. Und wenn der Safe Mode aktiviert ist, geht überhaupt nichts mehr.

          Eine Lösung habe ich auch nicht.
          [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
          [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
          [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

          © Harald Schmidt

          Kommentar


          • #6
            *grmpf*

            alles, was mich daran tröstet, ist die tatsache, dass ich nicht allein im
            regen stehe . muss ich mir halt was anderes einfallen lassen.

            gruss
            wurzel
            Kissolino.com

            Kommentar


            • #7
              kannst du nicht per ftp die zugriffsrechte ändern?
              direkt nach dem ordner erstellen ein ftp_site hinterherschießen oder so?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X