PHP expert |
|
Ik heb wat problemen met mijn include script.
Als de bestandsnaam abc def is dan zijn er geen problemen, maar doe ik abc 90. Dan krijg ik een foutmelding dat de pagina niet gevonden kan worden maar hij bestaat wel echt..
Dit is het script dat ik gebruik:
<?php
if(!empty($_GET['p'])) {
$p = explode('/', $_GET['p']);
if(!empty($p[1])) {
$select = $db->query("SELECT pageMap FROM pages WHERE pageName = '". $p[1] ."'");
if($db->numRows($select) == 1) {
$arr = mysql_fetch_array($select);
if(file_exists('./'. $arr['pageMap'] .'/'. $p[1] .'.php')) {
$pages = './'. $arr['pageMap'] .'/'. $p[1] .'.php';
} else {
$pages = './modules/error.php';
}
} else {
$pages = './modules/error.php';
}
} else {
$pages = './modules/error.php';
}
} else {
$pages = './pages/home.php';
}
?>
<?php $select = $db->query("SELECT pageMap FROM pages WHERE pageName = '". $p[1] ."'"); if($db->numRows($select) == 1) { if(file_exists('./'. $arr['pageMap'] .'/'. $p[1] .'.php')) { $pages = './'. $arr['pageMap'] .'/'. $p[1] .'.php'; } else { $pages = './modules/error.php'; } } else { $pages = './modules/error.php'; } } else { $pages = './modules/error.php'; } } else { $pages = './pages/home.php'; } ?>
En als ik direct in de adresbalk pages/abc_90.php invul dan werkt het wel. Alle spaties worden automatisch omgezet in _ dus denk dat dat niet het probleem is.
Ook krijg ik al de pagina niet bestaat de pagina error.php niet te zien. Maar die standaard witte pagina NOT FOUND..
Hij gaat dus op zijn plaat door een nummer
Edit: de eerste fout is opgelost, mijn regex was gewoon verkeerd . Ik had [a-zA-Z-_] ipv [a-zA-Z0-9-_].
Maar nu heb ik nog het probleem dat ik de standaard fout zie en niet mijn custom error...
|