Vérifier qu'un fichier existe

Eléphanteau du PHP | 10 Messages

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.
MSO

Eléphant du PHP | 451 Messages

02 avr. 2006, 13:12

essaye plutôt la fonction file_exists().
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 90 Messages

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
Je ne tiens pas a etre un genie. J'ai suffisamment de probleme a etre un homme.

Eléphanteau du PHP | 10 Messages

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
MSO

Eléphant du PHP | 451 Messages

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...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphanteau du PHP | 10 Messages

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à.
MSO

Eléphant du PHP | 451 Messages

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...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

unknow
Invité n'ayant pas de compte PHPfrance

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"; } ?>
@+