Hallo einsiedler,
nicht, dass ich wirklich verstehen würde, was Du willst, aber ich rate mal, dass deine logout.php letztlich die login-Seite anzeigen soll, mit dem Hinweis drin "Sie haben sie erfolgreich ausgeloggt!".
Allerdings verstehe ich dies hier nicht:
const LAYOUT_HTML_FILE_PATH = './login.php'; $_LayoutHtml = file_get_contents( LAYOUT_HTML_FILE_PATH );
Wenn login.php eine PHP Datei ist, wird das PHP nicht ausgeführt. Die Datei wird 1:1 eingelesen und PHP-Anweisungen bleiben stehen. Sowas ist extrem verwirrend.
Du solltest einen von zwei Wegen gehen:
- der PHP Weg:
Wenn Du die Datei unbedingt login.php nennen willst, dann hol sie mit require oder include herein. PHP-Code darin wird dann ausgeführt, d.h. du kannst zwar immer noch sowas wie {meldung}
erzeugen, musst aber nicht. Du kannst auch vor dem include eine Variable $meldung bestücken und im login.php <?= $meldung ?> schreiben. PHP löst die Variable dann auf.
Output-buffering: Wenn Du die login.php an der Stelle X einlesen willst, aber erst später an der Stelle Y ausgeben kannst, dann kannst Du die Ausgabe, die login.php erzeugt, puffern. Dafür gibt es ob_start()
(output buffering start), das rufst Du vorher auf, und $loginPart = ob_get_clean();
zum Auslesen und Löschen des Puffers. Ein echo $loginPart kannst Du dann nach Lust und Laune ausführen. Und du kannst in $loginPart auch Ersetzungen durchführen, wenn Du noch {blah} Marker drin hast. Wie das geht, erkläre ich gleich.
- Templating:
Wenn Du die login-Vorlage mit file_get_contents einlesen willst, dann nenne sie login.tpl oder so, nicht .php. Damit ist klar, dass darin kein PHP Code ausgeführt wird.
Das Ersetzen von Template-Symbolen geht in einfacher Form mit
$template = file_get_contents(...);
$template = str_replace("{meldung}", $meldung, $template);
Wenn Du mehrere Symbole ersetzen willst, kannst Du die Array-Variante von str_replace verwenden:
$template = str_replace(
[ "{meldung}", "{warnung}", "{titel}" ],
[$meldung, $warnung, $titel ],
$template);
Weiß nicht ob Du's weißt: [1,2,3] ist die Abkürzung für ARRAY(1,2,3).
Rolf
sumpsi - posui - clusi