In der Web-Entwicklung gibt die CGI-Variable
HTTP_Referer Auskunft darüber, von welcher Webseite der User auf die aktuelle
Webseite gekommen ist. Im Zusammenhang mit einer Feedback-Datenbank, in
der ein User Kommentare zu einer Webseite hinterlassen kann, ist diese
Angabe existentiell.
Um in Lotus Domino auf den HTTP_Referer
zuzugreifen, muss lediglich ein Feld mit dem gleichen Namen in die Maske
aufgenommen werden. Der erste Ansatz wäre eigentlich den Feldtype auf "Berechnet
beim Anlegen" zu setzen und schon müsste die Aufgabe erfüllt sein.
Leider greift dieser Ansatz zu kurz.
Zu dem Zeitpunkt wenn das Feedback-Dokument
im Browser zum Ausfüllen angezeigt wird, steht im HTTP_Referer wie erwartet
die URL, auf deren Webseite der Feedback-Knopf betätigt worden war. Wenn
allerdings das Feedback-Formular vom Browser zum Server zum Speichern geschickt
wird, wird vor dem Speichern der HTTP_Referer neu berechnet. Somit steht
als URL, auf die sich das Feedback bezieht, in dem Feedback-Dokument immer
nur die URL der Feedback-Seite selbst aber nicht die ursprüngliche URL.
Nach einigem Herumprobieren habe ich
eine relativ einfache Lösung gefunden. In der Maske gibt es ein Feld "Page",
das vom Type "Berechnet beim Anlegen" ist, mit einer leeren Formel
und das im Editiermodus verborgen ist. Statt dessen wird im Editiermodus
"Berechneter Text" als Pass-thru HTML mit folgender Formel ausgegeben.
"<input name=\"Page\"
value=\"" + HTTP_Referer + "\" readonly >"
Wenn die Webseite auf dem Server aufbereitet
wird, um sie zum Browser zum Ausfüllen zu schicken, hat das Feld HTTP_Referer
zu dem Zeitpunkt noch den gewünschten Wert hat. Der berechnete Text schreibt
den Wert als verstecktes Feld mit dem gleichen Feldname in den HTML-Code,
wie das Feld in der Maske. Überträgt der Browser die Eingaben zum Server
zum Speichern, wird das versteckte Feld mit übertragen und auf Seiten des
Servers nicht noch einmal neu berechnet.