Aller au contenu

tester si un fichier existe


Luckyluk

Sujets conseillés

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:

merci d'avance

luc

Lien vers le commentaire
Partager sur d’autres sites

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.

<?php 
$filename = '/path/to/'.$_GET[num].".php";

if (file_exists($filename)) {
  include($filename);
} else {
  print "Le fichier $filename n'existe pas";
}
?>

Lien vers le commentaire
Partager sur d’autres sites

En terme de securite je ferais surtout

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

Pour eviter que "num" ne contiennent autre chose que ce qui est acceptable (=une valeur entiere)

:)

Lien vers le commentaire
Partager sur d’autres sites

encore une petite explication svp..

si je mets

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

ou

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

ça ne marche pas, par contre si je mets çà:

 intval($_GET[num]) . '.php';

ça marche tres bien....

il doit y avoir une petite raison...

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

encore une petite explication svp..

si je mets

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

ou

$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 ;)

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

Dan

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...