UNLINK ne fonctionne pas

WRInaute occasionnel
Bonjour,
j'ai un soucis avec la suppression de fichier en php.
le probleme et que mon fichier ne se supprime pas.
pourriez vous me donner un coup de main pour savoir d'ou vien le probleme ?

voici mon code :
Code:
<?php
include("../connexion-sql.php");
 if(isset($_GET['id']))  
{      
$id = $_GET["id"];
               
$requete = mysql_query("SELECT * FROM IWmagazines WHERE id=$id");
while( $result = mysql_fetch_array( $requete ) )
{
echo 'Fichier a supprimer : '.$result['PDF'].'<br/>';
$dossier_traite = "../../magazines";
 
$repertoire = opendir($dossier_traite); //on définit le répertoire dans lequel on souhaite travailler
 
$fichier=$result['PDF'];

$chemin = $dossier_traite."/".$fichier; //on définit le chemin du fichier à effacer
 
//si le fichier n'est pas un répertoire
if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
       {
       unlink($chemin); //on efface
       }

closedir($repertoire);


}

       
$resultbd=mysql_query("DELETE FROM IWmagazines WHERE id=$id");
if (!$resultbd)
{
echo "<img src='../images/close.png' />La mise à jour a échouée. Contactez l'administrateur du site<br/>";
}

else
{
echo " <img src='../images/check.png' /> Actualité supprimée. Elle n'apparaitra plus sur le site<br/>";

}
mysql_close();
}
 else
{echo" la variable $id n'as pas été crée";}
?>
 
WRInaute discret
Bonsoir,

un piste à explorer, les propriétés du fichier sur le FTP :
Dans un script d'Upload, j'avais forcé les propriétés du fichier à 644 avec chmod($fileName, 0644).
De mémoire, 644 permet au propriétaire de modifier et donc de supprimer le fichier.
 
WRInaute occasionnel
Bon je sature !
alors voilà si je rentre le chemin manuellement mon fichier se supprime bien.
Code:
$chemin = "../../magazines/logo.pdf";

Par contre si je met :

$dossier_traite = "../../magazines";
Code:
$repertoire = opendir($dossier_traite); //on définit le répertoire dans lequel on souhaite travailler
$fichier=$result['PDF'];
$chemin = $dossier_traite."/".$fichier; //on définit le chemin du fichier à effacer
echo $chemin; // donne : ../../magazines/logo.pdf

Sa fonctionne pas !!!!

Vous avez une idée sur le probléme ?
 
WRInaute impliqué
Que donne $result['PDF']?
Un problème de casse, d'espace? Bref, quel est la donnée directement dans la bdd?
Testes tu en local ou en live?
J'avais eu exactement le même souci, en fait le fichier était effacé mais restait apparent sur le ftp puis dans le cache navigateur, j'ai tourné en rond plusieurs heures. Es tu sûr qu'il n'est pas supprimé?
As tu une erreur (un échec renvoit une erreur E_WARNING) ou non?

Il y a une faille possible d'injection sinon, faudrait remplacer
Code:
$id = $_GET["id"];
par
Code:
$id = intval($_GET["id"]);
si la valeur attendue est numérique (ce qui doit être le cas).

Un dernier truc à tenter, remplacer
Code:
$fichier=$result['PDF'];
par
Code:
$fichier = (string) $result['PDF'];

Suivant l'encodage de ta bdd ça peut fonctionner, mais c'est un peu de la magie :mrgreen:
 
Discussions similaires
Haut