<?php
function getContent() {
if(isset($_GET['p'])){
$pagina = $_GET['p'];
if (is_file('modules/'.$pagina.'.php') && !preg_match('/^[.]/i', $pagina)) {
include('modules/'.$pagina.'.php');
} else {
echo 'Deze pagina bestaat niet klik <a href="?p=home">HIER</a> om naar de home pagina te gaan!';
}
} else {
include('modules/home.php');
}
}
?>
Alleen vind ik het een beetje jammer dat er in de adres balk ?p=activateAccountForm bijvoorbeeld komt te staan... Kan ik dit ook anders doen?
Onveilige module script.
Als je ?p=../index opgeeft zal het script /index.php includen, en niet modules/module.php.
Dit is veiliger:
<?php
function getContent() {
if(isset($_GET['p']) && is_string($_GET['p']) && strpos($_GET['p'], '..') === FALSE){
$pagina = $_GET['p'];
if (is_file('modules/'.$pagina.'.php') && !preg_match('/^[.]/i', $pagina)) {
include('modules/'.$pagina.'.php');
} else {
echo 'Deze pagina bestaat niet klik <a href="?p=home">HIER</a> om naar de home pagina te gaan!';
}
} else {
include('modules/home.php');
}
}
?>
Zonder $_GET is erg lastig, of je kunt alles met $_POST laten werken.
Ook als je gebruik maakt van mod-rewrite gebruik je wel $_GET.
mod-rewrite transformeert alleen het $_GET verzoek.
Ja, het is me gelukt met mod_rewrite :P ik denk dat ik het maar met AJAX ga doen :O dan hoeft 1 de website niet te herladen en 2 dan zie je geen lelijke URL =D