Folgende Schleife greift nicht falls der $test leer ist.
Welche Schleife? ich sehe nur eine unvollständige bedingte Verzweigung.
if ($test != "text der hier nicht stehen soll" or empty($test))
Habe ich die PHP Doku falsch verstanden?
Ich denke eher, du hast ein logisches Problem bei der Vernüpfung der Bedingungen.
btw: willst du ggf. mit vorbelegten Formularfeldern hantieren und diese ggf. leeren? Das dritte Beispiel könnte dich interessieren, damit sparst du dir ggf. die serverseitige Prüfung.