As we last left it in part 2 of Building a simple contact form in PHP we added server-side form validation to our contact form and input filtering to the submitted data before sending out the email.
In this part we are going to add some client-side validation to our contact form.
There is a lot of misinformation and uncertainty on the topic of password storage.
There are massive amounts of tutorials and articles recommending all manor of methods of storing passwords.
A large number of these are old and using methods that just are up to snuff for todays security standards.
I previously wrote about switching from the mysql extension to PDO.
PDO introduces a number of convenient features beyond the mysql extension such as transactions, prepared statements, and more fetching options.
However there are still a few things that are a bit painful.
This article will introduce Doctrine DBAL to help alleviate some of these pain points.
Doctrine DBAL is a wrapper around PDO.
It adds a few conveniences beyond straight PDO as well as a query builder.