I think I got the hang of it. I do screen everything, I mean EVERYTHING. I perform a trim(), then a strip_tags(), then I manually strip out various characters like ; = \ etc. Then after this I run each of the inputs through an eregi().
Regarding the single page structure. I set mine up with two, form page and form processing page. Thus if there is an error, I tell the user to use the 'Back' button on the browser (which maintains the form info), or I supply a link like so (which also maintains the form info):
echo '<FORM><INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);return true;"></FORM>';
As for the CSRF stuff, I think I've done some stuff to help. I don't use GET, only use POST. I have register_globals turned off, and don't access the variables directly, but screen/sanitize them before setting them. What else, oh yeah, I thought my session token implementation would force the use of my own forms and not allow someone to try and submit a form submission that doesn't come from my actual form page (although I'm guessing that using this would negate the need to use HTTP_REFERRERS to see whether or not they got to the form receiving page via the form page, right?).
I don't really have any sections of my site that are only for authorized users. I basically have a website that lists real estate. Anyone can do searches for free (there is no membership or authentication required), and then to add a listing, I only have to work in charging the user a dollar amount to list his/her property on our site. And to the 'add listing' section, I'm adding a timeout feature that gives the user something like 10 minutes to fill out the form otherwise the form's rejected.
Thanks for the website though. I think I'm prepared against what they say to look out for, but I'm all about reinforcing these principles.