
 |
The "State"
Problem
The CGI interface provides a simple, effective solution for
posting and retrieving information to and from Superbase.
However, there is one major problem with any CGI implementation:
The web-server sends only a limited amount of information
to the executable locations of the output HTML file, an .INI
file with system settings, and an .OUT file containing the
contents of the current posted form. Unfortunately there is
no way for the application to know about previous forms, settings
or values. For example: suppose you have an initial log-in
form prompting the user for a name and password. It is sent
to Superbase where the program processes the request. At some
time in the future the browser submits a second form (say
company, phone, address, etc.) and you need to know what user
is "logged-in". With CGI this isn't possible because
the only information the web-server passes along is the current
form submitted previous values are lost.
You cannot use global variables to track information, since
you may (and likely will be) processing requests from multiple
users in any order. Some CGI implementations create hidden
fields on each form, such that values are re-submitted with
every form element. However, not only is this system awkward
for programmers to implement, but also it forces every page
to contain a form, and every single form element to contain
dozens (or hundreds) of fields which must be re-submitted
with every request. As the complexity of Internet applications
increases this solution quickly becomes impractical.
GeoMetrix has developed a DLL and series of Superbase routines
for handling this problem by storing each form value as it
is submitted by each user. The system automatically keeps
"state" by returning values explicitly for the current
user. This mechanism is currently employed in the Superbase
Internet Server.
|