phpbar.de logo

Mailinglisten-Archive

[php] File-/Dir-Parameter wollen nicht gelesen werden

[php] File-/Dir-Parameter wollen nicht gelesen werden

Marian Steinbach marian_(at)_sendung.de
Sun, 15 Aug 1999 16:29:07 +0200


Hallo miteinander!

Gut, daß man in Köln Sonntags nicht einkaufen kann. So kann man
sich mit kleinen PHP-Problemchen vergnügen.

Mein Problemchen ist folgendes: Ich habe auf einem Webserver
(Linux/ Apache 1.3.4/ PHP 3.0.5 CGI) ein zugriffsbeschränktes
Admin-Verzeichnis mit allerlei File-Manipulationsschnickschnack
angelegt. Bevor man jedoch Dateien oder Verzeichnisse zur
Bearbeitung, Löschung, Umbenennung etc. auswählt, sollte man
diese in einer ausführlichen Liste angezeigt bekommen (so eine
Art "ls -l").

Hier mein Code:

<schnipp>
	?>
	<table>
	<tr><th>Typ</th><th>Name</th>
	<th>Größe</th><th>Besitzer</th>
	<th>Gruppe</th><th>Rechte</th>
	<th>letze Änderung</th></tr>
	<?
	if (!$path) {
		$path = $DOCUMENT_ROOT;
	}
	// $path kann später über Query-String 
	// überschrieben werden
	$handle = opendir($path);
	while ($file = readdir($handle)) {
	  ?>
	  <tr>
	  <td><input type="radio" name="filename" 
	  	value="<? echo $file ?>"></td>
	  <td><? echo filetype($file) ?></td>
	  <td><b><? echo $file ?></b></td>
	  <td><? echo filesize($file) ?> Bytes</td>
	  <td><? echo fileowner($file) ?></td>
	  <td><? echo filegroup($file) ?></td>
	  <td><? echo fileperms($file) ?></td>
	  <td><? echo date("d.m.y H:i:s", filemtime($file)) ?></td>
	  </tr>
	  <?
	}
	closedir($handle);
	?>
	</table>

</schnipp>

Der Code funktionierte auch in dem Verzeichnis, in dem das
Script selbst liegt, einwandfrei. In anderen Verzeichnissen
bekomme ich jedoch scheinbar willkürlich den Effekt, daß ab
bestimmten Dateien oder Verzeichnissen keine Werte wie
filetype($file) etc mehr abgerufen werden können. Die Ausgabe
ist dann für diese  Files/Dirs leer (alleine $file wird noch
ausgespuckt). Beispiel:

<schnipp>
Typ   Name      Größe       Besitzer   Gruppe   Rechte   letze
Änderung 
dir   .         1024 Bytes  1323       600      16837   
15.08.99 15:42:10 
dir   ..        1024 Bytes  1323       600      16837   
15.08.99 15:57:30 
      cgi-bin        Bytes                              
01.01.70 01:00:00 
      data           Bytes                              
01.01.70 01:00:00 
      ftp            Bytes                              
01.01.70 01:00:00 
      logs           Bytes                              
01.01.70 01:00:00 
file  info.php3  173 Bytes  1323       600      33156   
15.08.99 12:59:43 
</schnipp>

Für mich ist leider überhaupt kein Grund für dieses (scheinbar)
undeterminierte Verhalten zu erkennen. Kann es vielleicht sein,
daß dem Script zum Abfragen der Attribute mancher Dateien bzw.
Verzeichnisse die Rechte fehlen?

Ich wäre Euch für Eure Hilfe echt dankbar. Wenn übrigens jemand
Interesse an dem fertigen Script hat, bin ich gerne bereit, es
zu veröffentlichen. Wie bereits erwähnt, es handelt sich um
einen Web-basierten Filemanager und -editor.

Danke!

Marian


php::bar PHP Wiki   -   Listenarchive