2013-07-14 3 views
0

절대 경로() 링크 해제와 함께 작동하지 않습니다연결 해제는 변수에서 작동하지만 정확한 경로에서 작동

<?php 
    unlink('images/filename.jpg'); 
?> 

을하지만이 작동하지 않습니다.

<?php 
    $image_id = $_POST['image_id']; 
    unlink('images/'.$image_id) 
?> 

파일 사용 권한은 괜찮습니다. 스크립트는 읽고 쓸 수 있습니다. 작은 따옴표와 큰 따옴표를 사용해 보았을 때 절대 파일 경로에서는 작동하지만 $ _POST []에서 전달 된 변수에서는 작동하지 않습니다.

여기에 해결 방법이 있습니까? 고맙습니다.

+1

당신은 당신이 올바른 값을 받고있어 확실 '$ _POST [ 'image_id']'? 'print_r()'를 실행 해 봅니다. – Rainulf

+0

감사! 그러나 아무것도 인쇄되지 않습니다. – GeekWise123

+0

필자는 Rainulf가'$ image_id = $ _POST [ 'image_id']'다음에'print_r ($ image_id)'를 의미했다고 생각합니다. 네가 한 짓이야? – vee

답변

1

은 쿼리 매개 변수를 약간 정리할 수 있습니다. 확실하지는 않지만 여러 변형으로 코드를 시험해 보았을 때 완벽했습니다. 당신에 따르면

,

unlink('images/filename.jpg'); 

이 완벽하게 작동한다. 그런 다음 다른 코드가 작동하지 않는 이유가 없습니다.

다음과 같이하십시오. $ image_id = trim ($ _ POST [ "image_id"]);

하고 파일을 삭제하기 전에

, 파일이 오류가에 자리하고있는 곳 그런 식으로, 당신은 확실 할 것이다 존재 여부 확인하시기 바랍니다.

$image_url = "images/{$image_id}"; 
if(file_exists($image_url)){ 
    unlink($image_url); 
} else { 
    die('file does not exist'); 
} 
+0

안녕하세요! 감사! 좋아하는 작품이 매력! 고마워요! – GeekWise123

+0

일부 공백이 모든 문제를 일으킨 것처럼 보입니다. – Cooshal

+0

나는 당신의 대답을 upvote하려고 노력하고 있지만 그렇게할만한 명성이 없습니다. Rainulf, vinodadhikary, 특히 CooSHal에게 감사드립니다. – GeekWise123

0

시도 : 추가

<?php 
    $image_id = $_POST['image_id']; 
    unlink('./images/'.$image_id) 
?> 

은 "./"디렉토리 이름의 이미지 전에.

+0

그것은 작동하지 않습니다. 하지만 어쨌든 고마워. – GeekWise123

+0

'. /'없이는 똑같습니다. 그것은 현재 디렉토리 다. – Rainulf

+0

그건 그렇고, 웹 사이트는 리눅스 서버에서 호스팅됩니다. – GeekWise123