When you fetch variables from a form using "post" as method, it is good practice to use $_POST, or in some cases $HTTP_POST_VARS to fetch the values .. i would rewrite your code to look like this instead:
-- <snip> --
<HTML>
<HEAD><TITLE>Min gæstebog</TITLE></HEAD>
<BODY>
<?
$db=mysql_connect("localhost", "brugernavn", "adgangskode");
mysql_select_db("fabtech",$db);
if ($_POST["skriv"]){ /*
$besked=str_replace("\n","<BR>",$_POST["besked"]);
$navn = $_POST["navn"];
$email = $_POST["email"];
$dato_array=getdate();
$dato=$dato_array["mday"]."/".$dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO bog (navn,email,dato,besked)VALUES('$navn','$email','$dato','$besked')");
}
?>
<CENTER>
<FORM METHOD=POST ACTION=<? echo $PHP_SELF;?>>
<INPUT TYPE=hidden NAME=skriv VALUE=1>
navn:<INPUT TYPE=text NAME=navn><BR>
email:<INPUT TYPE=text NAME=email><BR><TEXTAREA NAME=besked COLS=30 ROWS=5></TEXTAREA><BR>
<INPUT TYPE=submit VALUE="send">
</FORM>
<BR><BR>
<TABLE>
<?
$foresp=mysql_query("SELECT navn,email,dato,besked FROM bog ORDER BY nr DESC");
while($data=mysql_fetch_row($foresp)){
echo "<TR><TD VALIGN=TOP>";
echo "fra:<A HREF=\"mailto:$data[1]\">$data[0]</A>";
echo "<BR>$data[2]";
echo "</TD><TD VALIGN=TOP>$data[3]</TD></TR>";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>
-- </snip> --
I hope this makes some sense, try it :)