IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Faire marcher unlink


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut Faire marcher unlink
    Bonsoir,

    je n'arrive pas à effacer un fichier : qu'est-ce qui ne va pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i=0;$i<$nbfiles;$i++) {
        $path="http://vercorshandisport.org/upload/";
    	unlink($path.$file[$i]);}

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Il te faut donner le chemin du fichier ("/upload/fonFichier") et non pas une URL

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je vais au passage encore faire mon vendeur de foreach() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($file as $nom_fichier) {
         unlink($_SERVER['DOCUMENT_ROOT'] . "/upload/" .$nom_fichier);
    }

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    J'ai essayé tour à tour les 2 codes, mais aucun n'a marché ; mon dernier code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$file="bebes.bmp";
    	foreach ($file as $nom_fichier) {
         unlink($_SERVER['DOCUMENT_ROOT'] . "/upload/" .$nom_fichier);
    }
    et ce code PHP est dans un répertoire qui contient le sous-répertoire "upload" qui lui-même contient le fichier "bebes.bmp" : où est le problème ?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    pour que le test fonctionne il faut un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file=array("bebes.bmp");

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Même avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$file=array("bebes.bmp");
    	foreach ($file as $nom_fichier) {
         unlink($_SERVER['DOCUMENT_ROOT'] ."/upload/" .$nom_fichier);
    }
    ça ne marche pas...

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas d'erreur ?

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Aucun message...

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    et si tu mets echo a la place de unlink ?

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Avec un echo, no problem : j'affiche bien les fichiers sélectionnés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	foreach ($file as $nom_fichier) {
    	echo "attention, l'echo : /upload/" .$nom_fichier;
         //unlink($_SERVER['DOCUMENT_ROOT'] ."/upload/" .$nom_fichier);
    }

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que tu affiches bien toutes les erreurs ?

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Désolé, mais je ne sais pas ce qu'il faut faire...

  13. #13
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Quel est ton environnement? Windows, Unix? Apache, IIS (windows)? Version Php?
    Je demande parce qu'à la version 4 du Php, unlink ne fonctionne pas sous windows.

    Pour bien vérifier, essaye
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $file=array("bebes.bmp");
    	foreach ($file as $nom_fichier) {
         echo unlink($_SERVER['DOCUMENT_ROOT'] ."/upload/" .$nom_fichier);
    }

    Cela retournera true or false suivant que l'opération a réussi ou pas.

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Désolé, je n'ai vu le post que ce soir ; je viens de faire l'essai, et je n'ai ni true, ni false...

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    un echo n'affiche ni true ni false. il faut faire un var_dump() à la place.

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Je viens de remplacer echo par var_dump et ça me donne false. Sinon, je réponds aux autres questions que j'avais oubliées : Windows et PHP4.4.9 (selon PHPINFO), donc d'après ce que disait Kabkab, normal que ça ne marche pas ; y a-t-il une autre fonction qui ferait l'affaire ?

  17. #17
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Comme ça, j'opterais pour 2 raisons principales pour qu'un unlink() ne supprime pas le fichier.
    - Soit il y a erreur sur le chemin ou le nom du fichier
    - Soit tu n'as pas les droits suffisant pour le supprimer.
    Vu que j'ai abandonné Php4 depuis pas mal de temps, j'en connais plus les différences, rien ne dit qu'il n'y aurait pas là une cause à effet.

    Pour garantir à coup que le chemin soit le bon, crée toi un fichier realpath.php à l'endroit même où ce trouve le fichier à effacer, le bebes.bmp (c'est impératif).
    Ensuite tu y mets uniquement ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo realpath('bebes.bmp');
    ?>
    Tu pointe vers ce fichier realpath.php, tu devrais alors voir afficher le chemin "physique" complet pour ce fichier bebes.bmp.
    Suffit de faire un copier/coller dans la fonction unlink('chemin/du/fichier/bebes.bmp').

    Si le fichier n'est toujours pas supprimé, alors le problème est ailleurs.

    Pour vérifier les droits sur ce fichier bebes.bmp de même que le(s) répertoire(s) où il se trouve, le plus simple c'est d'utiliser un client FTP, de vérifier le CHMOD de tout ça.
    Au pire, voir avec ton hébergeur s'il n'y aurait pas une restriction sur cette fonction unlink(), c'est possible que celle ci soit verrouillée.

    Cependant, tu dit que tu est sur Windows, mais en local ou c'est sur serveur distant ?

    Si tu est en local, tu fait un click droit sur le fichier, puis propriété, y verras tu peut être des droits restrictifs.

  18. #18
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    J'ai fait ce que tu m'as indiqué ; comme je n'avais pas de commande CHMOD sur mon logiciel FTP, j'ai rajouté la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chmod ("/upload/bebes.bmp", 777);
    dans mon code.
    Pour Windows, il s'exécute en local (donc le click droit est possible), bien que le serveur soit aux US (mais ça ne doit concerner que quand je suis connecté à mon employeur (j'utilise un PC portable professionnel), sinon, c'est purement local).
    Et toujours pas de unlink.

  19. #19
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour à tous,

    Je me permet de m'inscruster dans votre discussion car j'ai le même problème que toi Laurent avec un unlink() qui marche pas depuis plusieurs semaine (et dont j'avais un peu laissé tombé).

    J'avais tout essayé, le chmod et le chown puis le click droit des propriétés du fichier (par windows), rien ne marche, (au départ c'était un rename qui et devenu un copy + unlink), j'avais déjà lancé ce post 2 ou 3 fois mais rien comme réponses

    En attendant, sur le forum tu as le lien qui traite de la gestion des fichiers (tout en bas tu as l'upload puis ensuite sur la page de l'upload tu as des topics sur chmod, unlink) Je suis en cours de le lire entre deux autres choses mais tu y trouveras peut être ta solution:
    http://antoine-herault.developpez.co.../gestionnaire/

  20. #20
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je réécris le lien précédent http://antoine-herault.developpez.co...nnaire/#L4.0.0

    Autrement, sous windows et php4 le unlink c'est sûr ne fonctionne pas.

    Essaye en ftp avec la commande ftp_delete.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [réplication]N'arrive pas à le faire marcher!!!!
    Par mohamed dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/03/2006, 14h29
  2. Faire marcher mon flash disque sous linux
    Par sabrinaaa dans le forum Matériel
    Réponses: 2
    Dernier message: 02/03/2006, 08h22
  3. [ant] comment le faire marcher?
    Par afrikha dans le forum ANT
    Réponses: 11
    Dernier message: 23/12/2005, 16h18
  4. Impossible de faire marcher SESSIONS_PER_USER
    Par jack554 dans le forum Oracle
    Réponses: 7
    Dernier message: 05/01/2005, 11h50
  5. [Debutant(e)][Tomcat]Comment faire marcher Tomcat?
    Par chuck norris dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 24/11/2004, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo