2012-01-19 4 views
2

파일의 링크를 해제하려고하는데 PHP의 링크 해제 기능이 파일 위치가 아닌 스크립트 파일의 디렉토리를 참조하는 것 같습니다. 내가 디렉토리를 변경하려면 디렉토리 변경 (CHDIR)를 사용하고 아직이 겉보기에 아무런 영향이없는됩니다PHP 링크 해제 파일 - 디렉토리 문제

: 경고 :

chdir("themes"); 
    $file_path = getcwd()."/".$_GET["file_path"]."/"; 
    $deleted_file=$file_path.$data["file_name"]; 
    $fh = fopen($deleted_file, 'w') or die("Can't open file"); 
    fclose($fh); 
    unlink($deleted_file); 

내가 오류는 다음과 같다하면 fopen (/ 홈/깍는/public_html/mysite/themes/_default/admin/testfile.php /) : 스트림을 열지 못했습니다 : /home/mow/public_html/mysite/themes/_default/admin/file_manager.php on line 에 해당 파일이나 디렉토리가 없습니다. 223

+0

어떻게 부르시겠습니까? $ _GET [ "file_path"] 및 $ data에 대한 귀하의 가치는 무엇입니까? –

답변

1

'file_name' GET 변수는 슬래시로 끝납니다. 그렇지 않은지 확인하십시오.

NB : 완전히 신뢰하지 않는 사람이이 스크립트에 액세스 할 수 없다는 것을 정말로 확인하십시오.

+0

고맙습니다. 그게 원인이었습니다. –

0

뒤에 슬래시를 제거하십시오.

왜가경 chdir 대신 대신 직접 경로를 unlink으로 전달하지 않는 이유는 무엇입니까?