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]