Fensterinhalt auslesen

  • PHP

  • Master9
  • 1613 Aufrufe 10 Antworten
  • Fensterinhalt auslesen

    Hallo!
    Also ich habe eine Website mit 2 Frames. In Frame 1 befindet sich eine Website, deren Inhalt ich mit Frame 2 in eine Variable "text" auslesen will.

    Ich habe es schon über Java mit "text=parent.frame1.document.all.tags("body")[0].innerText;" probiert.Diese Möglichkeit funktioniert allerdings nicht wenn in Frame 1 eine php-Datei liegt.

    Deshalb hoffe ich das es vieleicht über PHP funktioniert. Es ist dabei egal, ob die Funktion nur den sichtbaren Teil, oder auch die HTML-Tags einließt.
    Falls ihr ne Lösung mit Java habt, könnt ihr die natürlich auch posten.
  • hi,
    soweit ich weiß kann man mit php auch nicht angeben dass man dieses eine Frame ausgelesen haben möchte, allerdings kannst du Dateien einlesen, z.B. mit diesem Code:

    PHP-Quellcode

    1. <?php
    2. $dateiname="http://www.website.de/datei-name-von-frame1.html"; // Dateiname wird in einer Variable gespeichert
    3. $datei=fopen($dateiname,"r"); // die Datei wird mit Leserechten geöffnet
    4. while($zeile=fgets($datei, 255)) // hier wird die Textdatei Zeile für Zeile in die Variable $zeile eingelesen
    5. {
    6. $text = $text.$zeile;
    7. }
    8. echo $text ;
    9. ?>


    mfg -HG-
  • fopen, include, und was sonst noch so ähnlich arbeitet hab ich schon ausprobiert.

    Das problem ist, das man sich für diese Seite einloggen muss. Ich hab auch schon versucht das Passwort per "post"-Methode mitzuschicken. Aber ich bekomme trotzdem "Fehler beim einloggen".

    Deshalb wollte ich es aus einem Fenster auslesen.
  • wenn man sich einoggen muss arbeitet die seite bestimmt mit sessions les doch einfach die variable aus dann kannste das wunderbar machen ^^
    die beiden obigen befehle funktonieren einfach nicht weil du dann den webserver auf deinem PC haben müsstest damit der server der das passwort haben will deine IP sieht dann würde das funzen...
    Signatur entsprach nicht den Boardregeln.
    ->gelöscht by lukas2004
  • Die oberen Befehle funktionieren. Nur halt nicht in dem Bereich der ein PW verlangt.

    Wenn ich das PW per Post an die Original-Seite schicke funktioniert es.

    Wenn ich das PW an meine PHP-Seite schicke, in der die Original-Seite per include eingebunden wurde funktioniert es nicht.
  • Dazu würde ich sockets Funktionen nehmen, in etwa so:

    PHP-Quellcode

    1. $re = '/^(http:\/\/)?([^\/]+)(\/.+)/i'; // regex pattern
    2. if (!@preg_match($re, $url, $addr)) exit; // url ungültig
    3. $sock = @fsockopen($addr[2], 80); // addr[2] enthält mit der oben benutzten regex pattern die server adresse
    4. if (!$sock) exit; // verbindung fehlgeschlagen
    5. $pwstring = "password=eintest"; // muss entsprechend bearbeitet werden
    6. fputs($sock,
    7. "POST $addr[3] HTTP/1.1\r\nHost: $addr[2]\r\nContent-Length: {strlen($pwstring)}\r\n\r\n$pwstring");
    8. $buf;
    9. while (!feof($sock))
    10. $buf .= fgets($sock, 4096);
    11. echo $buf; // inhalt der seite - hoffentlich :)
    Alles anzeigen

    Tjo soweit erstmal. Sollte egtl funzen, vllt stimmt auch was mit der HTTP-Abfrage nicht, naja probieren hilft. ^^

    Ach ja nicht vergessen, vor der ganzen Geschichte muss noch sowas wie $url = "lalala.irgendwas.de/meinframe.html";

    Übrigens Frames sucken aber das nur am Rande. :)
  • Also ich bekomme die Antwort:
    Request Entity Too Large
    The requested resource does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit.


    Aber ich glaube ich fasse mein Problem nochmal zusammen:

    1) Ich möchte den Inhalt einer mit PHP generierten Seite auslesen und verarbeiten.
    2) Um auf diese Seite zu gelangen muss man sich einloggen.
    3) Fallen mir 3 Möglichkeiten zur Realisierung ein:
    3a) Das geöffnete Fenster mit Java, VBScript u.ä. direkt auslesen
    3b) Die Seite in meine eigene PHP einbinden
    3c) Maus und Tastatureingaben simulieren -> Copy+Paste

    Da die 3 Möglichkeit nur eine Notlösung ist, hoffe ich, dass jemand eine Idee zur Umsetzung der anderen beiden hat.