par
Hywan » 24 mars 2008, 22:45
Bonsoir et désolé pour la réponse tardive (occupé à pelleter

),
tout d'abord : oui, ce n'est pas d'une grande clarté.
Sache que tu n'es pas obligé de préciser toutes tes pages dans un tableau. Tu peux très bien récupérer les valeurs des paramètres URL, tu les protèges (basename() & co.), et tu vérifies si le fichier existe (file_exists()). Si oui, alors on l'inclue, sinon, une erreur.
Il faut bien faire attention avec cette technique car il ne faut pas inclure n'importe quoi. Il faut retrouver le nom du fichier sans parcours de dossier (../ par exemple), ni extension (.php par exemple), et pas d'URL (http:// par exemple). C'est plus compliqué à protéger mais c'est plus facile à maintenir par la suite. Il faut vraiment imaginer tous les cas, même les plus fous (virer les caractères étranges, comme \0 etc.).
Il existe beaucoup de solutions à ce problème

.
Edit : sinon tu peux enregistrer toutes tes pages dans une base de données, c'est déjà plus facile à maintenir et c'est plus sécurisé (mais plus lent)

.
Bonsoir et désolé pour la réponse tardive (occupé à pelleter ;-)),
tout d'abord : oui, ce n'est pas d'une grande clarté.
Sache que tu n'es pas obligé de préciser toutes tes pages dans un tableau. Tu peux très bien récupérer les valeurs des paramètres URL, tu les protèges (basename() & co.), et tu vérifies si le fichier existe (file_exists()). Si oui, alors on l'inclue, sinon, une erreur.
Il faut bien faire attention avec cette technique car il ne faut pas inclure n'importe quoi. Il faut retrouver le nom du fichier sans parcours de dossier (../ par exemple), ni extension (.php par exemple), et pas d'URL (http:// par exemple). C'est plus compliqué à protéger mais c'est plus facile à maintenir par la suite. Il faut vraiment imaginer tous les cas, même les plus fous (virer les caractères étranges, comme \0 etc.).
Il existe beaucoup de solutions à ce problème :).
Edit : sinon tu peux enregistrer toutes tes pages dans une base de données, c'est déjà plus facile à maintenir et c'est plus sécurisé (mais plus lent) :).