PHP form validation and db insertion, one page or two
You don't need to have your validation codes written in different page. But if you want to organize your code, you can go and separate your validation block.
Consider changing your validation. Your preg_replace is quite limiting. An example would be for names. Spaces, numbers, special characters are not allowed. Don't forget that there are names that has the mentioned above. It would work. Your validation could be written better if you want to increase security. There are tons of practice for validation of data and securing it for SQL query.
You could add some client side validation using HTML5 such as pattern, and required attribute.
You said you want to output what has been submitted in the form. Do you really need to output it in the validation/insertion page and then get redirected to the other page? You can instead put the details on sessions and head directly to the page you need to be and output what you have put on the sessions.
It is best to avoid putting PHP variables inside the quotation marks. "Your name is $name". Instead you can use {} to include it. "Your name is {$name}". However, it is recommended that you concatenate it instead "Your name is" . $name.
When including database page, it is also recommended to use require instead of include. This is to make the script stop upon error on getting the file.