/4DSTATS, /4DHTMLSTATS, /4DCACHECLEAR und /4DWEBTEST. Damit erhalten Sie Informationen über die Funktionsweise Ihrer 4D Web Site. Weitere Informationen dazu finden Sie im Abschnitt Information über die Web Site.
/4DWSDL, um den Zugriff auf die Deklarationsdatei der Web Services zu erlauben, die auf dem Server veröffentlicht werden. Weitere Informationen dazu finden Sie im Abschnitt Befehle für Web Services (Server) und im Handbuch 4D Designmodus im Abschnitt Seite Web/ Web Services.
Über diese URL können Sie ein HTML Objekt (Text, Schaltfläche...) mit einer 4D Projektmethode verbinden. Der Link lautet /4DACTION/MyMethod/Param, wobei MyMethod der Name der auszuführenden 4D Projektmethode ist, wenn auf ein Link geklickt wird, Param ein optionaler Textparameter, der der Methode in $1 übergeben wird (siehe nachfolgenden Abschnitt “Textparameter für über URLs aufgerufene 4D Methoden”). Empfängt 4D die Anfrage /4DACTION/MyMethod/Param, wird – sofern vorhanden – die Datenbankmethode On Web Authentication aufgerufen. Gibt diese Wahr zurück, wird die Methode MyMethod ausgeführt. 4DACTION/ kann einer URL in einer statischen Web Seite zugewiesen werden. Die Syntax der URL muss lauten:
Die Projektmethode MyMethod sollte in der Regel eine "Response" zurückgeben, z.B. über WEB SEND FILE oder WEB SEND BLOB, etc. eine HTML Seite senden. Achten Sie auf eine möglichst kurze Ausführung, um den Browser nicht zu blockieren.
Hinweis: Eine über 4DACTION aufgerufene Methode darf keine Oberflächenelemente aufrufen (DIALOG, ALERT...).
Achtung: Damit eine 4D Methode mit der URL 4DACTION/ ausgeführt werden kann, muss die Option "Zugang per 4D HTML Tags und URLs (4DAction...)" markiert sein. Sie ist im Dialogfenster Methode-Eigenschaften enthalten und standardmäßig inaktiv. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der Verbindung.
Dieses Beispiel weist die URL 4DACTION/ einem HTML Bildobjekt zu, um auf der Seite ein Bild dynamisch anzuzeigen. Sie fügen in einer statischen Seite folgende Anweisungen ein:
<IMG SRC="/4DACTION/PICTFROMLIB/1000">
Die Methode PICTFROMLIB lautet:
C_TEXT($1) // Dieser Parameter muss immer angegeben sein C_PICTURE($PictVar) C_BLOB($BlobVar) C_LONGINT($Number) // Wir finden die Bildnr. im String $1 wieder $Number:=Num(Substring($1;2;99)) GET PICTURE FROM LIBRARY($Number;$PictVar) PICTURE TO BLOB($PictVar;$BlobVar;".gif") WEB SEND BLOB($BlobVar;"Pict/gif")
Der 4D Web Server ermöglicht auch “gepostete” Formulare zu verwenden. Das sind statische HTML-Seiten, die Daten an den Web Server senden. Sie müssen vom Typ POST sein und die Aktion des Formulars muss zwingend mit /4DACTION/MethodName starten.
Hinweis: Ein Formular lässt sich über zwei Methoden übertragen, beide sind mit 4D verwendbar:
POST wird in der Regel verwendet, um im Web Server hinzugefügte Daten in der Datenbank hinzuzufügen.
GET wird in der Regel verwendet, um im Web Server Daten anzufordern, die aus einer Datenbank stammen.
Erhält der Web Server ein "gepostetes" Formular, ruft er die Datenbankmethode On Web Authentication auf (wenn sie existiert). Gibt sie Wahr zurück, wird die Methode MethodName ausgeführt. In dieser Methode müssen Sie den Befehl WEB GET VARIABLES aufrufen, um die Namen und Werte aller Felder wiederzufinden, die in einer an den Server übertragenen HTML Seite enthalten sind.
Hinweis zur Kompatibilität: In konvertierten Anwendungen wird, wenn im Seite Kompatibilität die Option "Automatische Variablenzuweisung" markiert ist, zuerst die spezielle Projektmethode COMPILER_WEB (wenn vorhanden) aufgerufen, dann die Datenbankmethode On Web Authentication. 4D finden die im Formular vorhandenen HTML Felder und füllt die 4D Variablen in der aufgerufenen Methode mit deren Inhalt, wenn sie den denselben Namen haben. Diese Funktionsweise ist überholt. Weitere Informationen dazu finden Sie im Abschnitt 4D Objekte mit HTML Objekten verbinden.
Die HTML Syntax für das Formular lautet:
Um die Aktion in einem Formular zu definieren:
<FORM ACTION="/4DACTION/MethodName" METHOD=POST>
Um ein Feld in einem Formular zu definieren:
<INPUT TYPE=Field type NAME=Field name VALUE="Standardwert">
4D setzt für jedes Feld im Formular den Wert des Feldes in die Variable mit demselben Namen.
In einer gestarteten 4D Web Datenbank sollen Browser in Datensätzen über eine statische HTML Seite suchen können. Diese Seite lautet “Suchen.htm”. Die Datenbank enthält weitere statische Seiten, über welche Sie z.B. das Suchergebnis anzeigen können (“Ergebnisse.htm”). Der Typ POST wurde sowohl der Seite als auch der Aktion /4DACTION/SUCHE zugewiesen.
Tippen Sie zur Dateneingabe im Dateneingabebereich “ABCD” ein, prüfen Sie die Option "Ganzes Wort" und bestätigen Sie durch Klicken auf die Schaltfläche Suchen.
C_TEXT($1) //zwingend für komplilierten Modus C_LONGINT($vName) C_TEXT(vNAME;vLIST) ARRAY TEXT($arrNames;0) ARRAY TEXT($arrVals;0) WEB GET VARIABLES($arrNames;$arrVals) //Alle Variablen des Formulars finden $vName:=Find in array($arrNames;"vNAME") vNAME:=$arrVals{$vName} If(Find in array($arrNames;"vEXACT")=-1) //Wurde die Option nicht markiert vNAME:=VNAME+"@" End if QUERY([Jockeys];[Jockeys]Name=vNAME) FIRST RECORD([Jockeys]) While(Not(End selection([Jockeys]))) vLIST:=vLIST+[Jockeys]Name+" "+[Jockeys]Tel+"<BR>" NEXT RECORD([Jockeys]) End while WEB SEND FILE("Ergebnisse.htm") //Die Liste zum Formular Ergebnisse.htm senden //mit einer Referenz auf die Variable vLIST //zum Beispiel <!--4DHTML vLIST--> //... End if
Die URL 4DCGI/ entspricht keiner Datei, ihre Aufgabe ist lediglich, 4D mit der Datenbankmethode On Web Connection aufzurufen. Der Parameter “<action>” kann Information jeglicher Art enthalten.
Mit dieser URL können Sie eine beliebige Aktion durchführen. Sie müssen lediglich den Wert von $1 in der Datenbankmethode On Web Connection oder in einer ihrer Untermethoden prüfen und 4D die entsprechende Aktion ausführen lassen. Sie können z.B. eigene statische HTML Seiten einrichten, um Datensätze hinzuzufügen, zu suchen oder zu sortieren bzw. GIF Bilder on-the-fly erstellen. Anwendungsbeispiele zu dieser URL finden Sie unter den Befehlen _o_PICTURE TO GIF und WEB SEND HTTP REDIRECT.
Am Ende einer Aktion muss über Befehle, die Daten senden, eine Antwort zurückgegeben werden (WEB SEND FILE, WEB SEND BLOB, etc.).
Warnung: Achten Sie darauf, dass die kürzest mögliche Aktion ausgeführt wird, um den Browser nicht unnötig warten zu lassen.
4D sendet Textparameter zu jeder 4D Methode, die über spezielle URLs (4DACTION/ und 4DCGI/) aufgerufen wird. Dabei gilt folgendes:
Auch wenn Sie diesen Parameter nicht verwenden, müssen Sie ihn explizit mit dem Befehl C_TEXT angeben. Denn sonst treten Runtime Fehler auf, wenn Sie über das Web auf eine kompilierte Datenbank zugreifen. Die Meldung kann lauten wie folgt: "Fehler im dynamischen Code Ungültige Parameter in einem EXECUTE Befehl Methode Name Zeile Nr. Beschreibung: [<Datum und Zeit>] Dieser Runtime Fehler tritt auf, wenn der Textparameter $1 in der 4D Methode, die durch Klick auf den HTML Link aufgerufen wird, nicht deklariert wurde. Da der Ausführungskontext die aktuelle HTML Seite ist, bezieht sich der Fehler nicht auf die Methodenzeile. Solche Fehler werden durch explizites Deklarieren des Textparameters $1 behoben:
//Projektmethode M_SEND_PAGE C_TEXT($1) // Dieser Parameter MUSS explizit deklariert werden //... WEB SEND FILE($mypage)
Der Parameter $1 gibt die Extradaten am Ende der URL zurück. Sie können ihn als Platzhalter zum Übergeben von Werten aus der HTML Umgebung in die 4D Umgebung einsetzen.
//Datenbankmethode On Web Connection C_TEXT($1;$2;$3;$4;$5;$6) //Diese Parameter MÜSSEN explizit deklariert werden.
Über 4DACTION/ als URL aufgerufene Methode Sie müssen den Parameter $1 angeben:
//Über URL 4DACTION/ aufgerufene Methode C_TEXT($1) //Dieser Parameter MUSS explizit deklariert werden.
Über 4DSCRIPT/ als HTML Kommentar in einem Dokument aufgerufene Methode Die Methode sollte in $0 einen Wert zurückgeben. Sie müssen den Parameter $0 und $1 angeben:
//Über 4DSCRIPT/ als HTML Kommentar aufgerufene Methode C_TEXT($0;$1) //Diese Parameter MÜSSEN explizit deklariert werden.