Heiner: Mittels CGI Skript externe HTML Seiten aufrufen???

Ich habe folgende Frage:
Bei meinem Provider habe ich kein eigenes cgi-bin Verzeichnis, deshalb habe ich die Skripte bei einem Kostenlos-Provider gehostet.
Bei jeder Ausgabe CGI generierter Seiten erscheint deshalb ein Werbepopupfenster dieses Providers.
Dies würde ich gerne vermeiden.
Ist es möglich anstatt der "print"-Anweisung eine externe HTML Seite aufzurufen, wenn ja wie mache ich das?
Gäbe es noch andere Lösungsmöglichkeiten?
Vielen Dank im Vorraus
Heiner

  1. Dies würde ich gerne vermeiden.
    Ist es möglich anstatt der "print"-Anweisung eine externe HTML Seite aufzurufen, wenn ja wie mache ich das?

    Hallo!

    Also, du kannst das so machen:

    open(HT, "<[hier der Name der html-datei relativ*]");
    @ht = <HT>;
    close(HT);

    print @ht;

    das geht aber nur, wenn die HTML-Seite auch auf deinem server liegt, also da, wo das CGI-Skript liegt.

    CU, Nico!

    *: Wenn dein CGI-Bin-verzeichnis etwa in "/local/httpd/cgi-bin/" liegt (bei unix/linux), dann musst du hier etwa "../htdocs/seite.html" angeben

    1. Du kannst das Popup auch in einem 1pixel-Frame verstecken. Ist zwar etwas aufwendig, aber meistens unumgehbar, da die Kostenlosanbieter überprüfen, ob das popup angenommen wird oder nicht

  2. Es gibt verschiedenen Perl Modules, womit Du dieses vielleicht machen kannst, wenn ich dein Problem richtig verstanden habe...(die kannst Du von CPAN holen, und heissen Digest-MD5-2.07, HTML-Parser-2.23 etc.), und
    evtl. kannst Du die bei dienem Hosting Service in einem Verzeichnis installieren, dann muesstest Du die Location, wo die Modules zu finden sind dementsprechend aendern (also ../../../usr/lib/perl5/ aendern). Ich weiss nicht, ob alle notwending sind fuer den 'get' befehl (s. unten), tut's fuer mich aber.

    use lib "../../../usr/lib/perl5/Digest-MD5-2.07/lib";
    use lib "../../../usr/lib/perl5/HTML-Parser-2.23";
    use lib "../../../usr/lib/perl5/libnet-1.0606/Net";
    use lib "../../../usr/lib/perl5/MIME-Base64-2.11";
    use lib "../../../usr/lib/perl5/libwww-perl-5.44/lib";
    use lib "../../../usr/lib/perl5/URI-1.03";
    use LWP::Simple;

    $url = "http://www.teamone.de";
    $infos = get("http://www.teamone.de");

    Das gesamte HTML von www.teamone.de wird in $infos
    transferiert, dann kannste einfach

    print "Content-type: text/html\n\n";
    print $infos;

    um die Seite in deiner Seite so darzustellen. Natuerlich stimmt die URL nicht mehr (in der Adresse Leiste ist deine URL und nicht von teamone.de angezeigt)...und relative Verweise auf der teamone Seite funktionieren ooch nicht, also um evtl. Grafiken, die auf der teamone Seite zu sehen sind und mit einem relativen Verweis aufgerufen werden, richtig anzeigen zu lassen muesstest Du die SRC tags ergaenzen:

    $infos =~ s/(src=")/$1$url/ig; (o.Ä.)

    Ebenfalls fuer 'href=' etc.
    ?allet klar...wahrscheinlich gibt's einen besseren Weg. Ist jetzt nur eine Ueberlegung von mir. Nick

    1. Ich weiss nicht, ob alle notwending sind fuer den 'get' befehl (s. unten), tut's fuer mich aber.
      use lib "../../../usr/lib/perl5/Digest-MD5-2.07/lib";
      use lib "../../../usr/lib/perl5/HTML-Parser-2.23";
      use lib "../../../usr/lib/perl5/libnet-1.0606/Net";
      use lib "../../../usr/lib/perl5/MIME-Base64-2.11";
      use lib "../../../usr/lib/perl5/libwww-perl-5.44/lib";
      use lib "../../../usr/lib/perl5/URI-1.03";
      use LWP::Simple;

      Im Programm ist nur die letzte dieser Zeilen notwendig. Die anderen Module müssen aber installiert sein - das CPAN-Installationsverfahren prüft diese Abhängigkeit automatisch (die Liste kommt mir ziemlich bekannt vor).