У меня возникли проблемы при удалении файла из высшего каталога, я нашел этот пост и попытался это, но не повезло ....:Удаление файлов в каталоге высшего
gotdalife в GMAIL точка ком 25-сен -2008 2:04
для тех, кто имел проблемы с разрешений отклоненных ошибку, это иногда возникает при попытке удалить файл, который находится в папке выше в иерархии вашего рабочего каталога (т.е. при попытке удалите путь, начинающийся с «../»).
Так, чтобы обойти эту проблему, вы можете использовать Chdir(), чтобы изменить рабочий директории в папку, где находится файл вы хотите разъединить находится.
<?php
> $old = getcwd(); // Save the current directory
> chdir($path_to_file);
> unlink($filename);
> chdir($old); // Restore the old working directory ?>
вот код, который я в настоящее время есть:
session_start();
if (!isset($_SESSION['agent']) OR ($_SESSION['agent'] !=md5($_SERVER['HTTP_USER_AGENT']))){
require_once ('includes/login_functions.inc.php');
$url = absolute_url();
header("Location: $url");
exit();
}
$folder = $_GET['folder'];
$filename = $_GET['name'];
$path = "../gallery/photos/$folder";
if (isset($_POST['submitted'])) {
if ($_POST['sure'] == 'Yes') {
$old = getcwd(); // Save the current directory
chdir($path);
unlink($filename);
chdir($old); // Restore the old working directory
}
else{
echo '<p>The photo has NOT been deleted.</p>';
}
}
Я получаю сообщение об ошибке:
Предупреждение: UNLINK() [function.unlink]: Ошибка J: \ xampp \ htdocs \ bunker \ admin \ delete_file.php в строке 37
линии 37 являются:
unlink($filename);
может кто-нибудь увидеть, что я сделал не так?
http://4.bp.blogspot.com/_Mp0d-dsENrg/S15lV3B8PHI/AAAAAAAAiA8/UTTVHEEwD44/s400/59934678.jpg –
Вы пытались явно объявить путь? (например, нет «../», но фактический жесткий путь) Не знаю, где это оставит вас, если оно работает/не работает, но может быть хорошим тестом :) – clifgriffin
Ummm, вы хоть представляете, насколько плохи идеи, которая есть? Я имею в виду передачу сырого ввода в 'chdir' и запуск' unlink' ...? По крайней мере, сделайте некоторую сенсибилизацию, чтобы предотвратить «delete_file.php? Folder = ../../../../../ etc & file = passwd' ... (разрешения, скорее всего, будут предотвращать это, но обязательно будут файлы, которые он может удалить, как минимум, для вас как минимум) ... – ircmaxell