for name/value pairs in the query string, php will automatically create a variable for you which is in the $GET array. for example a person does page.php?name=xxxx you will then have a variable called $GET['name'] and it will contain xxxx. therefore you can do something like this...
in this example we will use index.php?page=something
index.php
<?php
include "header.html"; //you can use this to hold optional content that will be a common "header"
if (isset($_GET['page'])) {
switch(strtolower($_GET['page'])) {
case 'links': include('files/links.php'); break;
case 'about': include('files/about.php'); break;
case 'forum': include('files/forum.php'); break;
default: include('main.php');
}
} else {
include 'main.php';
}
include "footer.html"; //you can use optional footer html as well.
?>
so lets say you call index.php?page=about what happens is first the contents of the header.html file are output, this can be our <html> and <head> tags maybe with stylesheet info and basic header showing your site banner, then it checks to see what page is given in the page=xxxx part, and includes the appropriate file. if they pass something that isnt there or there is nothing at all, our default main.php is shown, followed by our footer, maybe with more links and closing </html> tag.