Autor Beitrag
Wolle92
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: Sa 29.09.07 18:36 
Wie lange habe ich schon darauf gewartet, dass ich einmal so eine Fehlermeldung bekomme:
PHP unter Windows hat folgendes geschrieben:
Warning: opendir(0) [function.opendir]: failed to open dir: No error in C:\Users\Wolle\Music\index.php on line 36

Naja, ist eben ein Webserver unter Windows...
OK, aber mal im ernst, woher kommt das?
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
if($_GET['dir']) $searched = './' + $_GET['dir'] + '/';
else $searched = './';
...HTML, HEAD, BODY und der Kram...
<?
$i = 0;
$dir = opendir($searched);
  while($file = readdir($dir)){
    if(filetype($File) == 'dir' && $file != '.' && $file != '..' && $file != 'Wiedergabelisten'){
      echo "<tr><td><a href=\"index.php?dir=".$file."\">".$file."</a></td></tr>";
    }
  }
closedir($dir);
?>



Moderiert von user profile iconChristian S.: Topic aus Off Topic verschoben am Sa 29.09.2007 um 18:42
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Sa 29.09.07 19:50 
Ein ganz einfacher Fehler ;). Wenn du dir mal $searched angeguckt hättest, wäre dir aufgefallen, dass 0 drin steht. da aber in $_GET das richtige drin strht, kann es nur ein konvertierungsfehler sein. Und siehe da, du hast "+" statt "." als Stringverbinder genommen, also hat er $GET als 0 aufgefasst ;).
Korrekt sieht es so aus:
ausblenden C#-Quelltext
1:
2:
3:
4:
$searched = './';
if($_GET['dir']){
  $searched .= $_GET["dir"] . '/';
}


Als allgemeiner Hinweis:
    1.: Sicherheitsmäßig musst du noch überprüfen, ob ".." drin ist oder nicht und die entfernen (damit man nicht auf "Über"-ordner zugreifen kann)
    2.: Überprüfe vorm Suchstart, ob es den Ordner überhaupt gibt, das verhindert PHP-Fehlermeldungen ;)

Grüße
Heiko
Wolle92 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: So 30.09.07 09:33 
Da ja alle Ordner und ein link zum "Über"-Ordner angezeigt werden, hat der Benutzer eigentlich nichts an dem GET herumzuwurschteln...
Da es aber ziemlich unübersichtlich wäre, den Über-Ordner mit .. anzusteuern und danach wieder neue Ordner anzuhängen hab ich mir noch eine Funktion geschrieben, die bei dem Link zum letzten Ordner alles nach dem vorletzen Slash (vorletzer, da ganz am Ende ja auch einer ist) entfernt... Und es funktioniert wunderbar...

Aber mal so rein Interessehalber:
Kann ich einen normalen Link auch mit POST-Werten "füllen"?
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 30.09.07 10:25 
user profile iconWolle92 hat folgendes geschrieben:
Aber mal so rein Interessehalber:
Kann ich einen normalen Link auch mit POST-Werten "füllen"?

Jain, per HTML nicht, da musste formulare nehmen. Wenn du JS nimmst geht es aber ;).
Wolle92 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: So 30.09.07 14:31 
OK, JS find ich doof... mach ich eben Formulare rein...
Ist ja in einer einfachen Schleife, geht ja
Wolle92 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: So 30.09.07 14:45 
Ich lass es doch bei GET, Buttons find ich doof...
Wolle92 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: Mo 17.12.07 19:59 
So, nach langer Zeit mal meinen alten Post ausgegraben...

Wie kann ich das denn mit JS machen?

_________________
1405006117752879898543142606244511569936384000000000.