Php probleme avec in_array($_GET["page"]

Bonjour

Je teste ce script hébergé chez free mais je n'arrive pas à récuperer mes pages:

<div id="header">
<h1>Gestion des Pseudos Frames</h1>
<ul id="menu">
<li><a href="pseudos-frames.php?page=in_array">in_array</a></li>
<li><a href="pseudos-frames.php?page=glob">glob</a></li>
<li><a href="pseudos-frames.php?page=str_pad">str_pad</a></li>
<li><a href="pseudos-frames.php?page=toto">toto</a> (page inexistante)</li>
</ul>
</div>
<div id="page">
<?php
define("PATH", "./includes/");
// Tableau contenant les pages autorisées
$tableau = array(PATH . "*.inc.php");

if (isset($_GET["page"]) && in_array($_GET["page"] . ".inc.php", $tableau))

{
$pageInclude = PATH . $_GET["page"] . ".inc.php";
}
else
{
$pageInclude = PATH . "default.inc.php";
}
include $pageInclude;
?>
</div>

Merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.1

5 réponses

  1. Modérateur
    Tu peux utiliser file_exists tout simplement ;-)
    Par contre, attention : en PHP 5, cette fonction vérifie l'existence d'un fichier distant.
    1. C'est interressant mais je voudrais éviter de passer par un bdd
      Cette ligne fonctionne parfaitement dans le srcipt original
      $tableau = glob(PATH . "*.inc.php");
      Mais il semble que la variable globale soit refusée par free pour des raisons de sécurité
      Je cherche un moyen de la contourner tout en restant dans un tableau
      1. Webmaster
        Tu peux t'inspirer de ma fonction ScanDir :
        phpmoteur
        1. Webmaster
          Le problème c'est que ton tableau ne contient qu'un élément :
          "./includes/*.inc.php"
          1. Merci, je m'en doutais un peu, mais alors

            comment peut on inclure toute l'arborescence du repertoire sans utiliser la fonction GLOB que free n'aime pas

            Merci