Отказано в разрешении 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

    }
Другие вопросы по тегам