Externe Websites im Intranet darstellen

Hallo.

Ich suche auf die Schnelle eine möglichst simple Lösung externe
Websites in einem <iframe> einer Intranet-Anwendung auf Clients ohne
Internet-Anschluß darzustellen. Die exteren Sites sind über eine
normale URL via GET erreichbar.

Bedingung: Nur natives PHP 5.0.4. Ohne PEAR, etc.


Vielen Dank im voraus,

Peter
Peter Schleif [ Mo, 27 August 2007 18:56 ] [ ID #1806374 ]

Re: Externe Websites im Intranet darstellen

Peter Schleif wrote:

> Ich suche auf die Schnelle eine möglichst simple Lösung externe Websites
> in einem <iframe> einer Intranet-Anwendung auf Clients ohne
> Internet-Anschluß darzustellen. Die exteren Sites sind über eine normale
> URL via GET erreichbar.

Alles etwas komisch was Du da schreibst. Willst Du vieleicht mal erklären:

a.) Was hat PHP mit dem Laden eines Dokuments in einem IFrame zu tun?
b.) Warum willst Du PHP nutzen?
c.) Wie soll man eine externe URL aufrufen wenn keine Anschluß ans Netz
existiert
d.) Ist das nen Troll-Versuch?

Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Mo, 27 August 2007 19:47 ] [ ID #1806376 ]

Re: Externe Websites im Intranet darstellen

"Peter Schleif" <gib.spam.keine.chance [at] web.de> schrieb:

> Ich suche auf die Schnelle eine möglichst simple Lösung externe Websites
> in einem <iframe> einer Intranet-Anwendung auf Clients ohne
> Internet-Anschluß darzustellen. Die exteren Sites sind über eine normale
> URL via GET erreichbar.

Ich gehe davon aus, dass der Intranet.-Server einen Zugang zum Internet hat
und die Sites praktisch grabben soll. Du müßtest Dir praktisch so etwas wie
einen Spider oder einen Proxy / Cache aufbauen, wenn ich Deine Frage richtig
verstanden habe. Die einfachste Lösung wäre da vielleicht, die Sites mittels
wget herunterzuladen, das die Inhalte via Cronjob regelmäßig aktualisiert.
Wichtig wäre, dass Du in wget die Links übersetzen läßt, damit keine
absoluten URLs in den Dokumenten sind.

> Bedingung: Nur natives PHP 5.0.4. Ohne PEAR, etc.

Siehe oben. system oder exec mit wget, gesteuert von cron / at. Falls es ein
Windows-Server ist: Dafür gibt es auch wget und den Taskplaner.

Ich muss aber Ulf zustimmen, dass die Frage etwas komisch ist und ich sie
eher in einer Server-NG erwartet hätte ;)

Gruß

Klaus
Klaus Holsten [ Mo, 27 August 2007 20:05 ] [ ID #1806377 ]

Re: Externe Websites im Intranet darstellen

Ulf Kadner schrieb:
>
> Willst Du vieleicht mal erklären:

Der Intranet-Client schickt eine Anfrage mit der gewünschten Seite an
meinen Apache. Weiter an PHP. Das Script fordert die gewünschte
externe Internet-Seite via GET an. (Es verhält sich in diesem Moment
gegenüber dem externen Server also wie ein Client)

Der externe Server schickt seine HTML-Seite als Antwort. Diese soll
nun "abgefangen" und als HTML-Code an den Intranet-Client
weitergeleitet werden (eingebettet in einen <iframe>)

Peter
Peter Schleif [ Mo, 27 August 2007 20:19 ] [ ID #1806378 ]

Re: Externe Websites im Intranet darstellen

Peter Schleif schrieb:
> Ulf Kadner schrieb:
>>
>> Willst Du vieleicht mal erklären:
>
> Der Intranet-Client schickt eine Anfrage mit der gewünschten Seite an
> meinen Apache. Weiter an PHP. Das Script fordert die gewünschte externe
> Internet-Seite via GET an. (Es verhält sich in diesem Moment gegenüber
> dem externen Server also wie ein Client)
>
> Der externe Server schickt seine HTML-Seite als Antwort. Diese soll nun
> "abgefangen" und als HTML-Code an den Intranet-Client weitergeleitet
> werden (eingebettet in einen <iframe>)

Ziemlich wirr, wieso nicht direkt?

Aber das Apache kann sowas von Haus aus.

Daniel
Daniel Fett [ Mo, 27 August 2007 22:41 ] [ ID #1806383 ]

Re: Externe Websites im Intranet darstellen

Peter Schleif schrieb:
>
> Hallo.
>
> Ich suche auf die Schnelle eine möglichst simple Lösung externe Websites
> in einem <iframe> einer Intranet-Anwendung auf Clients ohne
> Internet-Anschluß darzustellen. Die exteren Sites sind über eine normale
> URL via GET erreichbar.

Du bist hier etwas ungenau, man kann in dein Vorhanben alles mögliche
rein interpretieren.

Ich fasse es mal so auf, du hast eine Seite z.B. News, dort kann man die
10 aktuellsten News lesen, die jeweils in einem IFRAME dargestellt werden.
Du legst in deinem PHP Code fest welche 10 URLs das sind.
Der Client ruft eine der News auf und es wird die externe URL gegrabbed
der HTML Code gespeichert und letztendlich via iframe angezeigt.


>
> Bedingung: Nur natives PHP 5.0.4. Ohne PEAR, etc.

Das "etc." ist natürlich wieder so eine Sache, wenn du hier das Rad
neuerfinden willst, dann viel Spaß dabei. Einfach liese sich das Ganze
mit cURL realisieren, siehe PHP Manual "curl", dort findest du auch ein
simples Beispiel dazu.

Gruß Stefan

P.S. Wie gesagt, mit deiner ungenauen Beschreibung der Aufgabenstellung
ist ne richtige Hilfe gar nicht möglich.

>
>
> Vielen Dank im voraus,
>
> Peter
>
>
>
Stefan Braumeister [ Di, 28 August 2007 00:47 ] [ ID #1807121 ]

Re: Externe Websites im Intranet darstellen

On 27 Aug., 20:05, "Klaus Holsten" <usenet2... [at] web.de> wrote:
>
> Ich gehe davon aus, dass der Intranet.-Server einen Zugang zum Internet h=
at
> und die Sites praktisch grabben soll.

Genau.


>
> [...] die Sites mittels
> wget herunterzuladen, das die Inhalte via Cronjob regelmäßig aktualis=
iert.
> Wichtig wäre, dass Du in wget die Links übersetzen läßt, damit ke=
ine
> absoluten URLs in den Dokumenten sind.

Hab ich unter Windows ausprobiert. Leider konnte ich (Easy-)wget noch
nicht dazu bringen die GET-Parameter zu berücksichtigen.


>
> Ich muss aber Ulf zustimmen, dass die Frage etwas komisch ist und ich sie
> eher in einer Server-NG erwartet hätte ;)

Ich hatte gehofft, es mit den Bordmitteln von PHP hinzubekommen.

Peter
petsch [ Di, 28 August 2007 08:26 ] [ ID #1807123 ]

Re: Externe Websites im Intranet darstellen

On 28 Aug., 00:47, Stefan Braumeister <sbra... [at] gmx.net> wrote:
>
> Ich fasse es mal so auf, du hast eine Seite z.B. News, dort kann man die
> 10 aktuellsten News lesen, die jeweils in einem IFRAME dargestellt werden.
> Du legst in deinem PHP Code fest welche 10 URLs das sind.
> Der Client ruft eine der News auf und es wird die externe URL gegrabbed
> der HTML Code gespeichert und letztendlich via iframe angezeigt.

Korrekt. Allerdings kann muss es möglich sein, an die URL GET-
Parameter anzuhängen.

Beispiel: http://www.google.de/search?&hl=3Dde&q=3Dwget+windows

Dann sollte die formatierte Seite mit den Google-Treffern möglichst
inkl. CSS im <iframe> beim Client erscheinen. Ist nur ein Beispiel.
Dass die Goolge-Treffer-Link wegen fehlendem Internet-Zugang von den
usern nicht aufgerufen werden kann, soll jetzt mal keine Rolle
spielen.


>
> Einfach liese sich das Ganze
> mit cURL realisieren, siehe PHP Manual "curl", dort findest du auch ein
> simples Beispiel dazu.

Damit bekomme ich aber IMHO nur *eine* Datei. Für die korrekte
Darstellunge brauche ich aber alle verlinkten Bilder, CSS, usw.

Peter
petsch [ Di, 28 August 2007 08:52 ] [ ID #1807125 ]

Re: Externe Websites im Intranet darstellen

petsch schrieb:
>> Ich muss aber Ulf zustimmen, dass die Frage etwas komisch ist und ich sie
>> eher in einer Server-NG erwartet hätte ;)
>
> Ich hatte gehofft, es mit den Bordmitteln von PHP hinzubekommen.

Kannst du doch auch.

Teile deinem Proxy irgendwie mit, welche Seite der Client aufrufen will.
Besorge dir den HTML-Code der Seite (für den Anfang geht das sogar mit
fopen()). Parse alle Links und Sourceangaben entsprechend mit Regex, so
dass der Benutzer später beim Anklicken direkt wieder über den Proxy
wandert. Damit auch Bilder und Styles geladen werden ist dieses
sicherlich der komplizierteste Teil der ganzen Sache. Das Ganze dann
entsprechend über eine Datenbank zu cachen kannst du ja zum Schluss noch
oben drauf setzen.

Viel Spass! Ich finde, dass klingt spannend.


Gruß,
Habbo
bruening [ Di, 28 August 2007 09:58 ] [ ID #1807132 ]

Re: Externe Websites im Intranet darstellen

petsch schrieb:
> On 28 Aug., 00:47, Stefan Braumeister <sbra... [at] gmx.net> wrote:
>> Ich fasse es mal so auf, du hast eine Seite z.B. News, dort kann man die
>> 10 aktuellsten News lesen, die jeweils in einem IFRAME dargestellt werden.
>> Du legst in deinem PHP Code fest welche 10 URLs das sind.
>> Der Client ruft eine der News auf und es wird die externe URL gegrabbed
>> der HTML Code gespeichert und letztendlich via iframe angezeigt.
>
> Korrekt. Allerdings kann muss es möglich sein, an die URL GET-
> Parameter anzuhängen.
>
> Beispiel: http://www.google.de/search?&hl=de&q=wget+windows
>
> Dann sollte die formatierte Seite mit den Google-Treffern möglichst
> inkl. CSS im <iframe> beim Client erscheinen. Ist nur ein Beispiel.
> Dass die Goolge-Treffer-Link wegen fehlendem Internet-Zugang von den
> usern nicht aufgerufen werden kann, soll jetzt mal keine Rolle
> spielen.
>
>
>> Einfach liese sich das Ganze
>> mit cURL realisieren, siehe PHP Manual "curl", dort findest du auch ein
>> simples Beispiel dazu.
>
> Damit bekomme ich aber IMHO nur *eine* Datei. Für die korrekte
> Darstellunge brauche ich aber alle verlinkten Bilder, CSS, usw.
>
> Peter
>
In dem Fall würde ich mir überlegen, ob es nicht sinnvoll ist einen
Proxy zu nutzen. Was gefällt dir an einer Proxy-Lösung nicht?
Du kannst deswegen das Zeug in den IFRAME packen.
Mit PHP hier eine Lösung zu finden wäre aufwendig und fehleranfällig,
sicherheitstechnisch wohl auch nicht unbedenklich.

Gruß Stefan
Stefan Braumeister [ Di, 28 August 2007 14:44 ] [ ID #1807134 ]

Re: Externe Websites im Intranet darstellen

Jan Habbo Brüning schrieb:

> Parse alle Links und Sourceangaben entsprechend mit Regex, so
> dass der Benutzer später beim Anklicken direkt wieder über den Proxy
> wandert.

Wenn Du den (externen) Servername intern via DNS auf den "Proxy"
auflösen kannst, dann brauchst Du das nicht mal.

Ich sehe aber keinen Sinn darin, einen Schmalspur-Proxy mit PHP zu bauen
wo es doch fertige gibt :-)

grüße, matthias


--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
do.not.REMOVETHAT [ Di, 28 August 2007 10:30 ] [ ID #1808053 ]

Re: Externe Websites im Intranet darstellen

"petsch" <peter.schleif.spam [at] gmx.de> schrieb:

>> [...] die Sites mittels
>> wget herunterzuladen, das die Inhalte via Cronjob regelmäßig
>> aktualisiert.
>> Wichtig wäre, dass Du in wget die Links übersetzen läßt, damit keine
>> absoluten URLs in den Dokumenten sind.
>
> Hab ich unter Windows ausprobiert. Leider konnte ich (Easy-)wget noch
> nicht dazu bringen die GET-Parameter zu berücksichtigen.

Hm, dann schau mal in die manpages zu wget, die Parameter sollten
eigentlich gleich sein ;)


>> Ich muss aber Ulf zustimmen, dass die Frage etwas komisch ist und ich sie
>> eher in einer Server-NG erwartet hätte ;)
>
> Ich hatte gehofft, es mit den Bordmitteln von PHP hinzubekommen.

Nun ja, also IMHO möchtest Du eine Art Offline-Proxy / Proxy-Cache und da
ist die entsprechende Server-Software besser zu geeignet als PHP. Du weißt
doch: Für jede Aufgabe das richtige Werkzeug benutzen. Der Apache hat
übrigens auch Proxy-Funktionalitäten an Bord bzw. als Modul verfügbar.

Gruß

Klaus
Klaus Holsten [ Di, 28 August 2007 10:30 ] [ ID #1808057 ]
PHP » de.comp.lang.php.misc » Externe Websites im Intranet darstellen

Vorheriges Thema: Session-Problem im IE6: Bei Reload geht Session verloren
Nächstes Thema: readfile(): Benutzerreaktion abfragen?