The above posts should answer your question. Take out the <body> tag before you to the redirection.
I finally got what you are trying to do to work, after many false starts. And yes, this is fundamental to web design. Unforunately, sometimes we can all get lost in the nuts & bolts of the language, little snippets here and there, and forget that people are actually trying to get some real work done.
Don't mean to philosophize here, but your question struck a nerve. I compare it to the great C++ vs. Visual Basic debate. I do both types of programming. And usually, when the arguments get going over obscure pointer dereferencing, or some other very esoteric OOP point, I turn to VB and have the solution coded while the C++ geekers are still arguing :-)
Now then, if you find a way to actually reference those variables you want to pass to the next form (after the redirection takes place) please let me know! I am still looking for the solution (in PHP 3). Appending the variables on to the header string seems to work (you can see them go by in the address box) but the new form still seems to know anything about them.
For example, your redirection may look like " . . ./Form2?name="smith" etc.
But doing <? echo $smith ?> on Form2 does nothing. I know the variables must be there (or we are all in deep PHP trouble). But displaying them is another issue.
Hope that helps.