Ich hätte zwei Fragen
Christian
- php
1 XaraX0 Christian-3 Christoph Schnauß0 XaraX
Hallo!
Ich hätte zwei Fragen an euch. Und zwar baue ich gerade meine erste Homepage in PHP. Momentan stehe ich vor zwei Problemen, die sich wie folgt beschreiben:
1. Gästebuch
Ich möchte in meine Homepage ein externes Gästebuch einbinden - aber so, dass mein Menü und meine Kopfleiste sichtbar bleiben. Wie schaffe ich es, dass ich eine externe Seite in meine Seite einbetten kann, sodass sich kein neues Fenster öffnet?
2. Kopfleiste
Als Kopfleiste möchte ich ein Bild einbinden. Nur wie ist es möglich, das Bild so zu definieren, dass je nach Bildschirmgröße sich die Breite des Bildes verändert. Also praktisch sich von alleine von der rechten Seite abschneidet?
Ich hoffe, dass ich meine Probleme gut genug beschreiben konnte und ihr mir weiterhelfen könnt.
Vielen lieben Dank im Voraus.
Christian
Hallo Christian!
- Gästebuch
Ich möchte in meine Homepage ein externes Gästebuch einbinden - aber so, dass mein Menü und meine Kopfleiste sichtbar bleiben. Wie schaffe ich es, dass ich eine externe Seite in meine Seite einbetten kann, sodass sich kein neues Fenster öffnet?
klassisch würde man dies mit HTML über ein Frameset oder einen iframe lösen.
Wenn das externe Gästebuch kein Frameset ist, oder "bösartigen" JavaScriptcode enthält, dann kann man bei der Laufzeitkonfiguration allow_url_fopen=On PHPs den Inhalt wie eine Datei auslesen. Devalidierende HTML-Elemente der Dokumente (<html>, <head>, <body>, aber auch <script>) kann man bspw. mit str_replace() vor der Ausgabe entfernen. Jedoch heißt dies für Dich, das Du schnell an Trafficbegrenzungen Deines Providers kommen könntest. Hinzu kommt die Wartezeit, die nun, anders als bei einer Framelösung, für jeden User sichtlich von Deinem Dokument ausgeht. Auch die Parameterübergabe will bedacht sein. Das ist alles andere als einfach nebenher gemacht.
Ich will Dir nicht zu einem Frameset raten; gerade weil ein Gästebuch ein ganz nettes Projekt ist, um sich mit PHP vertraut zu machen, rate ich Dir an, die Suche zu verwenden, um im Archiv Hilfestellungen zu bekommen. Selbstverständlich kannst Du dann auch gerne Nachfragen, wenn Du auf Probleme stößt :)
- Kopfleiste
Als Kopfleiste möchte ich ein Bild einbinden. Nur wie ist es möglich, das Bild so zu definieren, dass je nach Bildschirmgröße sich die Breite des Bildes verändert. Also praktisch sich von alleine von der rechten Seite abschneidet?
Diese frage ansich hat für meine Begriffe mehr mit CSS zu tun. So kann man ein Bild als Hintergrund eines Elements definieren, welches selbst prozentuale Dimensionen mit Bezug auf die Fenstergröße hat (width, height). Dabei wir häufig ein kleineres Bild, das in jedem Fall angezeigt wird mit der Hintergrundfarbe des HTML-Elements in einklang gebracht, sodaß für den User nicht ersichtlich ist, was die Hintergrungfarbe und was das Hintergrundbild ist. Bilder mit Tansparenz (Gif[, PNG]) sind dafür sehr geeignet.
Gruß aus Berlin!
eddi
Jaaa, das klingt schon mal nicht schlecht.
Vielen Dank für deine ausführliche Antwort um diese Zeit!
Grüße aus Augsburg
Christian
hallo Eddi,
klassisch würde man dies mit HTML über ein Frameset oder einen iframe lösen.
Nö. Es ist doch eh schon PHP, also macht man das wahrscheinlich weit besser auch mit "include" oder eventuell sogar "require" und stopft dann eben das Gästebuch-PHP-Script so rein, daß es einen per CSS definierten Seitenbereich füllt.
Wenn das externe Gästebuch kein Frameset ist, oder "bösartigen" JavaScriptcode enthält, dann kann man bei der Laufzeitkonfiguration allow_url_fopen=On PHPs den Inhalt wie eine Datei auslesen. Devalidierende HTML-Elemente der Dokumente (<html>, <head>, <body>, aber auch <script>) kann man bspw. mit str_replace() vor der Ausgabe entfernen.
Kann man, aber wenn es denn ein Frameset wäre, wäre das wahrscheinlich überflüssig. Und auch sonst erscheint mir das irgendwie "um die Ecke gedacht".
Ich will Dir nicht zu einem Frameset raten; gerade weil ein Gästebuch ein ganz nettes Projekt ist, um sich mit PHP vertraut zu machen
Genau darum sollte es am ehesten gehen, meine ich.
- Kopfleiste
Diese frage ansich hat für meine Begriffe mehr mit CSS zu tun.
Das hat sie tatsächlich.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
klassisch würde man dies mit HTML über ein Frameset oder einen iframe lösen.
Nö. Es ist doch eh schon PHP, also macht man das wahrscheinlich weit besser auch mit "include" oder eventuell sogar "require" und stopft dann eben das Gästebuch-PHP-Script so rein, daß es einen per CSS definierten Seitenbereich füllt.
Ich hoffe nur Deine Ironie zu verkennen, denn es gäbe nur noch eval($_GET['eingabe']); was verherendere Auswirkungen haben könne!
Bei einem Szenario, daß das einzubindende, externe Gästebuch auch in PHP geschrieben ist, und bei einem Restart dessen Server schlichtweg PHP-Unterstützung ausfällt, bekommt man u. U. ausführbaren Code serviert. Dieser wird wegen include() (gleichbedeutend require()) ausgeführt.
Desweiteren ist man auch der Willkühr ausgeliefert, wenn dem Webmaster des Gästebuchs einfällt mal kurz PHP-Code auszugeben wegen einem bspw. fehlenden USER-AGENT, oder ausschließliche Zugriffe von einer IP-Adresse. Also sind externe Quellen immer nur mit einem Lesevorgang zu beschaffen, nicht mit einem Lese- und Parsevorgang!
Aber auch gesetzt dem Falle include() wäre sicher, dann ist es um einiges schwieriger sein HTML valide zu halten. Man bräuchte einen Ausgabepuffer, da include() eine Direktausgabe der eingebundenen Sourcen bewirkt, um den Quelltext zu formatieren (da ja eigene HTML-Elemente zusehen sein sollen). Das halte ich zwar auch für machbar und gleichfall abwegig.
Wenn das externe Gästebuch kein Frameset ist, oder "bösartigen" JavaScriptcode enthält, dann kann man bei der Laufzeitkonfiguration allow_url_fopen=On PHPs den Inhalt wie eine Datei auslesen. Devalidierende HTML-Elemente der Dokumente (<html>, <head>, <body>, aber auch <script>) kann man bspw. mit str_replace() vor der Ausgabe entfernen.
Kann man, aber wenn es denn ein Frameset wäre, wäre das wahrscheinlich überflüssig. Und auch sonst erscheint mir das irgendwie "um die Ecke gedacht".
Na so um die Ecke meine ich es nicht zu wissen. Nicht wenige Gästebücher haben auch Bannereinblendungen realisiert durch ein javascriptgestützt selbstnachladendes Frameset; eine Filterung des zu servierenden extenen Gästebuch wäre fast schon unumgänglich. Daher halte ich es für sinnvoller das eigentlichen Dokuments in eine Variable einzulesen, unwichtiges wegzuschneiden (str_replace()) und die Variable im eigenen (natürlich) validem HTML auszugeben. Somit hat man weitreichendere Möglichkeiten der Formatierung durch CSS.
Ich will Dir nicht zu einem Frameset raten; gerade weil ein Gästebuch ein ganz nettes Projekt ist, um sich mit PHP vertraut zu machen
Genau darum sollte es am ehesten gehen, meine ich.
Okay. Einigen wir uns darauf ;)
Gruß aus Berlin!
eddi