Я не могу удалить каталог в PHP при передаче объединенной строки? - PullRequest
0 голосов
/ 15 марта 2020

Я использую функцию deleteFiles () в моей программе PHP для удаления каталогов. Это работает только когда я передаю явно определенные строки, но не когда я передаю строку, соединенную с переменными.

Это не работает:

// Checks if the user hit the delete button
if(isset($_POST['delete'])){

    $targetDir = "uploads/$id/"; ### This does not work when I pass it in

    deleteFiles($targetDir);

    // Get the id to delete
    $idToDelete = mysqli_real_escape_string($conn, $_POST['idToDelete']);

    // Create sql
    $sql = "DELETE FROM student_data WHERE id = $idToDelete";

    // Redirects user to the homepage if the query is successful
    if(mysqli_query($conn, $sql)){
        header('Location: index.php');
    } else {
        echo 'query error: '. mysqli_error($conn);
    }
}

function deleteFiles($target) {
        $files = glob($target . "/*"); // get all file names
        foreach($files as $file){ // iterate files
            if(is_file($file)) {
                unlink($file); // delete file
            }
        }

        rmdir($target);
}

Это работает:

// Checks if the user hit the delete button
if(isset($_POST['delete'])){

    $targetDir = "uploads/82/"; ### If I pass in this it works

    deleteFiles($targetDir);

    // Get the id to delete
    $idToDelete = mysqli_real_escape_string($conn, $_POST['idToDelete']);

    // Create sql
    $sql = "DELETE FROM student_data WHERE id = $idToDelete";

    // Redirects user to the homepage if the query is successful
    if(mysqli_query($conn, $sql)){
        header('Location: index.php');
    } else {
        echo 'query error: '. mysqli_error($conn);
    }
}

function deleteFiles($target) {
        $files = glob($target . "/*"); // get all file names
        foreach($files as $file){ // iterate files
            if(is_file($file)) {
                unlink($file); // delete file
            }
        }

        rmdir($target);
}

Я попытался сравнить 2 строки, используя оператор ===, и он возвращает 1 Не знаю, почему это происходит.

...