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 :

Erreur avec unlink que je ne comprend pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut Erreur avec unlink que je ne comprend pas
    J'ai un formulaire où je peux supprimer des fichiers. J'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <form action="?" method="post" id="delpage">
    	<input type="hidden" name="a" id="a" value="delete" />
    	Page name:
    	<select name="dname" id="dname">
    	<?php 
    		if ($dh = opendir('.')) {
    			while (($file = readdir($dh)) !== false) {
    				if (is_file($file)){
    					echo '<option value="' . substr($file,0,strlen($file) - 4) . '">' .  substr($file,0,strlen($file) - 4) . '</option>';
    				}
       		}
          closedir($dh);
    	} 
    	?>
    	</select><br/>
    	<input type="submit" name="delete" id="delete" value="Delete File"  />
    	<br/><br/>
    </form>
    Lorsque je soumet le formulaire, il supprime la page faq.php pour essayer, il me dit la chose suivante:

    Warning: unlink(faq.php) [function.unlink]: No such file or directory in /fpgs/fpgshttpd/kwn/files.php on line 9
    mais pourtant il la supprime quand même...comment faire pour éviter cela?

    Le code pour supprimer la page est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($_POST['a'] == "delete"){
    	unlink($_POST['dname'] . ".php");
    }
    Merci!

  2. #2
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @unlink($_POST['dname'] . ".php");
    tu n'aurras plus d'erreur normalement...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Oui en effet, merci!

  4. #4
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut Arrg
    Citation Envoyé par max44410
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @unlink($_POST['dname'] . ".php");
    tu n'aurras plus d'erreur normalement...
    Quel plus mauvais conseil donner que celui de masquer les erreurs au lieu de les traiter ou de les prevenir ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     if($_POST['a'] == "delete" && file_exists($_POST['dname'] . ".php")) {
         unlink($_POST['dname'] . ".php"); 
    }

  5. #5
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Citation Envoyé par stunti
    Quel plus mauvais conseil donner que celui de masquer les erreurs au lieu de les traiter ou de les prevenir ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     if($_POST['a'] == "delete" && file_exists($_POST['dname'] . ".php")) {
         unlink($_POST['dname'] . ".php"); 
    }
    si il n'a pas les droits sur le fichiers il aurra un message d'erreur ...
    ca revient au meme.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Peut être qu'ultimement la solution serait d'essayer avec un try catch (que je n'ai jamais utilisé en PHP). Je pourrais ainsi gérer si l'utilisateur a des droits et si le fichier existe.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Mouais ca ne semble pas fonctionner...alors l'erreur n'est pas une exception.

    Mais pourquoi fait-il cela? Si je connais cette réponse peut être que je peux le régler?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur du W3C que je ne comprends pas
    Par macbida dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/12/2011, 23h44
  2. Message d'erreur du compilateur que je ne comprends pas
    Par ram-0000 dans le forum Visual C++
    Réponses: 6
    Dernier message: 21/07/2010, 14h45
  3. Erreur de compilation que je ne comprends pas
    Par id_rima dans le forum Débuter
    Réponses: 10
    Dernier message: 02/06/2010, 20h23
  4. [MySQL] J'ai une erreur (requete sql)que je ne comprends pas du tout Mysqlfetcharray()
    Par metou2703 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/09/2009, 14h52
  5. Erreur avec SQL Serveur, je ne comprend pas !
    Par kmaniche dans le forum Accès aux données
    Réponses: 6
    Dernier message: 24/01/2007, 13h38

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