Tev šī daļa nav diez ko loģiska. Ja ir vairāki lauki un pirmais bus tukšs, bet otrais aizpildīts, tad $bInputFlag == true. Pietiek, pat, ka tev submit pogai ir norādīts name un value un formā būs pēdējais elements, lai šis vienmēr būtu true, jo to pados kā pēdējo. Tas arī visdrīzāk ir iemesls kāpēc iziet pārbaudi uz tukšajiem laukiem, bet failo pie email patiesuma pārbaudes.
foreach ( $_POST as $field )
{
if ($field == "")
{
$bInputFlag = false;
}
else
{
$bInputFlag = true;
}
}
Tavs pirmais variants ar $errormessage = "You must enter valid e-mail!"; labāks, jo tad vari iztikt bez die().
Atliek tik pirms ievades pārbaudīt vai errormessage kaut ko satur, lai izlemtu - dati ir derīgi vai nē.
if(empty($errormessage)){
$q = $registermail;
$r = mysql_query($q);
}