2014-11-10 5 views
0

나는 어디에 문제가 있는지 잘 모르겠습니다. 하지만이 링크 해제 루프 부분을 꺼내 그냥 잘 작동 DB에서 삭제 직진하면 코드가 파일 :(폴더에서 파일 삭제

<?php include_once("sessions.php"); 
require_once("connect.php"); 
if(isset($_POST['delete'])){ 

$album_id = $_SESSION['album_id']; 

$checkbox = $_POST['photo_checkbox']; 
$count = count($checkbox); 

for($i = 0; $i < $count; $i++) { 
    $id = (int) $checkbox[$i]; // Parse your value to integer 

    if ($id > 0) { // and check if it's bigger then 0 

     $query = "SELECT * FROM media WHERE id = $id"; 
     $result = mysqli_query($connection, $query); 
      while($row = mysqli_fetch_array($result)){ 

      $file = $row['path']; 

       if(!unlink($file)){ 
        $_SESSION["edit_message"] = "<br>Something went wrong while deleting shit ... please try your editing again." .$file; 
        header ("Location: ../fotos.php?album=".$album_id.""); 
        exit; 
       } 

      } 
     $query = "DELETE FROM media WHERE id = $id"; 
     $result = mysqli_query($connection, $query); 
    } 
} 

    if($result){ 
     $_SESSION["edit_message"] = "<br>Successfully deleted !"; 
     header ("Location: ../fotos.php?album=".$album_id.""); 
     exit;} 
} 

?> 

연결을 해제하지 않습니다. 나는 무엇을 놓치고? 그것을 마이트 ?. 그것이 정말 ... 작동합니다 그래서 지금 0777에 파일의 권한을 변경하지만 여전히하지 않는 것 : :.!/ I

편집을 실행에서 코드를 방해하는 권한 수 아마 루프가 제대로 작동하지 않습니까?

0 당신의 도움에 대한

고맙습니다

건배

크리스는 $ 파일 2

+0

리디렉션과 '무언가 잘못되었습니다'라는 메시지가 표시됩니까? 파일과 디렉토리에 대한 권한을 확인하십시오. 둘 다에 대한 권한이 있어야합니다 (예 : 포함 디렉토리에 쓰기 권한 부여). –

+0

네, 리디렉션과 "something went wrong"메시지가 나타납니다 :/ – Chris

+0

'echo $ file = $ row [ 'path'];'네가 얻은 것을보고, 파일과 경로와 일치하지 않으면, 무엇이 잘못되었는지 알 것입니다. –

답변

1
$file2 = chmod($file, 0777); 

if(!unlink($file2)){ 

은 부울입니다 chmod를의 반환 값을 받고있다. 그런 다음 true/false 값의 연결을 끊으려고합니다. 아마 당신은 ($ file)의 연결을 해제하겠습니까?

편집 변경 사항을 반영하기 위해 : $ 파일이 스크립트에서 실행되는 경우 이제까지의 현재 작업 디렉토리에 상대적인 것이다 완전한 경로 이름 $ 파일이 아닌

합니다. $ file이 전체 경로 이름인지 확인하십시오.

+0

그럼 이렇게 보일 것입니다 : $ file = $ row [ 'path']; $ file = chmod ($ file, 0777); if (! unlink ($ file)) { 흠 나는 혼란스러워진다. – Chris

1

파일에 대한 쓰기 권한이 충분하지 않아 자체에 파일 쓰기 권한이 필요합니다.

먼저 파일이 있는지 확인한 다음 파일이 아닌 디렉터리에 대한 올바른 사용 권한이 있는지 확인해야합니다.

if(file_exists($file) && is_writeable(dirname($file))){ 
unlink($file); 
}else{ 
//invalid path or permission problems 
} 
관련 문제