Отказано в разрешении PHP с использованием unlink и rmdir
Я пытался выяснить, почему мой код Php дает мне досадную ошибку. Я пробовал бесчисленные функции из предыдущего поста, но ошибка, которую он выдавал, - "Отказано в доступе" Насколько я понимаю, у меня должны быть специальные привилегии для удаления файлов и т. Д. Я пробовал несколько решений, но я все еще получаю эту ошибку. Если кто-нибудь может указать мне правильное направление, это будет здорово. Ive опубликовать фрагмент моего кода ниже.. Thanksss
$first_sub = "my_dir";
if(is_dir($first_sub)){
$read_sub1 = opendir($first_sub);
while(false !== ($files = readdir($read_sub1))){
if($files!="." && $files!=".."){
unlink($first_sub ."/". $files);
}
}
closedir($read_sub1);
3 ответа
Вы должны установить правильное разрешение для каталогов вашего сервера: Посетите: http://bd1.php.net/chmod
<?php
// Read and write for owner, nothing for everybody else
chmod($first_sub ."/". $files, 0600);
// Read and write for owner, read for everybody else
chmod($first_sub ."/". $files, 0644);
// Everything for owner, read and execute for others
chmod($first_sub ."/". $files, 0755);
// Everything for owner, read and execute for owner's group
chmod($first_sub ."/". $files, 0750);
?>
как раз перед unlink
Вы можете вызвать эту функцию.
Для тех, кто попадает на эту страницу, это может быть так просто, как не установка $files
в существующий файл.
К сожалению, я обнаружил, что сообщение: Warning: move_uploaded_file(): Unable to move
также может означать file not found
,
Скорее всего, причина проблемы этого OP, но, безусловно, стоит проверить, что файл, представленный передаваемой переменной, действительно существует в каталоге.
Я получил, что ошибка от отказа в разрешении unlink. Но я это исправлю. Ошибка отображается следующим образом: unlink(../foldername/) Отказано в разрешении.
Мой неправильный код выглядит так:
$image = select_table('webpage', 'wp_name', '$id');
$update = "UPDATE webpage SET wp_image = NULL, wp_modifiedby = '{$position}', wp_datemodified = '{$date_now}' WHERE wp_name = '{$id}'";
if ( unlink('../webpage/'.$image_dir) && $qry_update = mysqli_query($connection, $update) ) {
// success
} else {
// failed
}
теперь я исправляю мой правильный код так:
$image = select_table('webpage', 'wp_name', $id);
$update = "UPDATE webpage SET wp_image = NULL, wp_modifiedby = '{$position}', wp_datemodified = '{$date_now}' WHERE wp_name = '{$id}'";
if ( unlink('../webpage/'.$image['wp_image']) && $qry_update = mysqli_query($connection, $update) ) {
// success
} else {
// failed
}