Seite 1 von 1
Zugriff einer anderen Webseite auf bestimmte Artikel
Verfasst: Mo 24. Sep 2007, 14:19
von Skyver
Hallo Zusammen,
ich habe ein vielleicht extravagantes Problem, das ich als Nicht-Experte nicht lösen kann, und dazu auch nichts in den bisherigen Beiträgen finden konnte.
Ich habe zwei unterschiedliche Webseiten/Domains auf zwei getrennten Servern, die jeweils mit der Version 4.6.15 laufen. In Webseite 1 sind Inhalte in einer bestimmten Kategorie enthalten, die genauso auch in Webseite 2 eingebaut werden sollen. Daher hätte ich gerne eine Lösung, bei der Webseite 2 die entsprehenden Inhalte aus Webseite 1 holt, ohne dass das komplette Design (css) miteingebaut wird. Beide Seiten haben also unterschiedliche Deisgns.
Gibt es vielleicht eine Lösung über IFrames? In dem jeweiligen Frame in Webseite 2 soll z.B. nur die Artikelliste von Webseite 1 eingebaut werden.
Ich hoffe ich hab mich klar genug ausgedrückt. Vielleicht kann mir ja jemand helfen.
Vielen Dank schonmal,
Gruß
Skyver
Verfasst: Mo 24. Sep 2007, 14:33
von kummer
sind die daten in der selben datenbank? oder hast du zwei verschiedene datenbanken?
Verfasst: Mo 24. Sep 2007, 14:55
von Skyver
@kummer
Die daten sind in getrennten Datenbanken. es sind wirklich zwei komplett getrennte Seiten.
Verfasst: Mo 24. Sep 2007, 14:59
von kummer
dann wählst du folgendes vorgehen:
(1) den interessierenden bereich im layout des quellauftritts in htm-kommentare einkleiden (z.b. <!-- start --> und <!-- end -->).
(2) mit einer socket-verbindung den seiteninhalt laden.
(3) den bereich innerhalb der kommentarzeilen aus der quelle isolieren und im aktuellen layout ausgeben.
allerdings ist diese lösung aufgrund der socket-verbindung, die zuvor erstellt werden muss, vergleichsweise langsam.
Verfasst: Mo 24. Sep 2007, 15:44
von Skyver
OK, das hört sich gut an..ich werd das gleich morgen probieren. Ich hab nur noch ein Problem: Wie richtige ich die Socket-Verbindung ein?
Vielleicht hast du ja dazu auch noch eine kurze Anleitung.
Vielen Dank vorerst,
Gruß
Skyver
Verfasst: Mo 24. Sep 2007, 15:45
von HerrB
fsock_open, siehe PHP-Doku
Gruß
HerrB
Verfasst: Mo 24. Sep 2007, 15:55
von kummer
was in der art sollte es bringen:
Code: Alles auswählen
<?php
$domain = 'mydomain.com';
$get = '/cms/front_content.php?idart=123';
$fp = fsockopen($domain, 80, $errno, $errstr, 30);
fputs($fp, "GET {$get} HTTP/1.0\r\n\r\n");
$extContent = '';
while (!feof($fp)) {
$extContent .= fgets($fp, 128);
}
fclose($fp);
?>
wobei du $domain und $get mit vernünftigen werten belegen musst. dann solltest du in $extContent den inhalt der gefragten seite haben und kannst den interessanten bereich mit einer regex isolieren.
gruss,
andreas
Verfasst: Mo 24. Sep 2007, 16:56
von delinquent
...und ggf. den Host-Header ergänzen, falls auf dem Server mehrere Domains liegen:
Code: Alles auswählen
fputs($fp, "GET {$get} HTTP/1.0\r\nHost: {$domain}\r\n\r\n");
Verfasst: Mo 24. Sep 2007, 22:40
von Skyver
Ok die Herren,
ich hau rein und sag Bescheid ob ich es hinbekommen hab. Vielen Dank derweil für Eure tatkräftige Unterstützung!
CU
Skyver
Verfasst: Mo 24. Sep 2007, 23:33
von Skyver
Also...
ich hab jetzt mal eine Datei namens "Test.php" auf den Server gelegt und den Code von kummer angepasst eingetragen:
Code: Alles auswählen
<?php
$domain = 'www.schaitl-reisen.de';
$get = '/front_content.php?idcat=75';
$fp = fsockopen($domain, 80, $errno, $errstr, 30);
fputs($fp, "GET {$get} HTTP/1.0\r\n\r\n");
$extContent = '';
while (!feof($fp)) {
$extContent .= fgets($fp, 128);
}
fclose($fp);
?>
Wenn ich die Datei dann aufrufe wird mir aber nix angezeigt. Muss ich das Ganze dann in einem HTML Code anzeigen lassen? Wie sieht das aus? Wo ist der Fehler? Wie gesagt..Nicht-Experte
Vielleicht stell ich micha uch nur doof an, aber über Eure Unterstützung wäre ich glücklich.
Dankefür die Mühe,
viele Grüße
Skyver
Verfasst: Di 25. Sep 2007, 08:14
von kummer
nun, du hast den inhalt jetzt in der variablen $extContent. bloss machst du damit noch nichts und php wird das für dich nicht erledigen, da es nicht weiss, was du damit machen möchtest. um es an den browser auszugeben müsstest du einfach noch ein
einfügen.