Voici un petit exemple de pseudo frames PHP sécurisé.
Il n'est pas infaillible, mais je pense que c'est un très bon début et ce code laisse une très grande liberté.
<?php
// Chemin absolu
// le répertoire dans lequel se trouve CE fichier
// IMPORTANT : mettre un / à la fin
$root_dir = $_SERVER['DOCUMENT_ROOT'].'/';
// la page par defaut, si les valeurs fournies sont incorrect :
$page_defaut = 'accueil';
// on recupere la valeur passé dans l'url :
if(!empty($_GET["page"]))
$page = $_GET["page"];
else
$page = $page_defaut;
//Enlevons les caractères html
$page = htmlentities($page, ENT_QUOTES);
//Si on a des répertoires que l'on ne veut pas accéder, un les liste ici :
$repProteger = array('include', 'libs', 'admin');
$temp = split('/',$page);
if(isset($temp[0]) && in_array($temp[0],$repProteger))
$page = $page_defaut;
// on enlèves les caractères non autorisés
$page = str_replace(':/', '', $page);
$page = str_replace('./', '', $page);
//Testons si la page demandé existe bien en local
if(file_exists($root_dir.$page.'.php'))
include($root_dir.$page.'.php');
else
include($root_dir.$page_defaut.'.php');
?>