Urk, acute backslashitis!
No need for any of this. If $gender, $title, $fname, etc. already have their values set, then they'll have the same values in form.php3.
include("form.php3"); does almost exactly what it says: takes the contents of form.php3 and whacks them in at that point.
If you have the two files
-----form.php3---8<-----
<?
echo $gender;
?>
-------->8--------------
-----script.php3--8<----
<?
$gender="male";
include("form.php3");
?>
---->8------------------
and ran script.php3, you will get "male" printed, exactly as if you had had
-----script.php3--8<----
<?
$gender="male";
echo $gender;
?>
---->8------------------
all along.
So, in direct answer to your question, the proper code is:
include("form.php3");
But this won't get you what you want. You want the values of $gender and so forth to appear in the form fields so that the user doesn't have to retype them all, don't you.
That means fiddling with form.php3.
You've probably got something like
<input type="text" name="fname">
It will need to become more like
<input type="text" name="fname" value="<?php echo $fname?>">
So that whatever the value of $title is (if it has one) it will be written in to the form field when it's displayed.
One thing I note is that if you've decided that a certain form field contains invalid data, you can simply set its variable to "" and the user will be given a blank space for that form field, so that they can fill it in properly.