Je vais avoir des problèmes de supprimer un fichier à partir d'un répertoire supérieur, j'ai trouvé ce post et essayé, mais pas de chance ....:Suppression de fichiers dans le répertoire supérieur
gotdalife arobase gmail point com 25-Sep -2008 02:04
pour quelqu'un qui a eu un problème avec les autorisations niés erreur, il est parfois causé lorsque vous essayez de supprimer un fichier qui se trouve dans un dossier supérieur dans la hiérarchie à votre répertoire de travail (c'est-à-dire en essayant de supprime un chemin qui commence par "../").
Donc, pour contourner ce problème, vous pouvez utiliser chdir() pour modifier le répertoire de travail dans le dossier où le fichier que vous voulez supprimer le lien se trouve.
<?php
> $old = getcwd(); // Save the current directory
> chdir($path_to_file);
> unlink($filename);
> chdir($old); // Restore the old working directory ?>
ici est le code que j'ai actuellement:
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>';
}
}
Je reçois le message d'erreur:
Attention: unlink() [function.unlink]: Aucune erreur dans J: \ xampp \ htdocs \ bunker \ admin \ delete_file.php sur la ligne 37
ligne 37 étant:
unlink($filename);
quelqu'un peut-il voir ce que j'ai fait de mal?
http://4.bp.blogspot.com/_Mp0d-dsENrg/S15lV3B8PHI/AAAAAAAAiA8/UTTVHEEwD44/s400/59934678.jpg –
Avez-vous essayé de déclarer explicitement le chemin? (par exemple, pas de "../" mais un vrai chemin difficile) Je ne sais pas où cela vous laissera si cela fonctionne/ne fonctionne pas mais pourrait être un bon test :) – clifgriffin
Ummm, avez-vous une idée à quel point d'une idée qui est? Je veux dire passer une entrée brute à 'chdir' et exécuter' unlink' ...? Au moins faire une sensibilisation pour empêcher 'delete_file.php? Folder = ../../../../../ etc & file = passwd' ... (les permissions empêcheront probablement cela, mais il y a forcément des fichiers qu'il peut supprimer qui sont tout aussi mauvais pour vous au moins) ... – ircmaxell