| 
	
 | 
 Posted by  techusky on 08/06/07 19:01 
On Aug 6, 11:38 am, techu...@gmail.com wrote: 
> On Aug 6, 11:14 am, Matt Madrid <admiral...@gmail.com> wrote: 
> 
> 
> 
> > techu...@gmail.com wrote: 
> 
> > [snip] 
> 
> > > <?php 
> 
> > > // Tell the script which directory to list 
> > > $nav = $_GET['nav']; 
> > > $dir = getcwd() . "\\" . $nav; 
> 
> > I gather from the "\\" that you are on a windows platform. No need 
> > to use "\\", a "/" will do and make your code more portable. 
> 
> > [snip] 
> 
> > >       if (!is_dir($file)) 
> 
> > Here's your problem. You need to prepend the dirname to the filename 
> > since you are not "in" the directory in question. 
> 
> >         if (!is_dir("$dir/$file")) 
> 
> > The same goes for your other calls to is_dir() and is_file() 
> 
> > Matt M. 
> 
> Aha! Thank you sooo much. I knew it would be something very simple 
> that I was just overlooking after staring at it too long. 
> 
> Also, just fyi, in order to navigate more than one directory deep, I 
> had to change 
> 
> // If the file is a directory 
> // add ?nav=$file to the url 
> if (is_dir($file)) 
>   { 
>     echo "<a href=\"listing.php?nav=$file\" target=\"_self\">$file</ 
> a><br>"; 
>   } 
> 
> to 
> 
> // If the file is a directory 
> // add ?nav=$file to the url 
> if (is_dir("$dir/$file")) 
>   { 
>     echo "<a href=\"listing.php?nav=$nav/$file\" target=\"_self\"> 
> $file</a><br>"; 
>   } 
 
Now, I realize this is NOT a secure directory listing, because someone 
could simply append "/.." to the url and keep moving up directories 
even if they are out of the realm of the web server. Is there an 
*easy* way to "lock" this script from going up a directory from where 
the script is stored? In other words, I want users to be able to 
navigate DOWN in whatever directories may exist, but not UP *past* the 
directory in which the script is located.
 
  
Navigation:
[Reply to this message] 
 |