Wem gehört der Ordner?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wem gehört der Ordner?

    Ich beiss mir wieder mal die Zähne aus.

    Ich möchte raus bekommen, wem die Ordner gehören.
    Dafür haben ich mir folgendes Script geschrieben:
    PHP Code:
    <?php
    $filelist 
    = array();
    $dir opendir('../ordner');

    while((
    $file readdir($dir)) !== false
    {
        if(
    $file != '.' && $file != '..')
        {
            
    $fileowneruid=fileowner($file); // Zeile 9
            
    $fileownerarray=posix_getpwuid($fileowneruid); 
            
            
    $filelist[] = $file.' | '.$fileowner=$fileownerarray['name'];
        }

    closedir($dir);
    echo 
    '<pre>';
    print_r($filelist);
    echo 
    '</pre>';
    Doch er liefert mir nur folgende Meldung:
    Code:
    Warning: fileowner(): Stat failed for 569 
    (errno=2 - No such file or directory) in 
    /home/www/xxxxxxx/html/xxxxx/folder.php on line 9
    Was mache ich falsch und wie kann ich das ändern.
    Bitte mit Codeschnipsel, danke.
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    Stimmt dein Pfad ?

    Hab auf den ersten Blick nichts falsches entdeckt und dein Schnipsel 1:1 übernommen und hab als Ausgabe

    Code:
    Array
    (
        [0] => Templateclass | nobody
        [1] => dbclass | nobody
        [2] => getdirclass | nobody
        [3] => umclass | nobody
        [4] => thumb.php | owner
        [5] => test.php | owner
    )
    erhalten......Demnach gibt es keinen Fehler
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Comment


    • #3
      @derHund
      Kann es sein, dass du die Datei test.php genannt hast und dir das Verzeichnis ausgegeben gelassen hast, in dem diese test.php liegt?

      @Wotan
      Ich tippe mal auf ein falsches Verzeichnis
      Wenn das Skript im Verzeichnis test liegt und du dir ../test2 ausgeben lassen willst, dann bekommst du eben diese Meldungen.
      Das liegt daran, dass in $file nur der Dateiname, z. B. folder.php, steht. PHP versucht dann, diese Datei im aktuellen Verzeichnis (da wo das Skript liegt, also test) zu finden, wo sie aber nunmal nicht vorhanden ist.

      Arbeite am besten immer mit absoluten Pfadangaben:
      PHP Code:
      $filelist = array();
      $dirname realpath('../files').DIRECTORY_SEPARATOR;
      $dir opendir($dirname);

      while ((
      $file readdir($dir)) !== false) {
          if(
      $file != '.' && $file != '..') {
              
      $fileowneruid=fileowner($dirname.$file);
              
      $fileownerarray=posix_getpwuid($fileowneruid); 
              
      $filelist[] = $file.' | '.$fileowner=$fileownerarray['name'];    }

      closedir($dir);
      echo 
      '<pre>';
      echo 
      $dirname;
      print_r($filelist);
      echo 
      '</pre>'
      Ich denke, also bin ich. - Einige sind trotzdem...

      Comment


      • #4
        @derHund
        Kann es sein, dass du die Datei test.php genannt hast und dir das Verzeichnis ausgegeben gelassen hast, in dem diese test.php liegt?
        hmm, kann sein ... ehrlich gesagt kann ich mich nicht mehr genau daran erinnern ... hmm. warte, ich schau mal.

        Die Zeit hat ihre Kinder längst gefressen

        Comment


        • #5
          Original geschrieben von mrhappiness
          @derHund
          Kann es sein, dass du die Datei test.php genannt hast und dir das Verzeichnis ausgegeben gelassen hast, in dem diese test.php liegt?
          Ich hab zwar noch keine gespaltene Persönlichkeit aber es ist so wie du sagst
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Comment


          • #6
            So nun die fertige Lösung für alle die es interessiert:
            PHP Code:
            $filelist = array();
            $dirname = ('/home/www/xxx/html/xxx/kunde_pdf/');
            $dir opendir($dirname);
            while ((
            $file readdir($dir)) !== false)
            {
                if(
            $file != '.' && $file != '..')
                {
                    
            $fileowneruid fileowner($dirname.$file);
                    
            $fileowneruidarray posix_getpwuid($fileowneruid); 
                    
            $fileowner $fileowneruidarray['name'];
                    
            $fileownergid filegroup($dirname.$file);
                    
            $fileownergidarray posix_getgrgid($fileownergid); 
                    
            $filegroup $fileownergidarray['name'];
                    if(
            $fileowner != 'xxx')
                    {
                        
            chown($dirname.$file'xxx');
                        
            chgrp($dirname.$file'xxx');
                        
            $filelist[] = $file.' | '.$fileowner.' '.$filegroup;
                    }
                }

            closedir($dir);
            echo 
            '<pre>';
            print_r($filelist);
            echo 
            '</pre>'
            Das aufrufen lassen per Cron alle 15 Minuten und es wird der entsprechende Hauptordner geprüft und die Unterordner geändert.

            Diese Lösung musste ich mir einfallen lassen, weil ich per Web-Browser Ordner anlegen lasse, nun habe ich aber das Problem, das ich in diese Ordner keine Files hochladen kann.
            Also der Umweg über die Console.
            Last edited by Wotan; 27-01-2005, 22:06.
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Comment

            Working...
            X