Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : PERL - Wertübergabe von HTML nach Perlcode



Eagle
02-08-2003, 13:49
Hallo,

ich habe als Gelegenheits-Perler ein kleines Realisierungsproblem, weil mir das entsprechende Wissen fehlt.

Vorab, ich will auf meinen Websites bei Links gemäß Teledienstegesetz §9 meine Verantwortung für fremde Websites ausschließen. Dazu habe ich mir ein kleines Perlskript
forward.cgi mit dem entsprechenden HTML-Code und dem jeweiligen Text inklusive der Ziel-URL vorbereitet. Der Aufruf dieses Skriptes erfolgt dann wie folgt:

<a href="http://eagle/scripts/forward.cgi?www.irgendwoin.de" target= "blank">IrgendwoinDeutschland</a>

Jetzt soll die URL www.irgendwoin.de dem Skript mit übergeben werden und in die Variable $name gespeichert werden, damit die Seite genau diese Info www.irgendwoin.de anzeigt und im META-Tag auch dorthin weiterleitet.

Was ich jetzt nicht weiß, ist, wie ich mein Skript im Anfang schreiben muß, damit dieser Wert www.irgendwoin.de auch eingelesen wird. Dazu ist hier der Anfangscode meines Skriptes:

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

read (STDIN);
$name =<STDIN>;
print '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html> \n";
print "<head>\n";
print "<title>Linuxmaker </title>\n";
print "'<meta http-equiv="refresh" content="10; URL=http://$name">'\n";
print '<link type="text/css" href="cube1.css" rel="stylesheet" media="screen">', "\n";
print '<style type="text/css" media="screen">', "\n";
print "<!--\n";
print "#Ebene1 { position: absolute; top: 15px; left: 320px; width: 400px; height: 40px; visibility: visible; display: block }\n";
print "-->\n";
print "</style>\n";
print '<style type="text/css">', "\n";

Kann mir diesbezüglich jemand unter Euch mir meinen Fehler aufzeigen?

Vielen Dank auch im Voraus!

MfG

Eagle

tomes
02-08-2003, 16:16
Suchs du so etwas ;-)


use CGI;
my $cgi = new CGI;
my $name=$cgi->param{'url'};

Allerding sollte dann deine Variablen Uebergabe wie folgt laute:
<a href="http://eagle/scripts/forward.cgi?url=www.irgendwoin.de" target= "blank">IrgendwoinDeutschland</a>

Tom

P.S.:
Alles mal in Kurzfassung:


#!/usr/bin/perl
use strict;
use CGI;
my $cgi = new CGI;
my $name=$cgi->param{'url'};
print $cgi->header(-type => 'text/html');
print "<html>
<head>
<meta http-equiv=\"refresh\" content=\"10; URL=http://$name\">
</head>
<body>
Hier dann dein Text
</body>
</html>
";

Eagle
02-08-2003, 16:56
Hallo tomes,

klar suche ich so Etwas. Vielen Dank für Deine Unterstützung!

Ein schönes Wochenende wünsche ich Dir!

Gruß

Eagle

Eagle
08-08-2003, 19:10
Hallo,

also die Werteübergabe mittels CGI habe ich inzwischen einigermaßen kapiert - hoffe es zumindest. Nur mit dem Aufufen klappt's noch nicht so ganz. Wenn ich
das Skript umleitung2.cgi auf meiner Console aufrufe, dann gibt es mir den HTML-Code ohne Fehlermeldungen wie gewünscht aus.

In meiner HTML-Seite habe ich folgenden Anker gesetzt:

<p>Nachdem der Sourcecode von der <a href= "scripts/umleitung2.cgi?url=www.gnupg.org" target="MIDDLEframe">GnuPG
Homepage</a> heruntergeladen wurde, ... </p>

Wenn ich jetzt denn Link aufrufe, dann bringt der Server die Fehlermeldung 500: Datei nicht gefunden. Dabei liegt das Skript in dem besagten Verzeichnis mit den Rechten 755 und ich habe es im ASCII-Modus auf den Server geladen. Zusätzlich habe ich noch eine .htaccess mit dem Inhalt "Options +ExecCGI" in das Hauptverzeichnis hochkopiert, was aber an der Fehlermeldung nichts geändert hat.

Deswegen hier meine Frage, habe ich in dem Skript noch einen Fehler drin oder ist der Anker syntaktisch falsch, respektive woran kann es liegen, wenn beide Teilfragen Nein ergeben?



umleitung2.cgi :

#!/usr/bin/perl -w

use strict;
use CGI;

my $q = new CGI;
my $url = $q->param ("url");


print "<html> \n";
print "<head>\n";
print "<title>Automatische Weiterleitung nach http://$url</title>\n";
print '<meta http-equiv="Refresh" content="5; URL=http://$url">';
print '<link type="text/css" href="cube1.css" rel="stylesheet" media="screen">', "\n";
print '<style type="text/css" media="screen">', "\n";
print "<!--\n";
print "#Ebene1 { position: absolute; top: 15px; left: 320px; width: 400px; height: 40px; visibility: visible; display: block }\n";
print "-->\n";
print "</style>\n";
print '<style type="text/css">', "\n";
print "<!--\n";
print "a { color: white }\n";
print 'a { text-decoration: none; font-family: "Verdana"; }', "\n";
print 'a:hover { color: white; font-family: "Verdana"; font-size: 11pt; font-weight: bold}', "\n";
print ".navigation:hover\n";
print "{\n";
print "background-color: #99CCFF; \n";
print "color: #000099\n";
print "font-weight: bold\n";
print "}\n";
print ".navigation\n";
print "{\n";
print 'font-family: "Verdana"', "\n";
print "text-decoration: none\n";
print "font-size: 10pt\n";
print "left: 10px\n";
print "position: relative\n";
print "color:#000099\n";
print "font-weight: normal\n";
print "text-indent:10pt\n";
print "}\n";
print " -->\n";
print "</style>\n";
print '<style type="text/css" media="screen">', "\n";
print "<!--\n";
print "#Ebene1 { position: absolute; top: 15px; left: 320px; width: 400px; height: 40px; visibility: visible; display: block }\n";
print "-->\n";
print "</style>\n";
print "</head>\n";
print '<body bgcolor="#F5F5F5" leftmargin="100" marginheight="135" marginwidth="100" topmargin="125">', "\n";
print '<table width="100%" border="0" cellspacing="0" cellpadding="10">', "\n";
print "<tr>\n";
print "<td>\n";
print '<div align="center">', "\n";
print '<div id="Ebene1">', "\n";
print '<div align="left">', "\n";
print '<!-- <span class="riesentext">|linuxmaker</span> -->', "\n";
print "</div>\n";
print "</div>\n";
print "</div>\n";
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print '<td height="50">&nbsp;</td>', "\n";
print "</tr>\n";
print "<tr>\n";
print '<td bgcolor="#DDDBDB"><span class="hometext"><span class="class">Sie verlassen hier das Internet-Angebot von LINUXMAKER.<br>', "\n";
print "LINUXMAKER ist gem&auml;&szlig; Teledienstegesetz &sect;6 nicht f&uuml;r den Inhalt externer Websites verantwortlich.<br\n>";
print "<br>\n";
print 'Weiterleitung nach 10 Sek. oder bei Klick<a>href="http://$url">$url</a></span></span></td>', "\n";
print "</tr>\n";
print "</table>\n";
print "</body>\n";
print "</html>\n";

Vielen Dank für Euere Unterstützung!

Gruß

Eagle

tomes
08-08-2003, 21:28
Nichts leichter als das ;-)
Hoffe ich mal.
Du musst Anfuerungszeichen innerhalb einer print schuetzten --> \"


print '<meta http-equiv="Refresh" content="5; URL=http://$url">';

Ansonsten, Tip.
Es reicht ein (1)
print "<html>
.....
....
....
....
</html>";<-- hier erst wieder zu. Dann kannst du dir auch die Zeilenumbrueche sparen ;-)

T;o)Mes