Ok inizio a capire qualcosa...
1 - piu' che un errore credo sia un warning. Ti dice semplicemente che l'elemento 'error_type' dell'array $_GET non è definito e infatti non lo è siccome quando accedi direttamente al form non ci sono parametri nell'url ed in particolare non c'è il parametro error_type.
Il warning puo' essere facilmente evitato controllando se è stato settato l'elemento prima di assegnarlo a una qualche variabile. cioè devi fare:
2- non so bene cosa intendi esattamente per echo dell'errore uno alla volta, ma se inetndi quello che penso è dovuto al fatto che dopo ogni controllo fai un redirect. Quindi chiaramente il primo controllo che da esito negativo ti reindirizza da un'altr parte e i successivi controlli non vengono piu' eseguiti.Codice PHP:
$errore_nome = isset($_GET['error_type'])?$_GET['error_type']:'';
Era questo che intendevi?