open dir error
--> de map is juist
--> de rechten zijn 755
dit is de error
[03-Jan-2012 15:46:58] PHP Warning: opendir(../../../../fotoalbum/test/album@doc/) [<a href='function.opendir'>function.opendir</a>]: failed to open dir: No such file or directory in nieuwalbum.php on line 24
Kan iemand me vertellen wat ik fout doe -( ben er al even naar opzoek )-
Alvast bedankt, groeten christophe
Gewijzigd op 03/01/2012 16:01:01 door Php knipper
Kun je een stukje relevante code plaatsen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$dir = "../../../../".$_POST['folder']."/".$_POST['map']."/";
# Absolute pad naar de plaatjes directory.
$handle = opendir($dir);
while(false !== ($file = readdir($handle)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$files[] = $file;
}
}
}
?>
$dir = "../../../../".$_POST['folder']."/".$_POST['map']."/";
# Absolute pad naar de plaatjes directory.
$handle = opendir($dir);
while(false !== ($file = readdir($handle)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$files[] = $file;
}
}
}
?>
$_POST['folder'] en $_POST['map'] zijn gegevens die van de gebruiker komen; je zal heel goed moeten controleren dat men daar niet kan prutsen.
Ga nooit uit van de goedheid van de gebruiker.
Verder lijkt het me waarschijnlijk dat het ligt aan de plaats van de map ten opzichte van de locatie waar de gebruiker naar surft.
Is dat echt nodig dat map zo ver ligt ( "../../../../" )?
Heb je al eens geëxperimenteerd met het lezen van een directory die ergens een submap is van de plaats waar de php file staat?
Misschien staat die dir niet in je basedir en mag je daar dus niet komen?
de post gegevens moeten nog beschermd worden (al weet ik nog niet hoe ik dat ga doen ).
de zin "Heb je al eens geëxperimenteerd met het lezen van een directory die ergens een submap is van de plaats waar de php file staat?" snap ik niet echt goed?
index.php
In de zelfde map waar index.php staat, zet je een submap (bv. "files")
en dan probeer je
Als dit werkt zoals je wil, weet je ten minste dat de rest van de code werkt. Dan moet je enkel nog zien dat je het pad juist krijgt.
(dingen oplossen door eliminatie; deeloplossingen ...)
Dit kun je doen met file_exists
Wat voor namen heb je voor de folders en de mappen? Alleen letters en cijfers?
Je zult je wel verteld hebben met het aantal ../.
Toevoeging op 03/01/2012 16:54:50:
anders krijg ik deze error
[03-Jan-2012 15:22:20] PHP Warning: readdir(): supplied argument is not a valid Directory resource in nieuwalbum.php on line 20
Wat doet die @ daar in album@doc?
je kan het vergelijken met een bestand
naam punt ext de punt is de @ en de ext is doc ( deze map wordt niet weergegeven)