ecliptux Oui. Enfin si peut-être. | Bonjour,
J'utilise depuis un petit moment déjà un script de pseudo frame :
main.php
Code :
- <?
- //donc voilà notre tableau qui contien la liste des pages possibles
- $liste_pages = array(
- "editorial.php",
- "presentation.php",
- "accueil.php",
- "articles.php",
- "chat.php",
- "liens.php",
- "guestbook/index.php",
- "livredor/index.php",
- "page2.php"
- //etc...
- );
- //si $page est TRUE, existe et n'est pas vide alors
- //on peut essayer de voir si une correspondance va avec l'array
- if($page && isset($page) && !empty($page)) {
-
- //on définie une variable témoin qui permetra de savoir si une
- //une page a été trouvée ou pas afin de décider si on dois inclure
- //la page par défaut ou pas
- $page_trouve = 0;
-
- //ensuite on teste une valeur de $liste_pages avec $page afin de voir si elles
- //sont identiques et si oui, alors on a trouvé une page correct
- if(in_array($page, $liste_pages)) {
- //on peut donc proceder à l'include ou au require sans se poser de question
- require($page);
-
- //ensuite on donne une valeur TRUE a $page_trouve afin d'éviter d'inclure
- //la page par défaut si aucune occurance n'est trouvé
- $page_trouve = 1;
-
- } //fin du if() qui cherche la correspondance entre $page et l'array
-
- //maintenant si aucune page n'a été trouvé, il faut inclure une page par défaut
- if(!$page_trouve) {
- require("accueil.php" );
- }
- } else { //fin du if() qui vérifiait si le contenu de $page était acceptable
- //ce else permet d'inclure une page par défaut dans le cas ou $page était
- //soit inexistant, soit vide, soit incorrect
- require("accueil.php" );
- }
- ?>
|
avec le fichier d'appel index.php :
Code :
- <html><head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- </head>
- <body bgcolor="#FFFFFF" text="#000000">
- <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
- <tr>
- <td colspan="3">
- <? include('titre.php'); // L'entete de votre site ?>
- </td>
- </tr>
- <tr>
- <td valign="top" width="150" nowrap>
- <? include('frame.php'); // la page menu de votre site ?>
- </td>
- <td width="10">
- </td>
- <td valign="top" width="100%">
- <? require('main.php'); ?>
- </td>
- </tr>
- </table>
- </body>
- </html>
|
Comme expliqué sur cette page : http://www.toutestfacile.com/phpin [...] ap=frames0 :
Citation :
Les plus futés d'entre vous, auront vite remarqué qu'il est possible de remplacer le bloc switch par un unique appel include($page); où $page contiendrait directement le chemin du fichier à inclure. Cela est tout à fait possible mais ATTENTION cela est également extrêmement risqué si vous ne prenez pas toutes les mesures appropriées. Il serait alors en effet possible à quiconque de saisir sa propre valeur pour $page pour pouvoir faire exécuter par VOTRE serveur un bout de code écrit par une autre personne (et pouvant donc contenir des instructions préjudiciables à la bonne santé de votre site). Ce "hacker en herbe" peut au choix préciser dans $page l'URL d'une page de l'un de ses sites qui retourne un bout de code PHP ou bien, plus vicieux, il peut faire pointer $page sur un des fichiers de VOTRE site mais, fichier, dont il peut altéré le contenu (ex: fichier stockant un livre d'or, fichier de log, etc...) et donc y insérer du code PHP.
Si vous optez pour cette option, veillez donc bien à faire un contrôle poussé sur $page pour n'autoriser qu'un nombre restreint de page (limiter à une zone bien définie de votre site).
Nous vous déconseillons donc d'utiliser les pseudo-frames, à la place, utilisez plutôt la technique de l'en-tête et pied de page que nous décrivons au chapitre suivant.
|
Donc voici mon problème : j'aimerai intégrer mon livre d'Or DANS le jeu de pseudo-frame, au lieu de l'ouvrir dans une nouvelle page.
J'ai donc rajouté la ligne "guestbook/index.php", à mon fichier main.php
Le soucis, c'est que tous les liens propres au Livre d'Or sont relativement complexe et il est impossible de tous les prévoir pour les rentrer dans le main.php
Autrement, seule la première page du livre d'Or s'affiche dans le cadre voulu de la pseudo frame, mais dès que l'on valide une action sur ce livre d'or, le lien ne prends plus en compte les pseudo frame.
Bon je sais je suis pas clair ce matin mais ça commence à me lourder cette histoire.
Je cherche en fait un système de pseudo frame qui soit souple (pour intégrer mon Livre d'Or) et sécurisé (pour qu'on ne puisse pas exécuter n'importe quel script)
Vous n'auriez pas des tuyaux là ? |