Name:
findlink (CGI-Skript)

Syntax:
findlink

Beschreibung:

findlink ist ein CGI-Skript, das von einem WWW-Server gestartet wird. findlink wird durch die Environment-Variablen QUERY_STRING und PATH_TRANSLATED gesteuert. Die Variablen werden vom WWW-Server entsprechend einer WWW-Anfrage gesetzt.

findlink durchsucht alle Verweise eines HTML-Dokumentes nach einem bestimmten Suchmuster. Der Name des Dokumentes wird von findlink in PATH_TRANSLATED, das Suchmuster in QUERY_STRING erwartet.

Erfolgreiches Suchen
Hat findlink einen oder mehrer Verweise gefunden, die dem Suchmuster entsprechen, so wird ein HTML-Dokument erstellt, in dem die gefundenen Verweise eingetragen werden. Das erstellte Dokument setzt sich aus drei Einzeldokumenten zusammen. Der Dokumentanfang und das Dokumentende werden je aus einer Datei gelesen. Der Mittelteil setzt sich aus den gefunden Verweisen zusammen, er wird von findlink erstellt. Der Name der Datei für den Dokumentanfang bzw. das Dokumentende ergibt sich aus dem Dateinamen in PATH_TRANSLATED. An diesen Namen wird die Endung «s._head» für den Dateinamen des Anfangs bzw. «s._body» für den Dateinamen des Endes angehängt.

Dokumentanfang und -ende müssen zusammen ein gültiges HTML-Dokument ergeben.

Beispiel:

Mit PATH_TRANSLATED = protein.html

ergibt sich der Dateiname für den Dokumentanfang zu protein.html.s_head
und für das Dokumentende zu protein.html.s_body.

Jeweils ein Beispiel ist hier zu finden: protein.html.s_head und protein.html.s_body.

Erfolgloses Suchen
Konnte findlink keine Verweise finden, die dem Suchmuster entsprechen, oder trat ein Fehler auf, dann wird eine entsprechende Meldung im HTML-Format ausgegeben.
Übergabe des Suchmusters an findlink
findlink erwartet das Suchmuster muster in der Environment-Variable QUERY_STRING. Es muß dabei in der folgenden Form in QUERY_STRING eingetragen sein:

QUERY_STRING = search=muster

Suchvorgang
Der Suchvorgang beginnt, sobald findlink das zu durchsuchende HTML-Dokument aus PATH_TRANSLATED und das Suchmuster muster aus QUERY_STRING ermittelt hat. Innerhalb des Dokumentes werden alle Verweise überprüft, ob sie das Muster muster enthalten.

Ein HTML-Verweis hat die Form: <A HREF = "url">verweisname</A>

Die Suche innerhalb des Verweises ist erfolgreich, wenn innerhalb von verweisname das Suchmuster muster gefunden wird. Der gesamte Verweis <A HREF = "url">verweisname</A> wird in die Liste der bereits gefundenen Verweise aufgenommen. Nach Beendigung der Suche (alle Verweise sind durchsucht) wird die Liste unter der in «Erfolgreiches Suchen» beschriebenen Art und Weise ausgegeben.

verweisname kann aus beliebigem ASCII-Text bestehen, darf aber keine HTML-Tags enthalten.

WWW-Schnittstelle
findlink wird vom WWW-Server als CGI-Skript gestartet, wenn von einem WWW-Client eine entsprechende Anfrage in Form eines URLs kommt. Der URL enthält den Namen des Dokumentes, das durchsucht werden soll, und das Suchmuster. Der Server setzt anhand des URLs die beiden Environment-Variablen QUERY_STRING und PATH_TRANSLATED und startet findlink. Damit dieser Mechanismus funktioniert, muß der URL den Aufbau haben:

http://host/cgi-verzeichnis/findlink/dokumentname?search=suchmuster

host
Name des Rechners auf dem der WWW-Server läuft.
cgi-verzeichnis
Verzeichnis in dem sich die CGI-Skripte des Servers befinden. Der Server muß dazu passend konfiguriert sein.
dokumentname
Gibt den Namen des zu durchsuchenden Dokumentes an.
suchmuster
Das Muster nachdem die Verweise in dokumentname durchsucht werden.

Beispiel:

http://www.chemie.fu-berlin.de/cgi-bin/dhzb/findlink/user/pleiss/protein_all.html?search=Desmin

Solch ein URL muß nicht vom Anwender eingegeben werden. Durch Bereitstellung eines HTML-Formulars, das der Benutzer über seinen Client abruft, besteht eine komfortable Möglichkeit auf findlink zuzugreifen.

Das Formular enthält ein Eingabefeld, in das der Anwender das Suchmuster einträgt, und einen Absendeknopf (Bestätigung). Nach Betätigung des Knopfes wird das eingegebene Suchmuster an den WWW-Server verschickt. Der Server startet findlink, das gemäß der Suchanfrage ein HTML-Dokument erstellt. Das Dokument wird als Antwort auf die Suchanfrage an den WWW-Client gesendet.

Beispiel für ein solches Formular:

<FORM ACTION = "http://www.chemie.fu-berlin.de/cgi-bin/dhzb/findlink/user/pleiss/protein_all.html">

Please enter the keyword

<INPUT TYPE = text NAME = "search">

<INPUT TYPE = submit>

</FORM>

Der URL http://www.chemie.fu-berlin.de/cgi-bin/dhzb/findlink/user/pleiss/protein_all.html gibt an, welches CGI-Skript nach Beendigung der Formulareingabe, die Eingabe auswertet. Die Eingabe kann durch Betätigung des Submit-Buttons beendet werden. Der Knopf wird erzeugt durch das Tag:

<INPUT TYPE = submit>.

Das Formular hat ein Texteingabefeld, das erstellt wird mittels:

<INPUT TYPE = text NAME = "search">.

Über das Attribut NAME = "search" wird dem Feld der Name search zugewiesen.

Der Benutzer trägt in dieses Eingabefeld das Suchmuster muster ein und drückt den Submit-Button. Der Browser erstellt den Term search=muster und hängt ihn an obigen URL, durch ? abgetrennt, an. Es ensteht der URL:

http://www.chemie.fu-berlin.de/cgi-bin/dhzb/findlink/user/pleiss/protein_all.html?search=muster.

Dieser URL entspricht genau der oben geforderten Form, das Formular stellt somit eine bequeme Schnittstelle zu findlink dar.

Also:
damit dieser Mechanismus funktioniert, muß das Texteingabefeld, in das das Suchmuster eingetragen wird, den Namen search besitzen.

Siehe:

Näheres zu WWW und CGI ist zu finden beim:


Zurück zum Inhaltsverzeichnis

Stefan Sander, sanderst@cs.tu-berlin.de, 10/95