Version complète: sur le forum Webmaster Hub : tester si un fichier existe
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Luckyluk
Bonjour,

les pages d'un de mes sites s'appellent de la manière suivante

"http://www.site.com/index2.php?num=$1"

je voudrais simplement tester si par exemple le fichier "1.php" existe

si $num.php existe

alors include ("$num.php");
else

echo"hghghg";

etant faineant, je n'ai pas pris le temps d'ouvrir mon bouquin blush.gif

merci d'avance

luc
Dash
pour simplement verifier si un fichier existe, il y a la fonction file_exists()

tout simplement smile.gif
Dan
Salut Luc,

C'est simple, mais il faut bétonner un peu ton code, parce que faire une inclusion sans vérifier l'argument est toujours dangereux.
CODE
<?php
$filename = '/path/to/'.$_GET[num].".php";

if (file_exists($filename)) {
  include($filename);
} else {
  print "Le fichier $filename n'existe pas";
}
?>
Dash
En terme de securite je ferais surtout
CODE
$filename = '/path/to/' . intval($_GET[num]) . '.php';


Pour eviter que "num" ne contiennent autre chose que ce qui est acceptable (=une valeur entiere)
smile.gif
Luckyluk
merci les gars!


comme d'habitude...la solution est ici wink.gif
Luckyluk
encore une petite explication svp..

si je mets
CODE
$filename = '/path/to/' . intval($_GET[num]) . '.php';


ou
CODE
$filename = '/path/to/'.$_GET[num].".php";


ça ne marche pas, par contre si je mets çà:
CODE
intval($_GET[num]) . '.php';


ça marche tres bien....

il doit y avoir une petite raison...
Anonymus
Une autre solution pour avoir un nombre entier, c'est de le multiplier par 1. Exemple :
$num = $_GET['num']*1;
Prends aussi l'habitude de mettre des guillemets autour des index, comme pour 'num'. Ca évite de le confondre avec les constantes.

Nico.
Dan
CITATION(Luckyluk @ mardi 12 avril 2005, 13h43)
encore une petite explication svp..

si je mets
CODE
$filename = '/path/to/' . intval($_GET[num]) . '.php';


ou
CODE
$filename = '/path/to/'.$_GET[num].".php";


ça ne marche pas,
*

Il faut bien sûr remplacer /path/to par le chemin serveur vers ton fichier... Désolé mais j'aurais dû être plus explicite wink.gif

Donc dans le genre /home/tonsite/www/ .... cela dépend de ton hébergement.

Dan
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.