HTML und CGI Kurzanleitung

Machen Sie ihre eigene Homepage! Mit dem Crashkurs lernen Sie Webseiten zu erstellen und mit der CGI-Sammlung erwecken Sie Ihre Homepage zum Leben.

HTML Crashkurs

Webseiten werden in der Sprache HTML erstellt. Natürlich können Sie sich beim Erstellen ihrer Homepage von speziellen Werkzeugen unterstützen lassen, es gibt diverse HTML-Editoren im Internet (Tucows Shareware). Wenn Sie sich jedoch selbst mit den Grundkentnissen in HTML vertraut machen möchten, empfehle ich den Crashkurs zu Ende zu lesen.

1. Schritt: Beginnen wir mit einem einfachen Beispiel, dem Grundgerüst einer HTML-Seite (Beispiel anschauen):

<HTML>
<HEAD><TITLE> My Homepage </TITLE></HEAD>
<BODY>
Hello World! Hier ist meine Homepage...
</BODY>
</HTML>
Beispiel anschauen

Grundsätzlich werden HTML Befehle (man nennt sie Tags) von spitzen Klammern eingeschlossen, zum Beispiel <HTML>. Falls ein Textstück beeinflusst werden soll, folgt zum Abschluss noch ein Tag mit Schrägstrich (auch Slash genannt), also beispielsweise </HTML>. Die Grundstruktur einer HTML-Seite ist immer die gleiche, die gesamte Seite wird wie im Beispiel oben von <HTML>...</HTML> eingeschlossen.

2. Schritt: Wir fügen dem Beispiel etwas dickere Schrift (Fettschrift) hinzu:

<HTML>
<HEAD><TITLE> My Homepage </TITLE></HEAD>
<BODY>
Hello World! Hier ist meine <B>Homepage</B>...    
</BODY>
</HTML>
so sieht es dann im Webbrowser aus:
Hello World! Hier ist meine Homepage...

Wie Sie sehen wurde der gewünschte Text durch den Befehl für Fettschrift (bold) eingeschlossen.
Alle Beispiele können Sie übrigens mit einem einfachen Texteditor erstellen. ->Probleme oder Fragen? Siehe FAQ. (TIP)

3. Schritt: Wir fügen dem Beispiel eine neue Textzeile hinzu:

<HTML>
<HEAD><TITLE> My Homepage </TITLE></HEAD>
<BODY>
Hello World! Hier ist meine <B>Homepage</B>...<BR>
mit vielen Infos über mich!
</BODY>
</HTML>
so sieht es dann im Webbrowser aus:
Hello World! Hier ist meine Homepage...
mit vielen Infos über mich!

Den Befehl für eine neue Zeile (<BR>) müssen Sie nur einfügen wenn Sie unbedingt eine neue Zeile brauchen. Normalerweise können Sie Text einfach eingeben, Text der breiter als der Bildschirm ist wird automatisch auf mehrere Zeilen umgebrochen.
Okay, weil das so einfach war, fügen wir als letztes dem Beispiel noch eine Grafik hinzu:

<HTML>
<HEAD><TITLE> My Homepage </TITLE></HEAD>
<BODY>
Hello World! Hier ist meine <B>Homepage</B>...<BR>
mit vielen Infos über mich! <IMG SRC="cool.gif">
</BODY>
</HTML>
so sieht es dann im Webbrowser aus:
Hello World! Hier ist meine Homepage...
mit vielen Infos über mich!

Damit Sie die kleine Cool-Grafik auch auf ihrem Rechner zuhause haben, klicken Sie diese jetzt mit der rechten Maustaste an und speichern sie dann ab (SAVE AS), am Besten ins selbe Verzeichnis wie die HTML-Seite. Ja, so einfach lassen sich Grafiken klauen! (TIP)

Die wichtigsten HTML-Befehle:
Einfache HTML Seiten kommen mit wenigen Befehlen aus. Hier die wichtigsten, die muß man kennen (Beispiel anschauen):

 Textausrichtung:
<BR> Nächste Zeile (Break), Leerzeilen erhält man durch mehrere <BR>
<B> ... </B> Fettschrift (Bold), das umrahmte Textstück erscheint in Fettschrift
<I> ... </I> Kursivschrift (Italic) für das umrahmte Textstück
<U> ... </U> Unterstrichen (Underlined)
<TT> ... </TT> Schreibmaschinenschrift (Typewriter)
<PRE> ... </PRE> Formatiertes Textstück (Preformated) in Schreibmaschinenschrift. Das Textstück wird genau so ausgegeben, wie es im Texteditor aussieht.
<BLINK> ... </BLINK> Blinkender Text
<CENTER> ... </CENTER> Zentriert Text und Bilder
<HR> horizontale Trennlinie (Horizontal Ruler)
<H1> ... </H1> Überschrift
<H2> ... </H2> kleinere Überschrift, insgesamt mögliche Werte H1 - H6
<UL> ... </UL> Erzeugt eine Liste, jeder Eintrag beginnt mit einem grossen Punkt
<LI> Markiert innerhalb der Liste den Beginn eines neuen Listeneintrags
 
 Grafik:
<IMG SRC="dateiname"> Fügt die gewünschte Grafikdatei (Image) in die Seite ein
<IMG SRC="dateiname" ALT="Bild"> Legt zusätzlich einen Ersatztext fest für abgeschaltete Grafik, Textbrowser oder wenn man mit Maus über die Grafik fährt. Verwenden Sie die Grafikformate GIF oder JPG, sie werden von allen Browser (z.B. Netscape oder Internet Explorer) angezeigt.
 
 Links zu weiteren Seiten:
<A HREF="bsp.html">Text</A> Text mit Link, wird blau (farbig) gezeichnet
<A HREF="bsp.html"><IMG SRC="bsp.gif"></A> Grafik mit Link, wird blau (farbig) umrandet
<A HREF="bsp.html"><IMG SRC="bsp.gif" BORDER=0></A> Grafik mit Link, jedoch ohne Rahmen
 
 Sprung auf bestimmte Position einer Seite:
<A HREF="bsp.html#POS">Sprung</A> Text mit Link auf bestimmte Position, wird blau (farbig) gezeichnet
<A NAME="POS">Ziel</A> Definiert ein bestimmtes Sprungziel in einer Seite.
Falls der Sprung innerhalb einer Seite erfolgt, kann der HTML-Dateiname weggelassen werden
 
 Sonderzeichen und deutsche Umlaute:
&lt; &gt; < >
&nbsp; Leerzeichen (mit der Breite des Buchstaben "n"), mehrere aneinanderreihbar
äöüß Umlaute im ISO 8859-1 Code (z.B. bei Windows95/NT oder Unix)
&auml; &ouml; &uuml; &szlig; ä ö ü ß (alte Schreibweise, nur zur Vollständigkeit aufgezählt)
&Auml; &Ouml; &Uuml; Ä Ö Ü (alte Schreibweise)
<!-- text --> Kommentar, der Text zwischen den "--" wird vom Webbrowser nicht angezeigt

Die wichtigsten Begriffe
Bei weiteren Schritten mit HTML (Hyper Text Markup Language) sollten Sie sich mit Folgendem vertraut machen:

Mit Hilfe von Tabellen können Text und Grafik beliebig angeordnet werden, ein wichtiges Werkzeug für Web-Programmierer. Die sogenannten Frames werden benutzt um den Bildschirm in mehrere Fenster aufzuteilen, in dieser Anleitung wurden Frames beispielsweise für die Menüzeile am oberen Rand benutzt. Mit Style Sheets oder Layers können HTML-Seiten, Text oder Grafiken sogar übereinander gelegt werden.
Weiterführende Informationen finden Sie unter ->Links.

Das war auch schon unser kleiner HTML-Crashkurs! Nun können Sie mit ihrer eigenen Homepage loslegen, zur Übung sollten Sie gleich einmal eine kleine Seite basteln und mit den oben gezeigten Möglichkeiten herumspielen.

CGI Crashkurs

Dieser Abschnitt wendet sich eindeutig an Fortgeschrittene, Sie sollten bereits gute HTML-Kenntnisse sowie etwas Programmiererfahrung besitzen (z.B. in der Programmiersprache Perl oder C).

So erstellt man CGI-Scripts
Mit CGIs (Common Gateway Interface) lassen sich kleine Programme vom Webserver ausführen und HTML-Dokumente entwickeln eine ungeahnte Dynamik!
Abbildung CGI Beim Aufruf wird im Webbrowser statt einer HTML-Seite die Script-Adresse angegeben. Häufig wird auch durch ein Formular (z.B. in einem Gästebuch) ein CGI-Script aufgerufen. Wie Sie in der Abbildung rechts sehen wird vom CGI-Script wiederrum als Ausgabe eine HTML-Seite erzeugt, es können sogar Grafiken oder andere beliebige Daten zurückgegeben werden.

Vorbereitungen: Erkundigen Sie sich bei Ihrem Provider/Rechenzentrum/Schule ob CGI-Scripte überhaupt möglich sind und wie der persönliche CGI-Pfad und das CGI-Verzeichnis lauten. Falls noch nicht geschehen, legen Sie dann in Ihrem Webverzeichnis ein eigenes Verzeichnis für Scripte an (meistens cgi-bin).
Zur Vereinfachung beziehen wir uns hier auf das Betriebssystem Unix (Unix-Kurzanleitung). Es können jedoch alle Beispiele leicht auf andere Systeme übertragen werden (z.B. Windows NT). Als für Webseiten ideal erwiesen hat sich die Programmiersprache Perl, wie wir in den Beispielen noch sehen werden. Perl ist sehr C-ähnlich, aber im Gegensatz dazu wird es interpretiert, d.h. Programme müssen vorher nicht noch umständlich kompiliert werden.

Das folgende CGI-Script gibt das Datum aus: (Beispiel anschauen)
#!/usr/bin/perl
$date_command = "/bin/date"; #Muss mit "which date" übereinstimmen
$date = `$date_command +"%d.%m.%Y"`; chop ($date); #Datum einlesen
print "Content-type: text/html\n\n"; #CGI-Header ausgeben
print "Heute ist der $date "; #Datum ausgeben
print "...have a nice day!\n";

Das Script liest mit Hilfe des Unix-Befehls date das aktuelle Datum ein. Danach wird ein Header übergeben, so daß der Webbrowser weis welche Art Daten folgen. Die abschliessende Leerzeile "\n" ist wichtig, sie trennt den Header vom eigentlichen Inhalt. Schliesslich wird das HTML-Dokument ausgegeben. In unserem Fall ist dies auf das unterste Minimum reduziert (nicht einmal <HTML> haben wir ausgegeben)... zum Testen reicht es. Kopieren Sie sich das Beispiel in Ihr CGI-Verzeichnis auf dem Webserver und probieren Sie es gleich einmal aus.
Wichtig: Achten Sie bei CGI-Scripten darauf, daß die Ausführ- und Leserechte für alle Benutzer gesetzt sind (chmod a+rx dateiname)... und daß bei Perl-Scripten in der ersten Zeile der richtige Pfad steht (which perl). Wenn CGI-Scripte nicht richtig funktionieren, gehen Sie am Besten die ->Problem-Checkliste durch! (TIP)

Dieses Script gibt einen einfachen Web-Counter aus: (Beispiel anschauen)
#!/usr/bin/perl
$count_file = "/home/moak/public_html/data/counter.log";
open (FILE,$count_file); #Datei zum Lesen öffnen
$counter = <FILE>; #Wert lesen
$counter++; #Wert um eins erhöhen
close (FILE); #Datei schliessen
print "Content-type: text/html\n\n"; #CGI-Header ausgeben
print "Hey, du bist Besucher <B>$counter</B>!\n"; #Neuen Wert ausgeben
open (FILE,">$count_file"); #Datei zum Schreiben öffnen
print FILE $counter; #Wert in Datei schreiben
close (FILE); #Datei schliessen

Das Script liest den aktuellen Zählerstand aus einer Datei, gibt den nächsthöheren Wert als HTML-Text aus und schreibt den neuen Wert zurück in die Zählerdatei. Das Ganze ist eine primitive Urform eines Zählers und dient uns als Beispiel für Datei-Operationen mit CGIs, dabei gilt es zu beachten:
Die zu lesende Datei und ihr Verzeichnis muss für alle lesebar sein, in den höhergelegenen Verzeichnissen muss Zugriffsrecht (lookup) für alle gesetzt sein. Bei einer Datei zum Schreiben muss zusätzlich die Datei und ihr Verzeichnis für alle schreibbar sein. Wie bereits im ersten CGI-Beispiel erwähnt, Zugriffsrechte entsprechend setzten!.

Server Side Includes
Die sogenannten ServerSideIncludes (SSI) verbinden HTML-Dokumente und ->CGI-Scripte noch enger miteinander, da Scriptaufrufe (z.B. Datenbankabfragen) direkt in der HTML-Datei stehen und Ergebnisse vom Webserver automatisch in die Ausgabeseite eingefügt werden. Mit der Anweisung <!--#exec cgi="scriptname"--> wird ein Scriptaufruf in ein HTML-Dokument eingebettet.

Die folgende HTML-Seite zeigt wie es geht: (Beispiel anschauen)
<HTML>
<HEAD><TITLE> My Homepage </TITLE></HEAD>
<BODY>
<H1>Willkommen auf meiner neuen Homepage!!</H1>
<!--#exec cgi="cgi-bin/counter.pl"-->
</BODY>
</HTML>

Beachten Sie daß sich keine Leerzeichen zwischen dem ->Kommentar und der eigentlichen SSI-Anweisung befinden dürfen. Um ServerSideIncludes zu verwenden muss ausserdem die HTML-Datei meist die Endung ".shtml" besitzen, erkundigen Sie sich bei Ihrem Provider/Rechenzentrum. Übrigens genau genommen handelt es sich bei ServerSideIncludes nicht nur um eine Variante der ->CGI-Scripte, sondern es ist eine Erweiterung des Webservers, dieser kann noch einige andere Dinge (wie z.B. das Datum, Umgebungsvariablen oder andere Daten) automatisch ins HTML-Dokumente einfügen.

CGI Sammlung

Die folgende Sammlung enthält die wichtigsten CGI-Scripte, mit ihrer Hilfe erweitern Sie ihre Homepage schnell und einfach. Wer noch nicht mit CGIs vertraut ist, sollte vorher den ->CGI Crashkurs lesen. Folgende Scripte stehen zu Auswahl: (TIP)

* Info: CGI-Test, wertet Formulare und Variablen aus
* Mail: Verschickt Email, auch an beliebige Empfänger
* Guestbook: Verwaltet ein Gästebuch, mit vielen Optionen
* Addlist: Anmeldung für Partys oder Unternehmungen
* Search: Suche für Webseiten, berücksichtigt Frames
* Random: Gibt zufällige Grafik (oder andere Datei) zurück
* Counter: Ein Webcounter, mit eingebautem Klauschutz
* Surftistic: Erstellt Statistiken aus den Webcounter-Daten
* Htmlconvert: Konvertiert für andere Webserver

Alle Scripte sind für private Zwecke frei verwendbar.
Falls Probleme auftauchen sollten, lesen Sie bitte die ->CGI-Problem-Checkliste durch!

INFO Download CGI-Test, wertet Formulardaten aus und zeigt Umgebungsvariablen an
Beschreibung: In diesem CGI-Script finden Sie die Standard-Routine um Werte von Webseiten auszuwerten. Sie wird auch in einigen anderen Routinen meiner CGI-Sammlung verwendet und Sie können sie gerne auch in ihren eigenen Scripten verwenden.

Dateien:   info.pl ..... das CGI-Testscript
info.html ... eine einfache HTML-Seite zum Austesten des Scripts

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

MAIL Download Zum Verschicken einer Email, auch an beliebige Empfänger
Beschreibung: Es werden alle Daten eines Webformulars per EMail verschickt und eine Feedback-Seite ausgegeben.
Entweder sind Mail-Empfänger und Subject festeingestellt oder können im Formular eingegeben werden (Feldnamen "to" und "subject"). Falls die EMailadresse im Formular eingegeben werden darf, wird sie auf Gültigkeit überprüft (schützt vor Hackversuchen). Weiterhin kann eingestellt werden ob Emails nur innerhalb einer bestimmten Domain verschickt werden dürfen (schützt vor Missbrauch).
Das Feld mit Namen "from" hat eine besondere Bedeutung, es steht für die Emailadresse des Absenders.

Tip: Es gibt zusätzliche Möglichkeiten das Aussehen einer Mail zu steuern: Felder deren Namen mit "x-" beginnt werden nur verschickt, wenn sie tatsächlich ausgefüllt wurden. Bei Feldern dessen Name mit "h-" (hidden) beginnt wird nur der Inhalt verschickt (am Besten ausprobieren).
Eine Leerzeile erhält man mit: <INPUT TYPE=HIDDEN NAME="h-" VALUE=" ">

Dateien:   mail.pl .......... das CGI-Mailscript
mail.html ........ eine einfache HTML-Seite zum Austesten des Scripts
mailok.html ...... Template für Feedback (Mail wurde verschickt)
mailerror.html ... Template für Fehler (Mail wurde nicht verschickt)

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

GUESTBOOK Download Verwaltet ein Gästebuch, mit HTML-Preview und anderen Optionen
Beschreibung: Die Besucher ihrer Homepage können sich in ein Gästebuch eintragen. Dabei kann festgelegt werden ob HTML-Code im Eintrag erlaubt ist und wer bei einem neuen Eintrag per Mail verständigt wird. Das genaue Aussehen des Gästebuchs kann man komfortabel in HTML-Seiten einstellen, es müssen dazu keine Scripte editiert werden.

Tip: Damit die neuen Einträge nicht gleich sichtbar werden, kann man die neuen Einträge in einer anderen Datei speichern lassen... nach einer Überprüfung kopiert man diese Datei einfach übers Orginal-Gästebuch.
Tip2: Normalerweise wird nach (vollständiger) Eingabe zuerst ein Preview des Eintrags angezeigt, damit man gerade bei Verwendung von HTML-Codes überprüfen kann, ob der Eintrag stimmt. Wenn man überhaupt kein Preview anbieten will, ist es möglich den "modify"-Button durch einen "ok"-Button auszutauschen.

Dateien:   guestbook.pl ........ das CGI-Gästebuchscript
gbuch.html .......... das eigentliche Gästebuch
gbuchein.html ....... Seite um sich ins Gästebuch einzutragen
gbucheingabe.html ... Template wie Eingabe-Seite aussieht
gbuchpreview.html ... Template wie Preview-Seite aussieht
gbucheintrag.html ... Template wie der Eintrag auszusehen hat
gbuchmail.txt ....... Template der Mailbenachrichtigung

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

ADDLIST Download Für Anmeldelisten von Partys oder anderen Unternehmungen
Beschreibung: Wer beispielsweise eine Party plant kann seine Freunde per Web anmelden lassen. Das genaue Aussehen der Anmeldeliste kann man komfortabel in HTML-Seiten einstellen, es müssen dazu keine Scripte editiert werden. Es werden alle Daten eines Webformulars übernommen, sind nicht alle Felder ausgefüllt gibt es eine Warung. Eine Ausnahme bilden die Felder deren Namen mit "x-" oder "xx-" beginnt, sie müssen nicht ausgefüllt sein (bei den "xx-" Feldern wird statt fehlenden Werten "??" eingetragen).

Tip: Indem Sie den HTML-Feldnamen ein "x-" oder "xx-" vorstellen können Sie bestimmen, welche Felder ihre Gäste ausfüllen müssen und welche freiwillig sind.

Dateien:   addlist.pl .......... das CGI-Anmeldescript
party.html .......... eine Beispiel-Anmeldeseite
partylist.html ...... die Seite mit bisherigen Anmeldungen
partyeintrag.html ... Template wie der Eintrag auszusehen hat
partyerror.html ..... Template wie Fehlermeldung aussieht

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

SEARCH Download Bietet eine Suche für Webseiten an, berücksichtigt Frames (V1.1)
Beschreibung: Damit man auf ihrer Homepage schnell alle Informationen findet, hier diese kleine Suche. Es kann im Script zwischen Stichwort- oder Volltextsuche gewählt werden: Die Stichwortsuche berücksichtig jeweils nur die ersten 10 Zeilen, sie ist recht schnell und arbeitet bei Verwendung von Stichworten im HTML-Code genauso effektiv wie eine Volltextsuche.
In einem optionalen Logfile können für Statistikzwecke alle Suchworte mitgeloggt werden.

Stichworte sollten in den üblichen Searchengine-Meta-Tags im HTML-Code stehen
<META NAME="DESCRIPTION" CONTENT="Beschreibung der Seite">
<META NAME="KEYWORDS" CONTENT="Stichworte Stichworte Stichworte">

Wer HTML-Seiten mit Frames verwendet, kann Treffer dem Hauptframe zuordnen, benutzen Sie dann in den Unterframes den Meta-Tag: <META NAME="FRAMESTART" CONTENT="index.html">

Tip: Wenn unerwünschte Webseiten in der Suche auftauchen, kann man die Treffer einer anderen Seite zuordnen, siehe bei oben erklärtem FRAMESTART-Meta-Tag.

Dateien:   search.pl ..... das CGI-Suchscript
search.html ... eine einfache HTML-Seite zum Austesten des Scripts

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen. Weiterführende Informationen, sowie eine CGI-Problem-Checkliste finden Sie am Ende dieser CGI-Sammlung.

RANDOM Download Gibt eine zufällige Grafik (oder andere Datei) zurück
Beschreibung: Bei jedem Aufruf wird eine zufällige Grafik zurückgegeben. So kann z.B. eine Webseite mit wechselnder Hintergrundgrafik ausgestattet werden.

Tip: Statt einer Grafik können Sie auch eine zufällige Musik (oder jeden anderen beliebigen Dateityp) zurückgeben.

Dateien:   random.pl ....... das CGI-Zufallscript
random.html ..... eine einfache HTML-Seite zum Austesten des Scripts
gfx1.gif ........ eine Beispielgrafik
gfx2.gif ........ eine Beispielgrafik
gfx3.gif ........ eine Beispielgrafik

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

COUNTER Download Ein Webcounter, mit eingebautem Klauschutz für Webseiten
Beschreibung: Zählt Zugriffe auf Web-Seiten. Zwei Möglichkeiten stehen zur Auswahl: Das Script kann in der HTML-Seite als Grafik (IMG) aufgerufen werden und registriert dann auch evtl geklaute Seiten, Script dazu nur mit absolutem (langem) Pfad aufrufen! Den Seitennamen ans Script anhängen: http://web.server.de/cgi-bin/counter?index.html
Zweite Möglichkeit, das Script kann als SSI (Server Side Include) aufgerufen werden. Es zählt dann Seiten selbst wenn Grafik im Browser ausgeschaltet ist, jedoch gibt es dann leider keinen Klauschutz. Den Seitennamen brauchen Sie hier nicht mehr übergeben.

Tip: Der Klauschutz funktioniert wie folgt: Klaut jemand eine HTML-Seite, dann ruft er sie danach von seinem Rechner auf. Durch die Grafik mit dem absoluten Pfadnamen wird das Counter-Script aufgerufen, das sich dann wiederum den "Dieb" merkt. Es empfiehlt sich also den Aufruf des Counter- Scripts etwas zu tarnen (z.B. an lange Zeile anhängen) damit es nicht gleich bemerkt und entfernt wird.... ein Aufruf reicht schon aus um Diebe (oder Fans) zu erwischen. :)

Dateien:   counter ......... das CGI-Counterscript
counter.html .... eine einfache HTML-Seite zum Austesten des Scripts
counter.shtml ... eine weitere Testseite um Script als SSI aufzurufen

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

SURFTISTIC Download Erstellt eine übersichtliche Statistik aus den Webcounter-Daten (V1.3)
Beschreibung: Wertet die gesammelten Counterdaten aus (siehe letztes Script) und speichert sie im Textformat ab. Das Packet besteht aus zwei Scripts: Mit dem Ersten (surftistic) erhalten Sie eine monatliche Statistik und eine Gesamtstatistik. Ausserdem werden die bestbesuchten Webseiten der letzten beiden Monate grafisch dargestellt, gedacht um den Erfolg neuer Seiten zu messen oder die Navigation zu verbessern. Es werden übrigens nur erlaubte Seiten berücksichtigt, kein Countermisbrauch möglich.
Mit dem zweiten Script (surfhosts) können Sie eine Übersicht der Besucher erstellen lassen. Es werden alle Domains aufgelistet, von denen aus ihre Homepage besucht wurde. Subdomains werden nicht berücksichtigt, es sei denn sie sollen bei bestimmten Domains tiefer aufgeschlüsselt werden.

Tip: Speichern Sie diese Scripts (einschliesslich Konfigurationsdateien) ins Verzeichnis der Counterdaten, Sie haben sie dann bei der Auswertung aller Statistiken schnell zur Hand.
Tip2: Ihre Webseiten müßen Sie zuerst in der entsprechenden Datei (allow) freigeben, alte Statistikdaten können Sie miteinschummeln (base).
Tip3: Möchten Sie die Statistik eines bestimmten Monats neu berechnen, dann löschen Sie den Text "finished" hinter der entsprechenden Monatsstatistik (surftistic.txt) und starten das Script neu.

Dateien:   surftistic.pl ............. das CGI-Statistikscript
surftistic.allow.txt ...... erlaubte Webseiten (Konfiguratuion)
surftistic.base.txt ....... Startwerte für Statistik (Konfiguration)
surftistic.txt ............ die erzeugte Statistik
surftistic_warnings.txt ... Statistikwarnungen (geklaute Seiten)
 
surfhosts.pl .............. das CGI-Besucher-Statistikscript
surftistic_hosts.txt ...... die erzeugte Host-Statistik

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

HTMLCONVERT Download Konvertiert HTML-Seiten und CGIs für andere Webserver (V1.1)
Beschreibung: Diese Scripte sind für alle Hompagebastler gedacht, die ihre HTML-Seiten und Scripte zuhause bearbeiten und ab und zu die neusten Versionen auf den Webserver kopieren.
Die HTML-Konvertierung macht alle notwendigen Änderungen an CGI-Pfadnamen, berücksichtigt werden: Grafiken, Links, Formulare, Frames, Meta-Refresh und ServerSideIncludes.
Die CGI-Konvertierung macht alle notwendigen Änderungen in CGI-Variablen, berücksichtigt werden Pfade und URLs, genaueres entnehmen Sie dem Script.

Tip: Speichern Sie diese Scripte in ein eigenes Verzeichnis, es sind Werkzeuge die nur für Sie (und beteiligte Webbastler) ausführbar sein sollten.
Tip2: Bei Änderungen an der Homepage kopieren Sie die gewünschten Seiten/Scripte ins new-Verzeichnis und rufen die Konvertierung auf, danach können Sie die Dateien direkt mit FTP auf den Webserver kopieren.

Dateien:   htmlconvert.pl ... Konvertiert HTML-Seiten
cgiconvert ....... Konvertiert CGI-Scripte

Allgemeines: Die Scripte sind in Perl und speziell für das Betriebssystem Unix geschrieben. Sie müßen die Scripte zunächst noch an ihren Webserver angleichen (->CGI-Problem-Checkliste).

Tips & Links

*  Learning by doing. Am besten lernt man durch praktische Erfahrungen, einfach herumspielen und ausprobieren.
*  HTML-Befehle sind nicht case-sensitive: Gross/Kleinschreibung spielt also keine Rolle. Zur besseren Übersicht sollten sie jedoch Grossschreibung bei den Befehlen bevorzugen.
  HTML-Dateien haben die Endung ".html" (notfalls auch ".htm"), ausserdem sollte eine Datei nicht grösser als 50 KB sein, für Grafiken empfiehlt es sich ein eigenes Unterverzeichnis anzulegen.
*  Solange Sie an einer Web-Seite arbeiten, können Sie bei Ihrem Browser (z.B. Netscape) "Preferences/Advanced - Auto Load Images" abschalten. Die Seiten werden beim Reload wesentlich schneller aufgebaut, da die Grafiken aus dem Cache geholt werden! Grafiken nachladen kann man indem man ins Frame (Fenster) klickt und auf "Images" in der Buttonleiste drückt.
Falls Grafiken oder Frames nicht richtig nachgeladen werden, beim Reload gleichzeitig auf Shift (Umschalttaste) drücken! Testen Sie Ihre Seiten mit verschiedenen Fensterbreiten und verschiedenen Webbrowser aus (Netscape und Internet Explorer, UNIX-Freaks auch Lynx).
*  Nehmen Sie sich nicht zuviel vor! Erstellen Sie lieber ein-zwei gute Seiten und halten Sie diese auf dem Laufenden.
*  Wie geht's weiter? Am Besten ab und zu bei anderen vorbeischauen und einen Blick in deren Sourcecode werfen. Fragen Sie auch andere Homepagebastler oder lesen Sie ein Buch ihrer Wahl (siehe weiter unten).

*  HTML Kompendium, HTML Einführung: zwei umfangreiche HTML-Anleitungen
*  Mat's Script Archive, CPAN-Archive: weitere CGI-Sammlungen und Perl-Programme
*  Vodoo's JavaScript Page: eine JavaScript Anleitung mit vielen Beispielen
*  Unix Kurzanleitung: Eine Einführung in das Betriebssystem Unix
*  Home.Pages: hier kann man seine Homepage eintragen und eine kurze Adresse (URL) bekommen
*  Kostenlose Homepages (Geocities), WebCounter, Webhits: Speicherplatz und Webcounter ganz umsonst
*  Golden HTML Rules: für Homepagebastler wichtiger als Freund/Freundin oder Hund !  :)
*  Newsgroup de.comm.infosystems.www.authoring: Zum Fragen stellen und Infos austauschen
*  Newsgroup de.comp.lang.javascript, de.comp.lang.perl: Infos für Script-Programmierer
 
Bücherempfehlungen für Web-Bastler und Programmierer: (TIP)
"CGI Programmierung", Shishir Gundavaram,O'Reilly 1996, ISBN 3-930673-43-6
"JavaScript: Einführung, Programmierung, Referenz", Stefan Koch, dpunkt-Verlag 1997, ISBN 3-920993-64-0
"Die Sprache des Web: HTML4", Robert Tolksdorf, dpunkt-Verlag 1997, ISBN 3-920993-77-2

FAQs (Frequently Asked Questions)

Eigene Webseiten basteln?
Kein Problem, für den Anfang benötigen Sie lediglich zwei Dinge: erstens einen einfachen Texteditor (z.B. bei Win95 im Startmenü Programme/Zubehör/Editor) und zweitens einen Webbrowser (z.B. Netscape oder Internet Explorer). Basteln Sie eine kleine Seite, so wie im ->HTML Crashkurs angegeben... speichern Sie diese Seite in ein beliebiges Verzeichnis (z.B. bei Win95 in C:\Eigene Dateien). Zum Anschauen die selbst gemachte HTML-Seite im Webbrowser angeben (File - Open). Nach Änderungen an der HTML-Seite im Webbrowser auf Reload drücken.
Ihre so erstellte Homepage kopieren Sie in den Speicherplatz, den ihr Provider/Universität/Schule zur Verfügung gestellt hat. Fragen Sie bitte dort nach und Sie erfahren so auch unter welcher Adresse ihre Homepage zu erreichen ist. Zum Kopieren der Homepage benutzen Sie z.B. ein sogenanntes FTP-Programm.
Was sind CGI-Scripte?
Kleine Programme die vom Webserver ausgeführt werden. CGIs sind eine verbreitete Möglichkeit Web-Seiten vielseitig zu machen und ihnen einen interaktiven Touch zu geben. Das Erstellen eigener CGIs ist eher etwas für Fortgeschrittene, lesen Sie auch den ->CGI-Crashkurs.
Kann ich feststellen wieviele meine Homepage besuchen?
Ja, entweder stellt Ihnen der Provider das WWW-Logfile zur Verfügung... oder auch mit Hilfe von sogenannten Access-Countern, das sind kleine CGI-Scripte (siehe letzte Frage) welche Zugriffe auf die Homepage zählen. Sie können sich die Besucheranzahl direkt auf der Seite anzeigen lassen, oder unsichtbar zählen und dann auf einer extra Seite anzeigen lassen.
Beide Alternativen liefern keine ganz genauen Daten, jedoch kann man sehr gut erkennen wie beliebt Webseiten eigentlich sind. Erkundigen Sie sich ob bei Ihrem Provider/Rechenzentrum ein Logfile/Access-Counter bereits zur Verfügung steht oder verwenden Sie einen beliebigen Webcounter (siehe ->Links). Als Fortgeschrittener können Sie sich auch mit Hilfe der CGI-Sammlung dieser Anleitung schnell selbst einen ->Counter programmieren.
Kann ich mehr Abstand zwischen Wörtern und Grafiken erreichen?
Eine Eigenart von HTML-Dokumenten ist, daß aus mehreren Leerzeichen immer ein Leerzeichen gemacht wird. Möchten Sie mehr Freiraum zwischen Wörter oder Grafiken, dann muss man tricksen:
Die einfachste Lösung ist das Tag für Leerzeichen &nbsp; Eine andere das Textstück mit <PRE> ... </PRE> zu umschließen, dieser Abschnitt wird dann genau so ausgegeben wie er im Texteditor erscheint, also auch mit allen Leerzeichen. Leider ist das Ergebniss von <PRE> nicht wirklich besonders ansprechend, denn der Text wird nur in Schreibmaschienenschrift ausgegeben ähnlich zu <TT> (siehe auch:
Die wichtigsten HTML-Befehlen).
Fortgeschrittene können mit Hilfe von Tabellen und durchsichtigen Füllgrafiken Abstand zwischen Text und Grafiken bringen, oder auch den Bildschirm beliebig anordnen.
Kann ich festlegen wer bestimmte (geheime) Webseiten besuchen darf?
Kein Problem, Sie können jedem User ein eigenes Passwort zuweisen. Jedoch brauchen Sie dazu ein paar Computerkenntnisse: Kopieren Sie die entsprechenden Webseiten in ein extra Unterverzeichnis und legen Sie darin die beiden Dateien .htaccess und .htpasswd (für alle lesbar) an. Die Datei .htaccess hat das folgende Format:
AuthUserFile /home/www/public_html/.htpasswd
AuthGroupFile /dev/null
AuthName Top-Secret
AuthType Basic
require valid-user

Gleichen Sie den Pfadnamen in der ersten Zeile entsprechend an. Die Passwörter liegen in der Datei .htpasswd verschlüsselt vor, benutzen Sie das folgende C-Programm dazu: htpasswd.c (z.B. unter UNIX mit gcc kompilieren). Falls Sie alles richtig gemacht haben, wird ab sofort jeder User im Webbrowser nach Name und Passwort gefragt!
Wie wird Musik auf meiner Homepage abgespielt?
Gerade bei Begrüßungsseiten recht beliebt: Sie können auf Web-Seiten automatisch Musik im Hintergrund abspielen lassen (Soundkarte notwendig). Zur Zeit können dazu nur Midi-Dateien (Endung .mid) verwendet werden, sie sind recht klein, da in ihnen nur die reinen Noten und Instrumentendaten gespeichert sind. Mit den folgenden Zeilen wird Musik von Netscape und Internet Explorer abgespielt:
<EMBED SRC="bsp.mid" WIDTH=2 HEIGHT=1 AUTOSTART=TRUE HIDDEN=TRUE ALT="">
<NOEMBED><BGSOUND SRC="bsp.mid" ALT=""></NOEMBED>

Falls die Musik jetzt noch immer nicht im Webbrowser zu hören ist, muß man in seinem Webverzeichnis die Datei .htacess (für alle lesbar) anlegen, bzw folgende Zeile hinzufügen:
AddType audio/midi   mid midi
Bitte beachten Sie, daß viele Surfer ständige Hintergrundmusik als nervend empfinden. Möglichst wenig benutzen, nur kleine Midi-Dateien verwenden (z.B. mit Midi-Editor verkleinern) und keinem verraten woher die Idee mit der Hintergrundmusik war! *grins*
Wie erreicht man, daß Links nicht unterstrichen werden?
Normalerweise kann man im Webbrowser einstellen ob Links (->A HREF-Tag) unterstrichen werden oder nicht, doch gerade bei Navigationsmenus sehen unterstichene Links oft störend aus. Mit den folgenden Zeilen kann man das verhindern (neuer Webbrowser ist Voraussetzung, Befehle vor dem BODY-Tag einfügen):
<STYLE TYPE="text/css"><!--
A:link {text-decoration: none}
--></STYLE>
Wie wird automatisch eine weitere Seite nachgeladen?
Kleine Diashows oder von einer Startseite automatisch zur nächsten Seite zu springen sind praktische Spielereien. Dazu z.B. die folgende Zeile in den ->HTML-Header setzen (dort wo auch Title festgelegt wird):
<META HTTP-EQUIV=REFRESH CONTENT="15;URL=pirateworld.html">
Die angegebene Seite (pirateworld.html) wird nach 15 Sekunden geladen.
Wie wird meine Homepage in Searchengines aufgenommen?
Wahrscheinlich sind Sie längst aufgenommen, probieren Sie es einmal aus: Geben Sie z.B. bei AltaVista ihren (Spitz-)Namen ein.... überrascht? Sogenannte Searchrobots durchsuchen automatisch Webseiten und merken sich den Inhalt. Sie können sich auch manuell in einen Searchengine eintragen, beispielsweise bei Altavista auf Add-URL klicken. Es reicht dort eine Startseite anzugeben, der Searchrobot durchsucht dann auch ihre Unterseiten.
Fügen Sie in ihre Seiten folgende Tags im ->HTML-Header ein (dort wo auch Title festgelegt wird):
<META NAME="DESCRIPTION" CONTENT="Die Gyroshund Homepage.... mit Online-Bestellung!">
<META NAME="KEYWORDS" CONTENT="Tomaten Tsatziki lecker essen">

Die erste Zeile ist eine kurze Beschreibung, mit der Ihre Seite im Searchengine auftaucht. In der zweiten Zeile können Sie Suchworte definieren (durch Leerzeichen getrennt), zusammen mit der Beschreibung und den 10 häufigsten Wörtern im Text kann darüber Ihre Seite gefunden werden.
Woher bekomme ich ein Gästebuch?
Das ist eindeutig eine Sache für Fortgeschrittene, vielleicht lassen Sie sich von jemandem helfen, der sich damit auskennt. Am einfachsten ist es sich den Inhalt eines Formulars per Email zuschicken zu lassen und dann die Änderungen am Gästebuch manuell vorzunehmen, dazu ein Beispiel:
<FORM METHOD=POST ACTION="mailto:user@mymail.de"
ENCTYPE="text/plain" TITLE="Eintrag ins Gaestebuch">
Name & Email:<BR><INPUT NAME="Name" SIZE=30> <INPUT NAME="Email" SIZE=30><BR>
<TEXTAREA NAME="Text" ROWS=6 COLS=75 WRAP=HARD></TEXTAREA><BR>
<INPUT TYPE=SUBMIT VALUE="Abschicken"><BR>
</FORM>

Doch wenn Sie etwas mit Programmierung (z.B. in Perl oder C) vertraut sind, dann können Sie sich (fast) genauso schnell mit Hilfe der CGI-Sammlung dieser Anleitung ein vollautomatisches ->Gästebuch erstellen.
Was soll ich tun, wenn meine CGI-Scripte nicht funktionieren? (TIP)
Falls statt der erwünschten Ausgabe der Sourcecode des Scripts angezeigt wird, dann sind ->CGIs für Sie nicht freigegeben oder Sie haben es nicht über den Webserver abgerufen (von der lokalen Festplatte funktioniert es nicht). Bei Ihrem Provider/Rechenzentrum CGIs beantragen (falls möglich)... fragen Sie dort auch gleich nach dem passenden CGI-Verzeichnis und CGI-Pfad.
Wenn jedoch ein Server-Error gemeldet wird, sollten Sie folgende Problem-Checkliste durchgehen:
* Sind die Zugriffsrechte des CGI-Scripts richtig gesetzt? Lese- und Ausführrechte entsprechend setzten (z.B. chmod a+rx dateiname), unter AFS (Andrew File System) auch die AFS Rechte (siehe Unix-Kurzanleitung).
* Stimmen bei Perl-Scripts der Pfad in der ersten Zeile? Vergleichen mit dem Unix-Befehl which perl.
* Haben Sie das Script im Webbrowser mit der richtigen Adresse aufgerufen? Nicht immer ähnelt die CGI-Adresse der Homepage-URL, erkundigen Sie sich bei Ihrem Provider/Rechenzentrum.
* Sind auch keine störenden Zeichen im Script? Wenn Sie auf Windows erstellte Scripte nach Unix übertragen, bei FTP immer den ASCII-Mode angeben, ansonsten bleiben Steuerzeichen am Zeilenende (Newline) übrig. Wenn Sie eine Datei am Unix-Prompt anschauen (less dateiname) und ^M an den Zeilenenden sehen... entfernen Sie diese oder übertragen Sie die Datei noch einmal korrekt. Übrigens: HTML-Dateien stören diese extra Zeichen nicht.
* Ist beim Script selbst ein Fehler aufgetreten? Das Script (mit genau den selben Parametern) von Hand aufrufen, also beispielsweise den Dateinamen am Prompt eingeben. Wenn statt der gewünschten Ausgabe ein Warning oder Error angezeigt wird, eventuelle Programm oder Syntaxfehler beseitigen. In der Praxis ist dies die häufigste Fehlerquelle.
Wenn man übrigens bei Perl-Scripts in der ersten Zeile vorrübergehend " -w" anhängt, bekommt man alle möglichen Fehlerquellen angezeigt.
* Wenn Sie in Ihren Scripten auf Dateien zugreifen, achten Sie darauf daß die Zugriffsrechte richtig gesetzt sind: Eine Datei die von CGI-Scripten gelesen wird, als auch ihr Verzeichnis müßen für alle lesbar sein (also nicht nur für Sie). Wenn Sie mit CGI-Scripten in Dateien schreiben, muß die Datei und ihr Verzeichnis zusätzlich für alle schreibbar sein. Natürlich müssen grundsätzlich alle Verzeichnisse mit denen CGI-Scripte arbeiten zugreifbar sein (lookup), das heisst in den höhergelegenen Verzeichnissen muß Zugriffsrecht für alle gesetzt sein. Zum Testen können Sie sich beispielsweise als ein anderer User einloggen und testen ob die Dateien wie gewünscht lese/schreibbar sind. In der Praxis sind fehlende Zugriffsrechte die zweit häufigste Fehlerquelle.
* In seltenen Fällen (nicht bei Anfängern) kann auch ein installierter CGI-Wrapper Schuld sein, dieser begrenzt Speicherverbrauch und Prozessorzeit. Bei Überschreitung bricht er das schuldige CGI-Script einfach mit einem Server-Error ab. Ändern Sie das Script so, daß es speicherschonender arbeitet (beispielsweise Dateien zeilenweise einlesen oder Arrays mit undef wieder freigeben).
Welche Möglichkeiten für dynamische Webseiten gibt es außer CGI?
Da gibt es z.B. Dynamic HTML, es wird benutzt um HTML und einiges anderes zu steuern und zu koordinieren.
Sehr verbreitet ist JavaScript, eine vielseitige Scriptsprache (die mit echtem Java nix zu tun hat). Geeignet für Eingabe-Überprüfungen und allerlei praktischen Spielereien die direkt in HTML-Seiten eingebaut und dann vom Webbrowser ausgeführt werden. Gerade JavaScript ist eine ideale Ergänzung zu CGIs, vielleicht machen Sie sich damit einmal vertraut (weiterführende Informationen unter ->Links).
Java ist eine neue Programmiersprache und bietet nicht nur Möglichkeiten für interaktive Web-Seiten, sondern man kann damit auch völlig eigenständige Programme entwickeln. Die Entwicklung von Java-Applikationen ist recht aufwendig. ActiveX ist Microsofts Antwort auf Java und versucht damit einen ähnlichen Weg zu verfolgen.
Plugins sind kleine Programme, die den Browser aufrüsten um mit bisher unbekannten Formaten etwas anfangen zu können. Es gibt sie in großer Variation z.B. um damit Audio- oder Videodaten besser darstellen zu können. Animated GIFs sind wahrscheinlich die einfachsten dynamischen Elemente. Es sind ganz normale Grafiken im GIF-Format, in denen einzelne Animationsschritte abgespeichert sind. Sie werden von jedem Browser (der nicht uralt ist) abgespielt.
All die eben aufgezeigten Möglichkeiten sind Erweiterungen des Webservers, zumindest werden Sie von ihm ausgeführt. Im Gegensatz dazu werden CGIs und ActiveServerPages (man erkennt Sie an der Endung ASP) vom Webserver direkt ausgeführt. ActiveServerPages sind eine Microsoft Eigenheit, genauer gesagt sind sie eine Variante der erwähnten ->Server Side Includes.
Wie komme ich an weitere CGI-Scripte?
Wenn Sie in der ->CGI-Sammlung dieser Anleitung nicht alles finden sollten, dann versuchen Sie es einmal bei den CGI-Sammlungen die unter ->Links aufgeführt sind... oder schreiben sie uns eine Email.
Kann ich mir diese Anleitung auch ausdrucken? (TIP)
Klar, einfach im Menü auf "Print" drücken (evtl. vorher mit der Maus in dieses Fenster klicken), die entsprechenden CGI-Scripte laden Sie sich per Mausklick herunter. Ausserdem können Sie sich diese Anleitung als Offline-Version für zuhause herunterladen (siehe unten), einschließlich aller Grafiken, Scripten und einer reinen Textversion.

And never forget:

Wissenschaftler haben es endlich gelöst: Spät nachts, der Kühlschrank ist leer,
die Freundin (oder Freund) weggelaufen, die Lieblings TV-Serie verpasst... verdammt,
nur noch eine Chipstüte, was kann uns da noch retten? HOMEPAGE basteln !!!
 

Schurky der Hai
Okay, das war's!
Jetzt können Sie sich auf Ihre Homepage stürzen, mit allen nötigen Informationen sind Sie ausgestattet. Diese Anleitung gibt es übrigens als Offline-Version Download oder unter http://html.home.pages.de

Viel Spass beim Basteln! Moak thx to Tim Berners-Lee, CERN and Larry Wall


  Noch Fragen?    Neu bei uns?
Ready or not?
© Februar 1998
Mark Seuffert (Moak)
PirateWorld