You can do what you want, but as new versions of PHP disable register_globals by default it will be very common to find PHP hosting services in which register_globals is in fact disabled. There is a security reason for disabling this option: the user won't be able to potentially interfere the running of a script by modifing the url and sending variables that could burst our code.
Check the differences:
<?
if ($hasbeensubmitted) register_the_user();
else {
?>
<form action=page.php method=POST>
<input type=submit name=hasbeensubmitted value=submit>
</form>
<?
}
?>
if any user in a browser writes "page.php?hasbeensubmitted=true" they will have skipped the form. Disabling register_globals this trick doesn't work, as you would have written your script this way:
<?
if ($_POST['hasbeensubmitted']) register_the_user();
else {
?>
<form action=page.php method=POST>
<input type=submit name=hasbeensubmitted value=submit>
</form>
<?
}
?>
if the users write page.php?hasbeensubmitted=true this value can be picked up using $_GET['hasbeensubmitted'] but will not affect the current script.
If my explanations are confusing, or for further information check out the manual.