Удаление файла из папки

Я не совсем уверен, в чем проблема.
Но код не отсоединит файл 🙁

 <?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;}
}

?>

Если я уберу часть цикла unlink и просто перейду к удалению из БД, все будет хорошо.
Что мне не хватает?
Могут ли это быть разрешения, которые препятствуют выполнению кода?

РЕДАКТИРОВАТЬ :
Изменены права доступа к файлу на 0777. Так что это должно действительно работать …
Но все еще не кажется. ! : /
У меня нет идей сейчас.
Может быть, цикл не работает должным образом?

Спасибо за вашу помощь

ура

Крис

0

Решение

$file2 = chmod($file, 0777);

if(!unlink($file2)){

$ file2 получает возвращаемое значение chmod, которое является логическим значением. Затем вы пытаетесь отменить связь истинного / ложного значения. Возможно, вы хотели отменить связь ($ file)?

Изменить, чтобы отразить ваши изменения:

Если $ file не является полностью определенным путем, $ file будет относиться к текущему рабочему каталогу, из которого всегда запускается скрипт. Убедитесь, что $ file является полным путем.

1

Другие решения

Разрешения на запись в файл не достаточно вам нужно разрешения на запись в каталог Сам, чтобы иметь возможность удалить файл в нем.

Сначала вы должны проверить, существует ли файл, затем следует убедиться, что у вас есть правильные права доступа к каталогу, а НЕ к файлу.

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

По вопросам рекламы [email protected]