scandir — Отклонено разрешение на сканирование. удалить папку, содержащую файлы переполнения стека

У меня есть следующий скрипт 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);
?>

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

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