我'm有URL文件访问错误时,使用OpenDir.为什么


I'm having URL File-access errors when using OpenDir. Why?

<?php
   $pathname = "http://myserver.com/projects/" . $_GET['project'] . "/"; 
   if ($handle = opendir($pathname)) {
        while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != ".." && (strpos($file, '.jpg',1))    ) {
            $photo= $pathname . $file;
            echo "<image src='"" . $file . "'">";
          }
        }
        closedir($handle);
    } 
 ?>

这是我的代码。我所要做的就是传递一个URL参数,如"project=Flowers",并让PHP打开一个名为/Flowers/的文件夹,并返回其中所有的。jpg图像。

但是,当我运行代码时,我得到了这些错误:

**警告:opendir() [function。opendir]:禁用URL文件访问在服务器配置中/nfs/c01/h03/mnt/myserver.com/test.php/73283/域第3行

警告:opendir (http://myserver.com/projects/flowers/)(函数。:打开目录失败:没有合适的包装器中发现的/nfs/c05/h02/mnt/kulthouse.com/html/staging/work.php/76383/域第3行* *

知道为什么这不会工作吗??

知道为什么这不会工作吗??

因为你正在使用文件系统函数来访问web URL

所以我把它改成

$_SERVER['DOCUMENT_ROOT'].'/projects/'.basename($_GET['project']).'/'

basename()在这里非常重要,不允许任何人浏览磁盘上的任何目录