Eliminar archivos en el directorio superior
-
10-10-2019 - |
Pregunta
Estoy teniendo problemas al eliminar un archivo de un directorio de más alto, me encontré con este post y probado, pero sin suerte ....:
gotdalife en gmail punto com 25-Sep-2008 02:04
Para cualquiera que haya tenido un problema con el permisos negados error, es a veces causado cuando intenta eliminar un archivo que está en una carpeta más alto en la jerarquía a su directorio de trabajo (es decir, cuando se trata de eliminar una ruta que comienza con" ../").
Así que para evitar este problema, puede utilizar chdir () para cambiar el trabajo directorio a la carpeta donde el archivo que desea desvincular se encuentra.
<?php
> $old = getcwd(); // Save the current directory
> chdir($path_to_file);
> unlink($filename);
> chdir($old); // Restore the old working directory ?>
Aquí está el código que tengo actualmente:
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>';
}
}
Estoy recibiendo el mensaje de error:
Advertencia: unlink () [function.unlink]: No hay error en J: \ xampp \ htdocs \ bunker \ admin \ delete_file.php en la línea 37
línea 37 siendo:
unlink($filename);
¿Alguien puede ver lo que he hecho mal?
Solución
Siempre utilizo nombres ruta absoluta.
Me definiría la filedir como una constante en su configuración, a continuación, concatenar que pueda tener una ruta absoluta, a continuación, realizar una llamada a unlink ().
Por cierto:. Espero que conoce su código es muy insegura
Otros consejos
Vea aquí:
http://bugs.php.net/bug.php?id=43511
y aquí
http://php.bigresource.com/Track-php-03TimDKO/
http://www.phpbuilder.com/board/showthread.php? t = 10357994
A pesar de que no recomendaría hacer esto, de acuerdo con los comentarios anteriores. ¿Existe la opción de adoptar un enfoque diferente?