logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [php] question sur l'include
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [php] question sur l'include  (Lu 2436 fois)
darksp

Profil challenge

Classement : 1030/54278

Membre Junior
**
Hors ligne Hors ligne
Messages: 87


Voir le profil
« le: 10 Juin 2007 à 14:38:13 »

Salut a tous. Voila j'ai un site qui utilise l'include pour ajouter au chaque page son contenu. Seulement voila, je souhaite faire des dossiers sur le serveur.

par exemple un dossier "tuto", "definitions" etc

Pour faire ceci je me sers de l'include de cette facon :

Code:
<?php  
switch($_GET['page'])
{

case'index':
include("intro.php");
break;

case 'tuto_1':
include("tutoriels/tuto1.php");
break;

default:
include("404.php");
break;


}
?>
Donc quand le nombre de pages devient consequent c'est plutot génant...

j'avais donc penser a verifier si la page était sur le serveur puis a inclure directement ce qui est passé par l'url. cependant je ne peut pas gerer les dossiers. Et je ne desire pas passer par l'url des "page=tutoriels/tuto1" mais plutot des "page=tuto1"

Comment je peut faire? merci a tous
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54278

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #1 le: 10 Juin 2007 à 18:13:51 »

tu peux faire ca avec un tableau associatif du genre :

Nom ->Valeur
index -> intro.php
tuto1 -> tutoriel/tuto1.php

et apres tu fais un
if (array_key_exist ($_GET['page']))
{
include ($tableau[$_GET['page']) ;
}
else
{
include ('intro.php') ;
}

$tableau etant le tableau que tu as crée.

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
darksp

Profil challenge

Classement : 1030/54278

Membre Junior
**
Hors ligne Hors ligne
Messages: 87


Voir le profil
« #2 le: 11 Juin 2007 à 12:06:55 »

je vais voir ca. merci beaucoup
Journalisée
NiklosKoda

Profil challenge

Classement : 162/54278

Membre Complet
***
Hors ligne Hors ligne
Messages: 113


Voir le profil
« #3 le: 11 Juin 2007 à 15:44:05 »

si tu choisis cette solution pense à vérifier si $_GET['page'] n'est pas un tableau,
(ce que l'on obtient de la manière suivante : fichier.php?page[]=plop)
auquel cas, avec le code actuel, tu aurais un "Full Path Disclosure".
En effet l'erreur engendrée serait la suivante :

Citation
Warning: array_key_exists() [function.array-key-exists]: The first argument should be either a string or an integer in /the/full/path/is/here/fichier.php on line X
Pense donc à faire :
Code:
if(is_array($_GET['page']))
    echo 'erreur';
else
    // traitement de la demande
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: