Ciao... quante domande!!
Vediamo, innanzitutto un sito tipo:
header
colonna sin - content - colonna des
footer
Lo puoi fare tranquillamente tutto usando la funzione include(). Lascia perdere gli iframe... sono il male!
Guardando poi il codice che hai postato si potrebbe migliorare parecchio...
Codice PHP:
<?php if (isset ($_GET['content']) && $_GET['content']!=''){ $content = ($_GET['content']).".html"; //le pagine sono tutte .html include ($content); } else { include ('default.html'); } ?>
isset() va benissimo, si deve usare spesso per evitare che php lanci dei warning a ruota. Non va bene però come controlli se $_GET['content'] è vuoto. Ora come ora controlli solo che quest'ultimo non sia una stringa vuota... ma se fosse ad esempio NULL, o false, o 'pippo' ? Non dovrebbe andare bene ugualmente. In quest'ultimo caso per esempio includeresti un file pippo.html che non esiste, e avresti un E_WARNING.
Io poi fossi in te includerei file .php, non .html, perché così ti auto-obblighi ad usare pagine statiche... una follia secondo me.
Hai ragione poi quando dici che il codice non è sicuro. Hai pensato cosa potrebbe accadere se un cracker entra nel tuo sito e modifica l'url scrivendo tipo: http://tuosito.it/index.php?sezione=...il.com/malware ??
Un controllo sulle pagine va messo assolutamente. Ecco come riscriverei il tuo codice:
Codice PHP:
<?php
$content = isset($_GET['content']) ? trim($_GET['content']) : '';
$valid_content = array('cartella1/pagina.html','cartella2/pagina.html');
if (!empty($content) && in_array($content, $valid_content)) {
include $content;
}
Così facendo verranno incluse solo le pagine effettivamente valide, cioè quelle specificate nell'array $valid_content.
Però mi pare di capire che hai tante pagine... se per tante intendi 20 - 30 pagine puoi usare il mio codice, altrimenti ti consiglierei di dare un'occhiata alla funzione scandir().
Per quanto riguarda i fogli di stile, perché non ci provi direttamente?
Ciao!