PHP verifica se há erros na entrada, se nenhum erro for executado e carregado

Atualmente, estou trabalhando em um sistema de registro e tive algum problema.
Começarei colando uma versão simplificada do código antes:

session_start();

if (isset($_SESSION['logged_in'])) {

header('Location: #notLoggedIn');
exit;
} else {
if ($_SERVER["REQUEST_METHOD"] == "POST") {

        if //if field is empty {
            //display error
        } else if //check if any unallowed characters {
            //display another error
        } else {
            //give the checked input a string/variable, ex: $name= ($_POST["name"]);
        }

        // Like 4-5 other checks running in the same way as above

    }

    $query = $pdo->prepare('INSERT INTO table (a, b, c, d, e) VALUES (?,?,?,?,?)');

    $query->bindValue(1, $1);
    $query->bindValue(2, $2);
    $query->bindValue(3, $3);
    $query->bindValue(4, $4);
    $query->bindValue(5, $5);

    $query->execute();

    header('Location: index.php');
    exit;
    }

O problema é que ele executa tudo de uma vez e apenas me redireciona para o index.php.
Como garantir que, em primeiro lugar, verifique se o formulário foi enviado antes da execução.
Depois disso, quero verificar se há erros em TODOS os campos. Se houver erros, pare.
Mas se não houver erros, continue e faça o upload para o meu banco de dados.

Eu acho que estou em um bom caminho, mas atualmente bem travada, qualquer ajuda ou empurrão na direção correta seria incrível!
Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion