Hallo,
[ewig viel weggeschnitten]
Was soll ich sagen: Help!
Ehrlich gesagt: ich habe keine Ahnung. Ich will hier nur mal einen alternativen Lösungsansatz unterbreiten:
Das Formular hat den target _top (und kein onSubmit). Wenn login.php/logout.php ausgeführt wird, dann wird
a) die Meldung (Login/Logout erfolgreich/fehlgeschlagen) in der Session zwischengespeichert
b) eine HTTP-Weiterleitung (meinetwegen auch per <meta> oder JS, aber HTTP geht schneller) auf das Frameset gemacht.
c) die Datei main.php (und nur diese) checked, ob so eine Meldung vorhanden ist, gibt sie aus und löscht sie dann wieder aus Session - wenn die Meldung nicht vorhanden ist, dann wird halt der normale Inhalt ausgegeben.
So funktioniert das ganze dann auch für nicht-JS-Browser und das ganze "Refresh-Gedöns" (wie Du es nennst) mehr oder weniger wegfällt.
Grüße,
Christian
P.S. wenn Apache/PHP wegen so etwas abstürzen kann, dann ist das vielleicht ein Bug; Versionen?