era proprio una cosa stupida, e sicuramente non l'ho risolta nel modo ottimale, ma who cares, per adesso basta che funzioni (tanto sappiamo tutti che non la cambierò mai )

Codice PHP:
<?
include("header.php");
include(
"menu.php");

$p="main";              //pagina di default per i contenuti centrali

if(isset($_GET['page'])){      //pagina passata via parametro
    
$p=$_GET['page'];
    if(
$p!=basename($p) || !preg_match("/^[A-Za-z0-9\-_]+$/",$p) || $p=="index" || !file_exists($p.".php"))
    
$p="error";     //pagina di errore
 
}  
 
else if(isset(
$_GET['id'])){      //altro parametro passato
    
$p=$_GET['id'];
    
$d="visualizza";
    if(
$p!=basename($p) || !preg_match("/^[A-Za-z0-9\-_]+$/",$p) || $p=="index" || !file_exists($p.".php"))
    
$p="visualizza";

}
    include(
$p.".php");

include(
"footer.php"); ?>
cosi oltre alla variabile "page" gestisco anche "id".
bravo!