Безопасна и правильна ли такая регистрация?
1. Выкиньте из кода все htmlspecialchars, mysqli_real_escape_string и подобное
2. Используйте PDO и плейсхолдеры (наигоднейшее руководство)
3. Не используйте md5, обновитесь до php 5.5 и используйте Password API (или хотя бы sha, если обновиться нет возможности)
4. Проверяйте получаемые данные на недопустимые символы до любых операций с ними (у вас же сейчас первый запрос проходит до проверки)
После этих 4х пунктов код уже будет гораздо лучше и безопаснее.
Согласен с Алексей Николаев.
А лучше учится на фрейворке и работать с MVC, если желание есть за неделю разберешься, могу предложить laravel 5