Отсканировано разрешение на сканирование. удалить папку, содержащую файлы php - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть следующий скрипт php. Все запросы работают, но не удается удалить папку. Папка, которую я пытаюсь удалить, находится внутри папки с именем uploads и создается с именем уникального идентификатора, сохраненного в базе данных. Любые идеи, почему я продолжаю получать ошибки, в которых отказано в разрешении, как это

Предупреждение: scandir (uploads / c71a8c3efbe52bff06e9cbd94c95ae00): не удалось open dir: в доступе отказано /var/www/html/braiden/braintree/deleteTemplate.php в строке 43

Предупреждение: scandir (): (errno 13): в доступе отказано /var/www/html/braiden/braintree/deleteTemplate.php в строке 43

Предупреждение. В foreach () указан неверный аргумент /var/www/html/braiden/braintree/deleteTemplate.php в строке 46

Предупреждение: rmdir (uploads / c71a8c3efbe52bff06e9cbd94c95ae00): каталог не пусто в /var/www/html/braiden/braintree/deleteTemplate.php на линия 56

Вот код. Имейте в виду, что все работает, кроме части удаления каталога. Я просто хочу дать вам немного больше кода для контекста.

<?php session_start(); ob_start();
require_once('database.php');
if(isset($_SESSION['admin']) and $_SESSION['admin']==1){
if(isset($_GET['id'])){$templateId=$_GET['id'];}
    else{
        header('Location:logout.php');
    }
$selectExistsQuery="SELECT COUNT(*) AS exist FROM dataclayTemplates WHERE id='$templateId'";
$selectExistsResult=mysqli_query($mysqli, $selectExistsQuery);
while($row=mysqli_fetch_assoc($selectExistsResult)){
    $exists=$row['exist'];
}
if($exists==1){
    $selectItemIdQuery="SELECT itemId FROM dataclayTemplates WHERE id='$templateId'";
    $itemIdResult=mysqli_query($mysqli, $selectItemIdQuery);
    while($row=mysqli_fetch_assoc($itemIdResult)){
        $itemId=$row['itemId'];
    }
    $deleteDataclayCategoriesLinkQuery="DELETE FROM dataclayCategoryLink WHERE templateId='$templateId'";
    $deleteDataclayCategoriesLinkResult=mysqli_query($mysqli, $deleteDataclayCategoriesLinkQuery);

    $deleteDataclayKeywordsLinkQuery="DELETE FROM dataclayKeywordLink WHERE templateId='$templateId'";
    $deleteDataclayKeywordsLinkResult=mysqli_query($mysqli, $deleteDataclayKeywordsLinkQuery);

    $deleteTextInstructionsQuery="DELETE FROM textInstructions WHERE templateId='$templateId'";
    $deleteTextInstructionsResult=mysqli_query($mysqli, $deleteTextInstructionsQuery);

    $deleteLayerInstructionsQuery="DELETE FROM layerInstructions WHERE templateId='$templateId'";
    $deleteLayerInstructionsResult=mysqli_query($mysqli, $deleteLayerInstructionsQuery);

    $deleteUploadInstructionsQuery="DELETE FROM uploadInstructions WHERE templateId='$templateId'";
    $deleteUploadInstructionsResult=mysqli_query($mysqli, $deleteUploadInstructionsQuery);

    $deleteColorInstructionsQuery="DELETE FROM colorInstructionsAndPresets WHERE templateId='$templateId'";
    $deleteColorInstructionsResult=mysqli_query($mysqli, $deleteColorInstructionsQuery);

    $deleteDataclayTemplateQuery="DELETE FROM dataclayTemplates WHERE id='$templateId'";
    $deleteDataclayTemplateResult=mysqli_query($mysqli, $deleteDataclayTemplateQuery);

$folder='uploads/'.$itemId;
function removeFolder($folder){
    if(is_dir($folder) ===true){
        $folderContents = scandir($folder);
        unset($folderContents[0], $folderContents[1]);

        foreach($folderContents as $content=>$contentName){
            $currentPath=$folder.'/'.$contentName;
            $fileType=filetype($currentPath);
            if($fileType == 'dir'){
                removeFolder($currentPath);
            } else{
                unlink($currentPath);
            }
            unset($folderContents[$content]);
        }
        rmdir($folder);
    }
}
    removeFolder($folder);


    if($deleteDataclayCategoriesLinkResult and $deleteDataclayKeywordsLinkResult and $deleteTextInstructionsResult and $deleteLayerInstructionsResult and $deleteUploadInstructionsResult and $deleteColorInstructionsResult and $deleteDataclayTemplateResult){
        $data['success']=true; $data['error']=false;
    } else{$data['success']=false; $data['error']=true;}
} else {header('Location:logout.php');}
} else {
    header('Location:logout.php');
}
echo json_encode($data);
?>
...