The problem is that (apparently) on your computer at home, register_globals is Off, and your server has it on.
Register_globals registers all GET, POST, COOKIE and SESSION variables. That's why, on your host, it works, cause they have it on. However, on your computer at home it is not on, so the variables are never defined.
For this reason, and for many other reasons (mainly security), many PHP programmers (including myself) choose to use "super-globals" to access any user input.
Instead of:
<?
if ($submit) {
$lnk=Connect_DB ($dbhost, $dbuser, $dbpass);
$lnk1=Select_DB ($dbname);
// Insert into database
Insert_SQL="Insert into mytable (fname, lname, email)
values ('$fname, '$lname, '$email)";
?>
A "super-globals" script would look like this:
<?
if ($_GET[ 'submit' ]) {
$lnk=Connect_DB ($dbhost, $dbuser, $dbpass);
$lnk1=Select_DB ($dbname);
// Insert into database
Insert_SQL="Insert into mytable (fname, lname, email)
values ('{$_GET['fname']}', '{$_GET['lname']}', '{$_GET['email']}')";
?>
As I said, there are great security improvements when something such as this is done, but also, your script will work on any server, whether register_globals is on or off.
Hope that helps,
-Percy
http://ca.php.net/register_globals