Problem mit Cookie für Gästebuch
Hallo,
ich verwende folgendes Script für ein Gästebuch (die Cookies machen es notwendig, ansonsten kommt der Fehler "Cannot send session cache limiter - headers already sent"): $template_datei = './gaestebuch/scripts/gb-template.php'; // Hier den Pfad zur Template-Datei eintragen (relativ zu diesem Script!) $scriptverzeichnis = './gaestebuch/scripts/'; // Hier den Pfad zum Script-Verzeichnis eintragen (relativ zu diesem Script!) // HTML-Grundgerüst holen (ist hier ein Template) $html = implode('', file($template_datei)); // Gästebuch ausgeben ob_start(); // echo-Ausgaben zum Browser abfangen und im Puffer speichern // Slash am Ende sicherstellen $scriptverzeichnis = preg_replace('~^(.*)/?~', '\\1/', $scriptverzeichnis); include $scriptverzeichnis.'gb.script.inc'; // gibt per echo ein <div> mit dem eigentlichen GB-Inhalt aus $html = str_replace('{gb-output}', ob_get_contents(), $html); // schreibt den GB-Inhalt ins Template ob_clean(); // Pufferinhalt löschen (ist vorher in $html übertragen worden) // HTML-Grundgerüst fertigstellen echo $html; ob_end_flush(); // Puffer ausgeben und leeren (hier sendet PHP zum ersten Mal tatsächlich Daten an den Browser ?> In der Template-Datei werden wiederum php-Dateien includiert. Und hier ist das Problem: Mit dem Script werden diese includes nicht "aufgelöst", sondern 1:1 in die HTML-Ausgabe übernommen (also steht dann da "include ...." ). Kann ich das Script so anpassen, dass die dynamischen includes aufgelöst werden, bevor sie ausgegeben werden? Viele Grüße Jan |
Versuchs
1. Hier im Forum mit den [PHP]-Tags 2. mal im Code mit <?php ?> in den includierten dateien! |
Hi,
Zitat:
Jan |
Du sollst uns den Kompletten Code pasten!
|
Stimmt zwar nicht. Aber das hätt ich jetzt geschrieben :lol:
|
Zitat:
|
Hi,
ich hab ne Lösung gefunden. Wen es interessiert: <?php ob_start(); // echo-Ausgaben zum Browser abfangen und im Puffer speichern $template_datei = './gaestebuch/scripts/gb-template.php'; // Hier den Pfad zur Template-Datei eintragen (relativ zu diesem Script!) $scriptverzeichnis = './gaestebuch/scripts/'; // Hier den Pfad zum Script-Verzeichnis eintragen (relativ zu diesem Script!) // die Haupt-HTML-Datei laden (mit "{gb-output}") include $template_datei; $html1 = ob_get_contents(); ob_clean(); // Slash am Ende sicherstellen $scriptverzeichnis = preg_replace('~^(.*)/?~', '\\1/', $scriptverzeichnis); include $scriptverzeichnis.'gb.script.inc'; // gibt per echo ein <div> mit dem eigentlichen GB-Inhalt aus $html2 = ob_get_contents(); ob_clean(); $html1 = str_replace('{gb-output}', $html2, $html1); // schreibt den GB-Inhalt ins Template // HTML-Grundgerüst fertigstellen echo $html1; ob_end_flush(); // Puffer ausgeben und leeren (hier sendet PHP zum ersten Mal tatsächlich Daten an den Browser ?> |
könntest du bitte die [php] tags des Forums nutzen?
Damit wäre allen geholfen!! DANKE! btw: wieso überprüfst du ob du den Slash am ende hast. Du schreibst doch eh das Verzeichniss selbst. Da musst du das doch nicht überprüfen. Schon gar nicht bei nem Gästebuch^^ |
Ich bin mir sicher, die BB-Codes findest du auch noch.
Zur Erklärung, file() liest den Inhalt der Datei in ein Array, die Datei wird allerdings nicht geparst. Beim include wird die Datei geparst und somit auch die entsprechenden PHP-Schnipsel darin interpretiert. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:42 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023