1. Можно сделать хэндлер для обработки входящих запросов и на нем все post и get данные проверить.
2. Получать, хранить и выводить данные можно как угодно, только нужно придерживаться нескольких принципов. Получаешь - обрабатывать (например: preg_replace('/[^\d]/', '', $string) - убираешь все, кроме цифр). Если в БД пишешь, то используешь экранирование спец. символов SQL - mysqli_real_escape_string($string). Для вывода на страницу всегда htmlspecialchars($string).
3. Вообще, можно скачать фреймворк какой-нибудь и посмотреть, как у них устроены подобные валидации, фильтрации и экранирования. Laravel, Yii, CodeIgniter, Symphony и т.к.