2011-09-01 5 views
0
<?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); 
    } 
?> 

내 코드가 있습니다. 내가하려고하는 것은 "project = Flowers"와 같은 URL 매개 변수를 전달하고 PHP가/flowers /라는 폴더를 열고 그 안에 모든 .jpg 이미지를 반환하도록하는 것입니다.OpenDir을 사용할 때 URL 파일 액세스 오류가 발생합니다. 왜?

** 경고 :했던 opendir() [function.opendir] : 내 코드를 실행하면

그러나, 나는 이러한 오류를 얻을 URL 파일 액세스가 에서 서버 구성에서 비활성화됩니다/NFS/C01/H03/MNT/73,283/도메인/myserver.com/test.php 라인 3

경고 :했던 opendir (http://myserver.com/projects/flowers/) [function.opendir] : dir을 열지 못했습니다 : 적절한 래퍼가 없습니다 /nfs/c05/h02/mnt/76383/domains/kulthous에 있습니다. e.com/html/staging/work.php on line 3 **

왜 이것이 작동하지 않는지 알고 싶습니까?

답변

2

왜 이것이 작동하지 않는지 알아보십시오. ??

당신이 웹 URL

그래서를 액세스 할 수 파일 시스템을 기능을 사용하기 때문에, 나는 허용하지 않습니다, 그것은

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

기본 이름은() 여기에 매우 중요 할 것 디스크의 모든 디렉토리를 탐색하는 사용자

+0

+1 ... 그보다 훨씬 명확하지 않습니다. – RobB

+0

그래서 상대 경로 만 사용해야합니까? 내 PHP 스크립트가 완전히 다른 폴더에 있으면 opendir가 웹 서버 루트에서 시작합니까? 아니면 "../../projects"할 필요가 있습니까? – Ninjection

+0

@Ninjection 만약 내가 너라면, $ _SERVER [ 'DOCUMENT_ROOT']'변수를 사용하여 파일 시스템 경로가 가상 웹 서버 디렉토리 시스템과 만나는 지점을 표시 할 수있다. 대답에 코드를 추가했습니다. –