Atmaseva: CSS und CGI und CGI in html

Beitrag lesen

Hallo zusamamen,

ich habe gerade auf meinem Rechner Apache und Perl installiert. (Bin also ein blutiger Anfänger)

Ich möchte Daten aus einer Datei lesen und anschließend in einer Tabelle ausgeben (siehe Testbeispiele weiter unten).

Dabei sind bei mir folgende Fragezeichen entstanden:

  • Wie kann dafür sorgen, dass mittels perl auch css Anweisungen einer externen css-Datei ausgeführt werden.
    Nur eine der folgenden Zeilen (siehe Kommentar weiter unten im perl Script) funktionert. Angabe mit class="xxx" werden ignoriert.

  • Wie kann ich ein CGI-Script ohne Benutzeraktion innerhalb einer HTML-Datei aufrufen? In Selfhtml habe ich für diesen Zweck als einzige Möglichkeit "Server Side Includes" gefunden.
    Leider schaffe ich es nicht, auf meinem Apache SSI zum Laufen zu bringen. Gibt es eine andere Möglichkeit, CGI Scripe ohne Nutzeraktion aus eine html-Datei aufzurufen (abgesehen vom automatischen Laden). Oder muß ich unbedingt SSI auf meinem Apache zum Laufen bringen?

Vielen Dank im voraus für die Hilfe
atmaseva

HTML-Datei, in der später aus mehreren Dateien Daten ausgelesen und in eine Tabelle geschrieben werden sollen

<html>
<head>
<title>Tabelle ausgeben</title>
<link rel="stylesheet" type="text/css" href="/format_m.css">
</head>
<body>
<!-- folgende Zeile ist nur ein Krügge, da ich z.Z. keine Lösung habe, um
ein Pearl-Script ohne Benutzeraktion zum laufen gebracht habe  -->
<a href="/cgi-bin/openFile.pl">Tabelle ausgeben</a>
<!-- dies war mein Versuch mir SSI:
<!-- #exec cgi="/cgi-bin/openFile.cgi" -->
</body>
</html>

Auszug aus der CSS-Datei format_m.css:
.tabText {
 font-family:Arial,Helvetica,sans-serif;
 color:#003399;
 font-size:9pt;
}

perl-Script openFile
#!/usr/bin/perl -w

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

my ($x, $record, $vorname, $nachname);

open (INPUT, "C:/public/testio/datei.csv") || die "Cant open input file";

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Ausgabe der Tabelle</title>\n";
print '<link rel="stylesheet" type="text/css" href="format_m.css">', "\n";
print "</head><body>\n";

print "<h1 style='color:red'>Hier kommt die Liste</h1>\n";
print '<p style="color:#003399">test text text</p>', "\n";

die folgende Angabe class="tabText" bleibt wirkungslos

print '<p class="tabText">test text text</p>', "\n";

print '<table border="0" cellspacing="0" cellpadding="0">', "\n";
print '<colgroup><col width="270px"><col width="270px"></colgroup>', "\n";

while (<INPUT>) {
   ($vorname, $nachname) = split(';');
   print "<TR>\n";
   print "<td class='tabtext'>$vorname</TD>\n";
   print "<td>$nachname</TD></tr>\n";
}
print "</table>\n";

print "</body></html>\n";
close (INPUT);