Dynamic includes
A script you can use to get urls like index.php?phpfan instead of just phpfan.php. It protects against suspicious characters from being included so people won’t be able to do naughty things.
[pre lang="php"]
$vincludepath = '/home/username/public_html/phpfan/';
// instead of main put the name (but not the .php) of the php file you want to specify to be the default
$default = 'main';
$errori = 'Use of restricted characters in variables.';
$errorexist = 'That page does not exist.';
$getqs = $_SERVER['REQUEST_URI'];
if (preg_match("/&/", $getqs, $matchqs))
{
$file = basename($getqs);
if (preg_match("/\?([-_=a-zA-Z0-9]+)&/", $file, $matchqs))
{
$site = $matchqs[1];
if(!$site)
{
include $vincludepath . $default .'.php';
} else {
if (!preg_match("/=/", $site, $matchqs))
{
if(@file_exists($vincludepath . $site .'.php'))
{
include($vincludepath . $site.'.php');
} else {
echo $errorexist;
}
} else {
include $vincludepath . $default .'.php';
}
}
} else {
echo $errori;
}
} else {
if (preg_match("/=/", $getqs, $matchqs))
{
$httpvars = $GLOBALS['_GET'];
foreach($httpvars as $key => $value)
{
if ($value != ”)
{
include $vincludepath . $default .’.php’;
}
}
} else {
$site = basename($_SERVER['QUERY_STRING']);
if(!$site)
{
include $vincludepath . $default .’.php’;
} else {
if (preg_match(“/^[=\-_a-zA-Z0-9]+$/”,$site, $matchqs))
{
if(file_exists($vincludepath . $site .’.php’))
{
include($vincludepath . $site.’.php’);
} else {
echo $errorexist;
}
} else {
echo $errori;
}
}
}
}
?>
[/pre]
