Mittels CGI Skript externe HTML Seiten aufrufen???
Heiner
- cgi
0 Nico0 Micha
0 Nicholas Provart
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
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
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
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
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).