Vérifier qu'un fichier existe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Vérifier qu'un fichier existe

par unknow » 02 avr. 2006, 16:06

Bonjour

Normalement file_exists () ne s'occupe pas de ce qu'il y a l'interieur du fichier mais juste si le fichier existe ou non

Code : Tout sélectionner

<?php $filename = '/chemin/jusqu/a/fichier.txt'; if (file_exists($filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } ?>
@+

par jpaul » 02 avr. 2006, 16:03

Hum je pense qu'il faudrait que tu montres l'intégralité de ton code.
Je n'arrive pas à croire qu'il passe dans le else quand le fichier existe déjà alors que tu as mis :
if (file_exists($chemin.$titre.".php"))
        {
                echo 'La page "'.$titre.'" existe déjà veuillez saisir un autre nom!';
                echo '<fieldset><legend>Erreur</legend><form method="post" name="formulaire_retour" action="form_admin.php">
        <input type="submit" value="Précédent" name="boutton"></fieldset>
        </form>';
        clearstatcache();
        }
else ...
A mon avis, il y a une autre partie du code qui te joues des tours...

par Daywalker_mso » 02 avr. 2006, 14:57

C'est simple.

Suite au probleme que j'avais exposer la derniere fois et sur lequel tu m'as aidé, je veux donc vérifier que l'utilisateur ne crée pas des pages en doubles.

Lorsque je crée une page "Bonjour.php", avec comme contenu "hello", il crée la page sans probleme.

Lorsque je crée une page (la meme) "Bonjour.php", avec comme contenu "Salut", il considère que la page n'existe pas et écrit dans la page "Bonjour.php" :"hello Salut"

MAIS, lorsque je tente de créer une page "Bonjour.php", sans mettre de texte à l'intérieur, il me dit que la page existe déjà.

par jpaul » 02 avr. 2006, 14:37

justement ce que viens d'expliquer, avec un ou avec l'autre le probleme reste le meme, il analyse le contenu en meme temps
Qu'est ce que tu entends par analyse le contenu ?
Je me rapelle avoir déjà utilisé cette fonction sans problème :
- si le fichier n'existe pas elle renvoie false
- si le fichier existe (même vide) elle renvoie true

Tu as constaté un fonctinnement différent ?

Donne un exemple du contenu qui fait que tu dis que ça change le résultat, si tu veux qu'on comprenne ton problème...

par Daywalker_mso » 02 avr. 2006, 14:01

justement ce que viens d'expliquer, avec un ou avec l'autre le probleme reste le meme, il analyse le contenu en meme temps

par Dgse » 02 avr. 2006, 13:36

Bonjour

Il veut dire comme ca en gros
... 
if (file_exists ($chemin.$titre.".php"))
        { 
                echo 'La page "'.$titre.'" existe déjà veuillez saisir un autre nom!'; 
                echo '<fieldset><legend>Erreur</legend><form method="post" name="formulaire_retour" action="form_admin.php"> 
        <input type="submit" value="Précédent" name="boutton"></fieldset> 
        </form>'; 
        clearstatcache(); 
        } 
else ... 
@+ Dgse

par jpaul » 02 avr. 2006, 13:12

essaye plutôt la fonction file_exists().

Vérifier qu'un fichier existe

par Daywalker_mso » 02 avr. 2006, 13:08

Bonjour,

J'ai un drôle de souci,lorsque je veux vérifier que mon fichier existe ou non, je procéde de cette facon:
...
if (is_file($chemin.$titre.".php"))//meme chose avec file_exists.
        {
                echo 'La page "'.$titre.'" existe déjà veuillez saisir un autre nom!';
                echo '<fieldset><legend>Erreur</legend><form method="post" name="formulaire_retour" action="form_admin.php">
        <input type="submit" value="Précédent" name="boutton"></fieldset>
        </form>';
        clearstatcache();
        }
else ...
Le problème c'est que cette fonction analyse également le contenu du fichier, or ce que je souhaite, c'est que peut importe le contenu du fichier si le nom est le même que ca renvoie a l'utilisateur un message d'erreur.

Comment mettre cela en place svp.