Moim zdaniem nie najlepsze.
Nie potrzeba przekierowywać nigdzie użytkownika.
Piszesz sobie skrypt do obsługi formularza np. analizuj.php, który zawiera wszystkie restrykcje dotyczące pól. Czyli np. walidacja poprawności adresu e-mail, długość loginu, zgodność haseł itd.
Jeżeli coś się nie zgodzi ustawiasz zmienną $blad na 1. i np $blad_login = "login jest za krótki"
Masz stronę główną z formularzem np.
Index.php
Umieszczasz w nim formularz dajesz action = index.php (czyli na tą samą stronę) wysyłasz poprzez POST.
W formularzu przycisk np. WYSLIJ
i następnie piszesz na górze pliku index.php
[code]
if $_POST['wyslij']
{
require(analizuj.php);
}
else
{
#tutaj strona startowa informacje na temat formualrza + sam pusty formularz
}
[code]
Pod require dajesz if-a lub switcha. Jeżeli $blad nie równa się 0 to wyswietl zmienne które zostały ustawione w analizie np. $blad_haslo
i nastepnie wyswietlasz ten sam formularz tylko wypelniony z wartościami $_POST i tyle.
Wszystko odbywa się w jednym pliku z analizą doklejoną.
Niewiem czy to optymalne ale zawsze sięsprawdza i działa szybko (oczywiscie to nie konkurencja dla AJAXA tylko weryfikacja po stronie serwera)
Niewiem czy wszystko jasno napisałem ale koncze prace i zajrze tu dopiero wieczorem

Poprawcie mnie jeśli się mylę
Pozdrawiam