Seite 1 von 1

Gästebuch(php) eingebinden in eine Html-seite (geänd in php)

Verfasst: 11.09.2006 23:08
von linuxdbox
hallo,

habe mein guestbook.php per


<?php
include ('http://www.tpdesign.de/guestbook.php');
?>

in eine html - seite eingebaut. die html wurde umbenannt in test.php (vormals test.html). alles funzt bestens und die verlinkung zu test.php klappt und die gewünschten änderungen sind erfolgreich.

www.tpdesign.de/guest.php

wenn ich nun auf die zweite seite im gästebuch wechsle kommt wieder die guestbook.php die nicht in der test.html (guest.php) siehe oben eingebettet ist. also ein aufruf der reinen php und nicht die "html"

was mache ich falsch?? :(

vielen dank

Re: Gästebuch(php) eingebinden in eine Html-seite (geänd in

Verfasst: 12.09.2006 00:15
von Banger
linuxdbox hat geschrieben:was mache ich falsch?? :(
Naja, die unbefriedigende Antwort zuerst: "so ziemlich alles" :)

Dadurch, dass Du die gesamte guestbook.php "includest" (dadurch, dass es sich um einen URL handelt, ist es effektiv eine imperformante Version von readfile()), hast Du nun ein HTML-Dokument in einem HTML-Dokument - der dadurch erzeugte HTML-Code ist ziemlich invalide.
Insofern eine vollkommen falsche Herangehensweise, die mit dem Sinn von include() wenig gemeinsam hat.

(Bemerkung am Rande: Deine Rechtsklick-Sperre ist nicht nur sinn- weil nutzlos, sondern nervt auch noch, wenn man Deinen Quellcode zwecks Fehleranalyse untersuchen will. Nimm das raus, nutzt eh nichts.)

In diesem Fall "weiß" das Gästebuchscript nichts davon, dass es includet wurde, sondern gibt einfach seinen Inhalt (besser: "seine Ausgabe") an die guest.php weiter - genau so, als würdest Du die guestbook528705.php mit dem Browser direkt aufrufen.
Dementsprechen sind die Links zu den Folgeseiten im Gästebuch auch nicht auf die guest.php "umgebogen", sondern verweisen auf die Original-URL.

Schnelle saubere Lösung: binde das Gästebuch als iframe ein.
Gute Lösung: Editiere vorerst das Gästebuchscript soweit, dass es
* nur die Inhalte zwischen <body> und </body> auswirft
* guest.php als eigenen URL verwendet
* per include() im eigentlichen Sinne included wird und dabei nicht mit Deinen eigenen Scriptvariablen im gleichen Namespace kollidiert.

Lektüre:
* http://de.php.net/include/
* http://de.php.net/manual/de/language.va ... .scope.php

Verfasst: 12.09.2006 07:57
von linuxdbox
hallo besten dank für die klare aussage was für ein newbie ich bin. :-?
werde es mal so abändern und melde mich dann , ob es korrekt läuft. denke mal es gibt so einige die gästebücher in html einbinden wollen.

danke