"We are back" « oc.at

PHP/HTML: Wie absolute Links in einer eingebundenen Seite ebenfalls includen?

nitschi 18.09.2003 - 11:41 537 5
Posts

nitschi

miau!
Avatar
Registered: Oct 2002
Location: Wien
Posts: 1737
Sorry für den etwas verwirrenden Threadtitel, anders konnte ich das Problem nicht wirklich umschreiben. :)

Folgendes: Auf einer Seite (-> http://www.nitschi.at/postdamenhp/forum.php) habe ich per einfachem include() eine externe Seite (ein Forum) eingebunden.

Anmerkung: Dieses Forum gehört zur Webseite eines Wiener Hockeyvereins. Ich erstelle die Homepage des Damenteams (spart euch Witze :D). Allerdings ist diese Seite auf Wunsch des Teams in einem dünkleren, dezenteren Farbton gehalten als die Haupteseite des Vereins (http://www.postsv.com). Deshalb habe ich das Forum per include eingebunden, und im Quelltext per CSS die Farbangaben verändert. Das funktioniert auf der Index-Seite des Forums auch ohne Probleme. Allerdings werden sämtliche Links natürlich ganz normal geöffnet, somit "verfallen" auch meine CSS-Stylesheets.

Besteht jetzt eine Möglichkeit, sämtliche Links (auch auf Folgeseiten) nicht "normal" öffnen zu lassen, sondern ebenfalls in dieser Seite zu includen?
Sprich: alle Links, die auf der eingebundenen Seite geöffnet werden, sollen in folgendem Code-Teil lediglich die angegebene URL ersetzen.

Code: PHP
<?PHP include("http://www.siteboard.de/cgi-siteboard/board_index.mpl?fnr=30755");?>

Allerdings kann ich auf die externen Seiten nicht zugreifen, bzw. sie verändern.

Ich hoffe, dass die Fragestellung halbwegs klar war und bitte um Hilfe. :)
Bearbeitet von nitschi am 18.09.2003, 12:04

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4478
Boah, ich will mir gar nicht so eine Seite ansehen muessen (zweimal HTML ud BODY elemente drin). Argl.

However:
Sieht so aus als wuerde das nicht einfach so funktionieren. Du muesstest zuerst die remote Seite in PHP einlsen und die Links rewriten.

Also z.B. in einen buffer lesen, dann alle vorkommnissen von
Code:
<a HREF="http://www.siteboard.de/cgi-bin/....
suchen und ersetzen von z.b.
Code:
<a href="prepend_damen_css.php?remoteurl=http://www.siteboard.de/cgi-bin/...

D.h. du liest die remote seite ein, suchst alle urls die auf das remote forum zeigen, schreibs sie so um das zuert dein lokales PHP script aufgerufen wird, mit einem parameter der neuen remote seite.

In dem lokalen PHP script gibst du deinen eigenen CSS header aus, aus dem url parameter weisst du ja welche Seite auf dem remote server, und leist diese ein, machst aber wieder das "a href" rewriting und gibst sie dann aus.

Per include() einbinden geht halt einfach nicht weil sonst klarerweise dein CSS header fehlt.

Eine andere Moeglichkeit die mir einfaellt waere, das per javascript zu machen ... ob das aber gut funktionieren wird, weiss ich nicht. Sobald die remote forum seite geladen ist aendert dein javascript die style angaben fuer die farben. Aber man wuerde das vermutlich sehen da du warten muss bis die Seite geladen ist und man dann die Farbwechseln sehen kann.

Obs da nicht einfacher ware bei sideboard.de ein eigenes Forum fuer die Damen anlegen, das dann schon die richtigen Farben hat?


Nochmal drueber nachgedacht:
Solange die GET requests hast, ist das kein Problem. Bei POST requests wirds aber problematischer, die muesstest du ja auch an den remoteserver weiterleiten. Ausserdem erfaehrt der remoteserver dann nie von welcher IP der benutzer in das forum schreibt (weil das forum immer nur die IP deines webservers sieht) und das ist fuer Meldug von Abuse ev. noetig.

Und du musst die zu einbindenen urls auch url gerecht escapen ... na ob sich das auszahlt ...
Bearbeitet von Rektal am 18.09.2003, 11:54

nitschi

miau!
Avatar
Registered: Oct 2002
Location: Wien
Posts: 1737
Zitat von Rektal
Boah, ich will mir gar nicht so eine Seite ansehen muessen (zweimal HTML ud BODY elemente drin). Argl.
Ja, mir tuts auch weh. Aber das kann ich aufgrund der momentan einfachen Lösung mit include() nicht ändern. Die zweiten HTML und BODY-Elemente kommen ja von der externen Seite. ;)
Zitat

However:
Sieht so aus als wuerde das nicht einfach so funktionieren. Du muesstest zuerst die remote Seite in PHP einlsen und die Links rewriten.
Ja, sowas hab ich mir fast gedacht. Der Aufwand ist mir aber für diese eine Seite dann doch zu groß. (siehe unten)
Zitat
Obs da nicht einfacher ware bei sideboard.de ein eigenes Forum fuer die Damen anlegen, das dann schon die richtigen Farben hat?
Vollkommen richtig. Dachte, dass es vielleicht eine Funktion bzw. einen Trick in PHP/HTML gibt, mit dem man das bewerkstelligen kann.

Danke dennoch für die rasche Antwort!

edit:
Zitat

Nochmal drueber nachgedacht:
Solange die GET requests hast, ist das kein Problem. Bei POST requests wirds aber problematischer, die muesstest du ja auch an den remoteserver weiterleiten. Ausserdem erfaehrt der remoteserver dann nie von welcher IP der benutzer in das forum schreibt (weil das forum immer nur die IP deines webservers sieht) und das ist fuer Meldug von Abuse ev. noetig.

Und du musst die zu einbindenen urls auch url gerecht escapen ... na ob sich das auszahlt ...
Autsch. Nein, eine so umständliche Lösung kommt gar nicht in Frage. Wie schon gesagt: du hast Recht, ein solcher Aufwand ist dafür unnötig. Danke nochmal.
Bearbeitet von nitschi am 18.09.2003, 12:00

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
file_get_contents() liest dir die datei in einen string ein, und mit einer handvoll preg_replace() gepaart mit ein bishen regex-magie sollte das gar nicht so schwer erscheinen lassen.

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4478
Zitat von atrox
file_get_contents() liest dir die datei in einen string ein, und mit einer handvoll preg_replace() gepaart mit ein bishen regex-magie sollte das gar nicht so schwer erscheinen lassen.
Yeah, aber was ist mit den POST requests? Die kann er nicht als URL mit uebergeben bei dem file_get_contents() aufruf. Und bei einem Forum kommt so ein Request sicher schnell mal zustande.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
stimmt, an das posten ins forum hab ich noch nicht gedacht - alles ist möglich, eben nur eine frage des aufwandes.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz