It’s good to use the PHP mail() function for explanation, but it’s better to not use that function for your contact form or web application. It’s much better to send mail via SMTP using Zend, PHPmailer or Pear. Many hosting provider doesn’t allow the mail() on their platforms…
Olaf Lederer: You need a plan first
Before you start programming you need to know you future application. Start with a functional design and discus this with the upcoming users. You don’t need to use UML for a technical design, but create also a flow chart from the most important tasks.
Great article about using a database abstraction layer! I like EZ a lot, they have great classes, but more interesting is the discussion about PDO (check the comments). Last time I checked PDO, most of the PDO drivers were in an early development stadium. Now it’s possible to use IBM, postgres,… the big ones like Microsoft SQL and Oracle are still experimental
Most SEO plugins doesn’t offer functionality for categories. I think categories are very important for all websites; they provide a better user experience (people find the information they need) and they are also good for SEO.