well, I really can't tell you what is your definate problem, but i do notice a few things. First off, there seems to be a problem (a caution) in the manual stating that is you use $_SESSION do NOT use session_register, i believe its because you're just doing the same thing twice, but either way that note is found here:
http://www.php.net/manual/en/function.session-register.php
now if you stay with what you currently have, it also seems that you are registering the the session before there is any value, so when a person goes back to that page, that session doesn't have a value, but i could be wrong.
my suggestions, in order.
get rid of session_register()
it might be causing the problem.
if that doesn't help, try putting the code like this:
$_SESSION['id'] = $row[id];
session_register('id');
but i'd first do option 1.
on another idea. i have noticed that a page that is generated from a form's value always seems to be refreshed. don't know why. but are you using a link to get to that index.php page or are you using to browser's 'back button' to get to index.php?
hth.