Deutsch English
Alphabetischer Index
Array-Funktionen
CGI-Funktionen
  • cgibuffer()
  • cgiclearbuffer()
  • cgiclosebuffer()
  • cgiexec()
  • cgigetparam()
  • cgigetsession()
  • cgitestparam()
  • cgitestsession()
  • cgiwrite()
  • cgiwritehtml()
  • cgiwriteln()
  • cgiwritetemplate()
  • endcgi()
  • endsema()
  • getquerystring()
  • http_post()
  • initcgi()
  • waitsema()
    Datentypen
    Datums/Uhrzeit-Funktionen
    Debugging
    Operatoren
    Ramtext-Funktionen
    Selektion
    Socket-Funktionen
    Sonstige-Funktionen
    Sprachelemente
    Statistik-Funktionen
    Stream-Funktionen
    String-Funktionen
    System-Funktionen
    Tabellen-Funktionen
    Text-Funktionen
    Volltext-Funktionen
    Zahlen-Funktionen
    Home    Überblick    Suche    Impressum    Kontakt    Mitglieder
    Themenkomplex CGI-Funktionen
    Funktion cgigetparam()
    Kurz Holt einen Parameter aus der Standardeingabe
    Syntax CGIGETPARAM(ident : STRING):STRING
    Parameter ident : Name der CGI-Variablen
    Ergebnis Wert der CGI-Variablen
    Siehe auch:
    cgitestparam() getquerystring() getenv()
    Beschreibung Die tdbengine bereitet beim Start alle Informationen des Klienten auf:

    Informationen aus der Environment-Variablen QUERY_STRING werden über die Funktion QETQUERYSTRING zur Verfügung gestellt.

    Informationen aus StdIn werden über CGIGETPARAM aufbereitet.

    Alle Ergebnisse liegen als Zeichenkette im Zeichensatz der tdbengine vor.

    Die Gross-/Kleinschreibung des Parameters spielt keine Rolle.

    Werden mehrere CGI-Variablen mit gleichem Namen übermittelt, so erfolgt der Zugriff folgendermaßen:

    1. Variable xyz -> CGIGETPARAM("xyz")
    2. Variable xyz -> CGIGETPARAM("xyz.1")
    3. Variable xyz -> CGIGETPARAM("xyz.2")
    usw.

    Ein besondere Rolle spielen in diesem Zusammenhang die Cookies. Diese können mit

    CGIGETPARAM("cookie.xyz")

    abgeholt werden. Zugleich liegen die Cookies nach GETENV("HTTP_COOKIE") im Ramtext "ramtext:environment" vor.

    Auch der HTML-Typ TEXTAREA wird über die Standardeingabe übertragen. Auf diesen sollte aber nicht über CGIGETPARAM zugegriffen werden, denn erstens werden dabei nur maximal 255 Zeichen zur Verfügung gestellt, und zweitens wird dabei der Systemramtext "ramtext" überschrieben, wenn der Name einer solchen CGI-Variablen mit "text" beginnt.

    Größere Texte (in HTML-Forumlaren) werden folgendermaßen an das Programm übertragen.

    1. Der Name der CGI-Variablen (im HTML-Formular) muss mit "text:" beginnen, beispielsweise "text:bemerkung".

    2. Beim Start stellt dann die tdbengine einen Ramtext mit dem Namen "ramtext:text:..." zur Verfügung, der den gesamten übermittelten Text enthält, beispielsweise "ramtext:text:bemerkungen".

    Die tdbengine unterstützt auch den Übertragungstyp "multipart/formdata", und damit auch den HTML-Typ "FILE". Beim Start kopiert die tdbengine den übertragenen Inhalt dieses Feldes (eine Datei) in ein temporäres File, dessen Pfad von CGIGETPARAM geliefert wird, beispielsweise "634431234/meinedatei.gif". Diese Datei wird beim Programmende automatisch wieder gelöscht. Wenn also die Datei vom Programm akzeptiert wird, muss sie vom Programm kopiert oder in ein BLOB-Feld eingelesen werden.

    Die Übertragungskapazität für Dateien wird meist vom http-Server limitiert. Üblich ist maximale Größe von etwa 100 KByte.

    Einfaches Beispiel für CGIGETPARAM:

    In einem HTML-Formular stehen folgende Eingabefelder:

    Firma:

    Internet:


    Diese Felder werden vom Anwender ausgefüllt:

    Firma: Meine Firma GmbH
    verheiratet: (wird angekreuzt)

    Dann liefert

    CGIGETPARAM("Firma") -> "Meine Firma GmbH"
    CGIGETPARAM("verheiratet") -> "1"

    Beispiel 1: CGITestSession



    VAR SessionID : STRING
    VAR SessionTest : INTEGER
    ...
      SessionID:=CGIGetParam("sessionid")
      SessionTest:=CGITestSession(SessionID)
      IF SessionTest=0 THEN
         // illegal session because of different IP numbers
      ELSIF SessionTest>3600 THEN
         // TimeOut because this session was valid only for one hour
      ELSE
         // here it is all right
      END
    


    tdbengine chat
    irc.tdbengine.org
    #tdbengine

       Copyright © 2003-2004 tdb Software Service GmbH
       Alle rechte vorbehalten. / All rights reserved
       Letzte Änderung: 21.10.2004
    {Fehler für :execmacro{execmacro="sessionspy"}