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. 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
  2. Webmaster
    Tu peux t'inspirer de ma fonction ScanDir :
    phpmoteur
    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. 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.