Plop,
Grafikart utilise ce code dans un de ses tutos qui permet d'include des fichiers :
include((isset($_GET'page']) ? $_GET'page'] : 'home').'.php');
mais lorsqu'on voit un mauvais fichier on voit l'erreur d'inclusion php et j'aimerai y remedier en mettant mon propre message d'erreur donc j'ai essayé de refaire ce code à ma manière car je ne connais pas ce type de code (c'est pour allez plus vite je suppose)
if (isset($_GET'page'])) {
$_GET'page'] = 'home.php';
}
else if (!file_exists) {
echo 'erreur'; }
else {
$_GET'page'] = $_GET'page'].'.php';
}
Je pense que vous avez compris mon code, j'essaie de reproduire le même effet que celui d'en haut mais codé à ma façon si on peut m'aider ce serait gentil ^^
Salut !
Si tout tes fichiers sont au même niveau d'arborescence alors oui la fonction file_exists() te permettra de dire si oui ou non le fichier existe auquel cas tu pourra générer une erreur si tu le souhaite.
Cependant je te conseil pas de faire comme ça, imagine un pirate arrive à mettre un fichier sur ton serveur, rien ne l’empêchera d'accéder à la page. A priori c'est anecdotique puisqu'il s'il trouve une faille pour télécharger un fichier sur ton serveur il ne devrait pas avoir trop de mal à en trouver le moyen de l’exécuter...Cependant je te conseil quand même de plutôt procéder avec un tableau dans lequel tu mets le nom des pages auquel on peut avoir accès. Un simple in_array() suffit ensuite à déterminer si l'utilisateur à le droit ou non d'accéder à la page ;)
tu veux faire quoi de plus la? a part faire un peux de skin sur l'affichage de ton message d'erreur...
le plus simple étant quand même déviter de passer les pages en get mais ca ca n'engage que moi je prefere bosser avec de la réécriture d'url pour éviter les problèmes potentiels
Merci à vous,
juste est ce que vous pourriez réecrire le code de grafikart mais comme je vous l'ai montrer car c'est abréviations ':', '?' etc je ne comprend pas trop.
Sinon Deltod je mettrais les fichiers tel login.php, panier.php, compte.php etc à la racine et les autres inclusions ex: footer.php, les class dans des dossiers ou il y a aura un .htaccess pour proteger et rediriger. C'est une bonne solution ?
je vais essayé si in_array marche ^^
EDIT : j'ai tapé ce code le système à l'air de marcher c'est juste que l' inclusion ne ce fait pas mais si je tape index.php?p=home il va le detecter alors que p=homes va être considerer comme une erreur donc c'est bon.
$cellule = array("home", "login");
if (isset($_GET'p'])){
if (in_array($_GET'p'], $cellule)){
include "$_GET'p'] = $cellule.'.php'";
}else{
echo 'erreur';
}}
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /opt/lampp/htdocs/site/index.php on line 10