8797 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,
je poste ici car j'ai un petit soucis avec un de mes tests sur mon site perso.

Ce test consiste à vérifier que le nom de mes fichiers.php soit bien formé et que surtout le fichier demandé existe bien.

Voici ma condition :
(exemple $_GET['p']="portfolio.php"; // views/portfolio.php )

<?php
                if (isset($_GET['p'])){
                    echo $p=  strtolower ($_GET['p']);
                    $d= "views/";
                    if (preg_match("/^[a-z0-9\1-]+$/", $p) && file_exists($d.$p,".php")){
                        include_once ('views/'.$_GET['p']);
                    }
                    else {
                        echo ('Page introuvable');
                    }
                }
                else{
                    include_once ('views/home.php');
                }
            ?>


Le problème est que celà me retourne toujours le message "Page introuvable" alors que le fichier existe bien.
upload/38519-Capture.jpg

Par avance merci.
Modifié par blobi (27 Jul 2012 - 10:20)
Bonjour,
Dans ton file_exists(), tu as mis une virgule au lieu d'un point.
Et dans ton include_once(), tu n'a pas mis l'extension du fichier.
Modifié par Gothor (27 Jul 2012 - 10:03)
Gothor a écrit :
Bonjour,
Dans ton file_exists(), tu as mis une virgule au lieu d'un point.
Et dans ton include_once(), tu n'a pas mis l'extension du fichier.


Merci, je viens de rectifier, mais j'ai un problème de syntaxe maintenant sur ce test :


if (preg_match("/^[a-z0-9\1-]+$/", $p) && file_exists($d.$p ; ".php")){
    include_once ("views/".$_GET['p']."php");
}
Bonjour,
Désormais, dans ton file_exists(), tu as mis un point-virgule au lieu d'un point...
De plus, dans ton include_once(), tu as oublié un point devant le "php" (ton fichier se nomme home.php et non homephp).
Modifié par Gothor (27 Jul 2012 - 10:17)