php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2008, 11:47  
Neuer Benutzer
 
Registriert seit: 15.12.2008
Beiträge: 17
Mr Wrong befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Komme nicht weiter, dateianzeige

Guten Morgen liebe Phpler,

ich hab mir nen kleines Script geschrieben das dateien aus einem bestimmten ordner ausliest. Soweit auch kein Problem
PHP-Code:
$dir_handle opendir($path);
while (
$filename readdir($dir_handle))
{
    if (
$filename != '..' && $filename != '.' &&  !is_dir("$path/$filename") )
    {......... 
so dateien aus dem vorher festgelegten verzeichniss werden angezeigt, eventuelle ordner werden nicht angezeigt. Jetzt möchte ich das ganze aber erweitern und zwar sollen nur dateien angezeigt werden die chmod 777 haben. mit
PHP-Code:
 if(fileperms($file) & 777 ){ 
geht das nicht. Ich hoffe ihr könnt mir da helfen

Mr Wrong
Mr Wrong ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.12.2008, 11:56  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

PHP-Code:
 if(fileperms($file) & 777 ){ 
Was ist das bitte für eine Syntax? Grundlagen lernen!

Und bitte ändere deinen Threadtitel.

Lösung:

PHP-Code:
 if($filename != '..' && $filename != '.' &&  !is_dir("$path/$filename") && fileperms("$path/$filename") == 777 ){ 
aber nur weil ich so nett bin...
cycap ist offline  
Alt 15.12.2008, 12:05  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Die 777 bezieht sich auf oktale Darstellung.
Mit fileperms($file) & 777 verknüpfst Du den Wert allerdings mit der Dezimalzahl 777.
Um PHP ein Oktalzahl-Literal anzuzeigen, musst Du eine 0 davor schreiben.

Außerdem willst Du nicht nur wissen ob "einige" Bits von 0777 gesetzt sind, sondern alle. Nach der UND-Verknüpfung muss das Resultat also genau Deiner Maske entsprechen.
PHP-Code:
 if( 0777==(fileperms($file)&0777) ){ 
David ist offline  
Alt 15.12.2008, 12:13  
Neuer Benutzer
 
Registriert seit: 15.12.2008
Beiträge: 17
Mr Wrong befindet sich auf einem aufstrebenden Ast
Standard

@:cycap hmhm an deiner nettigkeit habe ich zweifel. sie syntax kommt aus dem php manual.
Und dein code stimmt auch nicht, btw funktioniert nicht. es wird jetzt gar keine datei mehr angezeigt, so hatte ich das zuvor auch schon probiert.

@ David: danke für die Antwort, leider funktioniert dein Codeteil auch nicht. Selbes Problem wie bei Cycap. Mir werden jetzt keine Dateien mehr angezeigt.
Mr Wrong ist offline  
Alt 15.12.2008, 12:15  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

$file ist in Deinem Fall natürlich "$path/$filename". Daran hast Du gedacht?
David ist offline  
Alt 15.12.2008, 12:20  
Neuer Benutzer
 
Registriert seit: 15.12.2008
Beiträge: 17
Mr Wrong befindet sich auf einem aufstrebenden Ast
Standard

@ david *nick* ja habe ich. je nachdem wie ichs ändere, wird entweder nichts oder alles angezeigt. bei file nichts, bei path/filename alles auch dateien die anderen chmod haben. wie gesagt soweit war ich beim experimentieren auch schon^^.
Mr Wrong ist offline  
Alt 15.12.2008, 12:28  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann lass Dir die Dateirechte doch einfach mal anzeigen.
PHP-Code:
printf("%s %o\n""$path/$filename"fileperms("$path/$filename")); 
Was wird ausgegeben?

edit: Bei mir unter winxp zum Beispiel
PHP-Code:
<?php
$path 
'd:';
$dir_handle opendir($path);
while (
$filename readdir($dir_handle))
{
  if (
$filename != '..' && $filename != '.' &&  !is_dir("$path/$filename") )
  {
    
printf("%s %o\n""$path/$filename"fileperms("$path/$filename"));
    if( 
0777==(fileperms("$path/$filename")&0777) ) {
      echo 
"j\n";
    }
    else {
      echo 
"n\n";
    }
  }
}
Zitat:
d:/basis1.tib 100666
n
d:/basis20081113.tib 100666
n
d:/dotnetfx35.exe 100777
j

d:/htdocs.rar 100666
n
d:/OODBS.lor 100666
n
d:/pagefile.sys 100666
n
edit2:
Zitat:
if ($filename != '..' && $filename != '.' && !is_dir("$path/$filename") )
. und .. sind Verzeichnisse, also kannst Du das zusammenfassen als
PHP-Code:
if ( !is_dir("$path/$filename") ) 

Geändert von David (15.12.2008 um 12:34 Uhr).
David ist offline  
Alt 15.12.2008, 13:14  
Neuer Benutzer
 
Registriert seit: 15.12.2008
Beiträge: 17
Mr Wrong befindet sich auf einem aufstrebenden Ast
Standard

@ david:

danke werde ich später versuchen, habe erst mal die dateien die nicht eigesehen werden dürfen in einen anderen Ordner gelegt ^^


Zitat:
. und .. sind Verzeichnisse, also kannst Du das zusammenfassen als
PHP-Code:
if ( !is_dir("$path/$filename")
oh super danke, aber wie kommts dann, das wenn ich !is_dir(etc) nicht drin habe die Verzeichnisse angezeigt werden, wenn . und .. auch verzeichnisse sind?

lg
Mr
Mr Wrong ist offline  
Alt 15.12.2008, 13:25  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Mr Wrong
aber wie kommts dann, das wenn ich !is_dir(etc) nicht drin habe die Verzeichnisse angezeigt werden, wenn . und .. auch verzeichnisse sind?
Die Frage verstehe ich nicht. Liest sich für mich wie "Wenn Äpfel Kernobstgewächse sind, warum sind dann nicht alle Kernobstgewächse Äpfel?"
David ist offline  
Alt 17.12.2008, 11:21  
Neuer Benutzer
 
Registriert seit: 15.12.2008
Beiträge: 17
Mr Wrong befindet sich auf einem aufstrebenden Ast
Standard

g danke habs hinbekommen
Mr Wrong ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sicherheit im Dateianzeige Skript PHP Tipps 2005-2 3 08.08.2005 11:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fileperms syntax, php fileperms 777, php datum dateianzeige

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum