Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1866 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme avec la fonction unlink

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec la fonction unlink

n°1767272
zipolo
Posté le 31-07-2008 à 13:48:00  profilanswer
 

Bonjour,
 
Depuis plusieurs jours j'essaye de faire marcher la fonction unlink afin de pouvoir effacer des photos de ma galerie !  
En Local sous Wamp tout marche comme sur des roulettes mais une fois en ligne chez OVH, impossible de supprimer une photo !
Le script ne trouve pas le fichier et/ou dossier alors qu'il existe bel et bien !
 

Code :
  1. <?php
  2. include('fonction.php');
  3. connexionbdd();
  4. $theme=$_GET['theme'];
  5. $photo=$_GET['photo'];
  6. $img_grande = "/".$theme."/images/".$photo." ";
  7. $img_mini =  "/".$theme."/miniatures/mini_".$photo."";
  8. if(file_exists($img_grande) && file_exists($img_mini))
  9. {
  10. $result= (unlink("$img_grande" ) && unlink("$img_mini" ))? "Suppression réalisée" : "echec de la suppression";
  11. echo 'Suppression réalisée  dans '.$img_grande.'<br/>' ;
  12. }
  13. else
  14. {echo"le fichier n'existe pas dans ce repertoire! upload/galeries/".$theme."/images/".$photo." <br>";
  15. }
  16. ?>


 
Ce script me genere une erreur : Warning: unlink(../upload/galeries/DDDD/images/raid.jpg ) [function.unlink]: No such file or directory in /home.10.7/espaceje/www/effacer.php on line 16
Un topic equivalent avait déja été traité ici http://forum.hardware.fr/hfr/Progr [...] 7427_1.htm
Mais ça ne me permet pas d'avancer.
Si quelqu'un pouvait m'aider ce serait cool

mood
Publicité
Posté le 31-07-2008 à 13:48:00  profilanswer
 

n°1767323
olivthill
Posté le 31-07-2008 à 15:39:40  profilanswer
 

Cela ressemble au problème classique du chemin absolu (chemin qui commence par "/" ), car la racine n'est pas la même en local et sur un serveur. Est-ce que vous ne pourreiz pas utiliser un chemin relatif plutôt (chemin dont le premier caractère n'est pas "/" ), comme dans les exemples du lien que vous avez indiqué ?

n°1767351
chocolathe
Posté le 31-07-2008 à 16:02:55  profilanswer
 

olivthill a écrit :

Cela ressemble au problème classique du chemin absolu (chemin qui commence par "/" ), car la racine n'est pas la même en local et sur un serveur. Est-ce que vous ne pourreiz pas utiliser un chemin relatif plutôt (chemin dont le premier caractère n'est pas "/" ), comme dans les exemples du lien que vous avez indiqué ?


+1


---------------
NOUVEAU! disponible en vente : Zeiss 28/2 ZF T* | Rolleiflex SL66
n°1767476
CyberDenix
Posté le 31-07-2008 à 20:28:28  profilanswer
 

C'est-à-dire, mettre './' à la place de '/', en début de chemin.
 
Par exemple :
$img_grande = "./".$theme."/images/".$photo." ";


---------------
Directeur Technique (CTO)
n°1768249
zipolo
Posté le 02-08-2008 à 14:48:40  profilanswer
 

Merci  
Je teste ça en fin de week end et vous tient au courant

n°1769082
zipolo
Posté le 04-08-2008 à 17:31:29  profilanswer
 

Mais mon chemin est un chemin relatif, c'est juste que je suis au debut de mon arborescence !
 
J'ai testé avec le './' à la place de '/' ça ne change rien, il ne trouve toujours pas mon dossier ... :(
 
Bon finalement après pleins de prises de têtes, j'ai viré la condition d'existence des fichiers,  
J'ai toujours le warning, MAIS les photos n'apparaissent plus , ne sont plus linkés et la base de donnée n'a plus de trace d'eux...  
Je comprend pas trop
On dirait que c'est la fonction file_exists qui pose problème... !


Message édité par zipolo le 04-08-2008 à 17:45:23
n°1769309
sielfried
Posté le 05-08-2008 à 07:07:48  profilanswer
 

file_exists, unlink et toutes les fonctions liées au système de fichier se basent sur la racine système et non la racine web (DOCUMENT_ROOT).
 
Il faut donc un $_SERVER['DOCUMENT_ROOT'] en début de chemin si tu veux pointer en absolu sur un truc qui est dans ton arbo web.
 
Et au passage, y a une énorme faille de sécurité sur ce que tu postes. Ne construis pas des path avec des choses fournies par l'utilisateur sans les avoir vérifiés avant. :o


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1769637
zipolo
Posté le 05-08-2008 à 16:36:46  profilanswer
 

sielfried a écrit :

file_exists, unlink et toutes les fonctions liées au système de fichier se basent sur la racine système et non la racine web (DOCUMENT_ROOT).
 
Il faut donc un $_SERVER['DOCUMENT_ROOT'] en début de chemin si tu veux pointer en absolu sur un truc qui est dans ton arbo web.
 
Et au passage, y a une énorme faille de sécurité sur ce que tu postes. Ne construis pas des path avec des choses fournies par l'utilisateur sans les avoir vérifiés avant. :o


 
J'ai deja testé avec $_SERVER['DOCUMENT_ROOT'] ( enfin j'avais mis le chemin à la main ce qui revient au même). Je comprend plus... IL faut que je pointe en relatif , en absolu ?  
Pourquoi j'ai un Warning alors que la suppression a bien lieu ?
 
Pour la faille, si l'utilisateur c'est moi et que ça reste moi ça pose réellement un problème ?
 
 
EDIT  : J'ai testé differentes ecritures pour le unlink, rine ne marchait jusqu'à ce que je fasse ceci :  
 
AVANT :
$result= (unlink("$img_grande" ) && unlink("$img_mini" ))? "Suppression réalisée" : "echec de la suppression";
 
APRES  
 
$result= (unlink('montheme/images/mcforest.jpg" ') && unlink('Pareil mais pr les miniatures' ))? "Suppression réalisée" : "echec de la suppression";
 
 
J'ai remplacé le chemin donné en variable par le chemin fixe d'une image, remplace les " par des simples ' et la le message de Warning disparait...  
Ca ne devrait donc pas etre un probleme de chemin puisque quand je donne le chemin sans variables tout roule...
Reste le probleme des variables justement... je ne peux pas creer un fichier pour chaque photo uploadé, il me faut ces variables dans le chemin...

Message cité 1 fois
Message édité par zipolo le 05-08-2008 à 17:56:15
n°1769875
sielfried
Posté le 05-08-2008 à 22:48:14  profilanswer
 

zipolo a écrit :


 
J'ai deja testé avec $_SERVER['DOCUMENT_ROOT'] ( enfin j'avais mis le chemin à la main ce qui revient au même). Je comprend plus... IL faut que je pointe en relatif , en absolu ?  


 
Il faut que le chemin soit bon. Relatif, absolu, les deux sont toujours valides. [:spamafote]  
 
Fais voir un peu à quoi ressemble ton arborescence, et où se trouvent tes "thèmes" à l'intérieur.

Message cité 1 fois
Message édité par sielfried le 05-08-2008 à 22:48:47

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1771170
zipolo
Posté le 08-08-2008 à 13:32:45  profilanswer
 

sielfried a écrit :


 
Il faut que le chemin soit bon. Relatif, absolu, les deux sont toujours valides. [:spamafote]  
 
Fais voir un peu à quoi ressemble ton arborescence, et où se trouvent tes "thèmes" à l'intérieur.


 
 
Mon arbo :
 
 
/www/
-------
-------upload/
--------------galeries/
----------------------Dossier_1/ (theme )
--------------------------------images/
 
Quand j'ai posté ici je testais mon fichier effacer.php dans galeries, sinon il est a la racine au niveau www, m'enfin ça ne change rien il suffit de rajouter upload/galeries !
 

mood
Publicité
Posté le 08-08-2008 à 13:32:45  profilanswer
 

n°1775404
grosbin
OR die;
Posté le 21-08-2008 à 11:28:58  profilanswer
 

plus simple : user le @unlink("$path/tonfichier.jpg" ); au moins ça retourne pas de warning si ça marche pas :D
unlink("upload" );//reste une valeur bien plus sûre :D


Message édité par grosbin le 21-08-2008 à 11:29:42

---------------
Développeur Php Annecy
n°1775582
Profil sup​primé
Posté le 21-08-2008 à 16:54:22  answer
 

tu pourrais utiliser la fonction realpath()


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme avec la fonction unlink

 

Sujets relatifs
[RESOLU] VBA variable differente en fonction du bouton clickeproblème avec a:hover
Probleme de Script PHP[Résolu]Probleme Surlignement ligne avec Javascript
probleme de configurationde certaine moduleProblème avec FormulaR1C1
[Problème] OpenGL, glBegin(GL_TRIANGLES)Convertir 1 colonne d'un fichier txt avec une fonction (ktime)
Probleme SSLV2[Résolu] problème background-repeat
Plus de sujets relatifs à : Probleme avec la fonction unlink


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR