Personal Online Database (POD) is a cgi
script that lets you easily create and manage an online database, be it
a product catalogue, addressbook, guestbook, customer list, or even library
book list. As its name implies, POD is most suitable for personal usage, yet
small businesses may find it a viable alternative to expensive commercial
databases, depending on your business requirement. With this script, you can
create and manage a database online with absolutely no programming knowledge
required. Through learning a small set of special tags, you will be able to
completely control the layout of the database
program output. POD supports the usual database operations
(add, change, delete, search, sort, etc.) as well as remote dministration
of the database. Because of the customizability of the script, you can make
numerous databases all exist on the same server serving your users/customers.
The speed of the database is fast and mainly determined by the harddisk speed
of the server. Please read more about the rich features of POD
below. Current POD version supports
Win9x, NT4 and Win2000. POD requires that you have access
to a webserver for it to run. POD is a big improvement
over its ancestor --- Online Database 4.x.
-
A more detailed list of features of POD
can be found here.
-
Absolutely no programming
knowledge required to use POD
There is no requirement on SQL or any programming/scripting
language or skills. As long as you can design your own web pages, you can
design your own online database with POD with ease, assuming
you have read the instructions and this documentation. In fact, even if
you do not know much about html and cannot design your own pages, you can
choose to use the template pages for the sample DBs as your own DB.
-
Speedy operations
The time POD spends on searching and sorting of the DB
is usually less than 10% of the time it takes to read the DB file. Therefore
the limit on the speed is mainly imposed by the hard disk speed of your
internet server. If you have fast disks on your internet server and keep
DB compact, it is not uncommon to do 10,000-50,000 full-text multiple-word
search and sort within a second or two. Add, change or delete entries are
much much faster. Only occasional DB self-maintainence takes longer time.
-
Scalable
In theory, the database can support unlimited number of entries with a small
demand on memory. In reality, though, it is best that entries are within
tens of thousands. The search speed will be limited by disk reading speed
when DB size reaches more than tens of thousands of entries.
- No need to use external DB engines
The DB engine itself is in POD. You do not have to rent
a server that supports a DBMS, thereby saving costs and truly making it possible
to make do-it-yourself DBs.
- Multiple DBs for the price of one
Unlike some internet database softwares, POD lets you run
multiple databases with their own configurations on the same web server. That
saves a lot of money which you would not want to waste on those softwares.
- Protected against software, hardware or
power failure With log-commit-rollback mechanism,
it is very unlikely that the database file will ever get damaged by software,
hardware or power failure.
- Concurrency handling
This ensures that the DB file will not corrupt when concurrent user access
happens.
- DB interface fully customizable
Designing the layout of the DB output is virtually as easy as design any html
file (a rarity for any kind of database programs). You can write your html
file first, and then put predefined POD-specific tags
at where you want POD to output data to, and POD
will take care of the rest. You can choose to use a language other than English,
use images specific to each entry, link those images... Possibilities are
endless and further customization is extremely easy once you get comfortable
with using the tags.
- HTML interface template provided
For those who just want a typical addressbook, guestbook, or maybe a library/catalogue
listing and do not want to design their own html web pages, sample templates
and configurations are provided so that you can virtually copy the files and
have the DB up running in almost no time.
- Various datatypes supported
Supported basic data types are number, phone, string and time, all of which
can be sorted. In addition, you can store many kinds of links in the database
as strings yet instruct POD to display them as links.
- Conversion from existing DB to POD
The accompanying conversion module can be used to convert csv-formatted
DBs into format recognized by POD, making transition easier.
This feature is not supported in unregistered version,
however.
- Password protection on DB-level or entry-level
You can specify password for each DB entry, or for the whole DB. You can specify
separate passwords for search, add, change, or delete entries. You can even
let users enter their own passwords, yet you can specify a master password
to override users' passwords.
- Remote administration
An accompanying module lets you configure your DB settings remotely through
html interface.
- csv file summary for analyzing your DB
in other files You can choose which
item(s) to output to the csv file, and you can choose an item to sort before
output.
- Both POST and GET methods supported
enabling linking to DB search directly.
- Convert DB schema
and data even after creation and usage Read
here about how to do it.
- Various small tweaks and tricks you'll
appreciate after using POD
Many features listed above have some small tricks in them, why not try it
and find out about them yourself! A partial list of all features of POD
is here.
- Free upgrade until the next major version
In addition to enjoying the already very low cost, if you buy version 5.0,
you can upgrade for free through maybe V5.1, 5.5, ... until maybe V5.99. But
you would have to pay a fee for upgrading to V6.0 which should include major
new features (say, like a shopping cart).
- Features that may be implemented in the
future Encryption
of the passwords. The password will be encrypted in the DB, disabling
reading them directly in text editors. A small GUI program will be provided
for changing password. Full support for Linux/Unix. Currently, POD
V5.0 only works for Win9x/NT/2000. In addition, some old Windows OS versions
may not work for POD (e.g. if your OS has an old version
of the dll files POD requires because you did not install
Windows service packs, POD may not function correctly).
Integrated shopping cart. You will be able to make a product catalogue
using POD, and let users order directly using POD.
- An important
note to users of Online Database 4.37 and below.
- Advantages of POD vs.
other popular internet DB softwares
- Compact and fast.
- Low cost --- only 1/2 - 1/10 the usual cgi-based DB software's
cost --- yet powerful and feature-rich.
- Interface FULLY customizable.
- Easy administration. No programming or DBA
is ever needed. Numerous convenient features make administrating and surveying
of DB real easy. (but please don't complain that you have to read through
long instructions. You do not expect a robust DB to require no learning
curve, right? That is why DBA costs so much, but with POD,
you do not ever need one!)
- Reasonably secure and stable (DB is not encrypted as
of version 5.0, therefore anybody that has access to ALL the files of
the webserver POD resides on can view your DB information
(unless that person is the web server administrator, that does not happen
often at all). However, extensive password protection and guard against
failures make it reasonably safe on the internet).
- Reasonbly scalable and robust.
- Disdvantages of POD vs.
other expensive internet DB softwares
- Not as secure and as scalable as, say, Oracle.
In fact, that is probably a gross understatement. POD
cannot even be compared with Oracle in terms of security, versatility,
and power. However, the low cost of ownership, ease of usage, full customizability
and no requirement on SQL or any programming skills or prior knowledge
are the strong points of POD.
- Some certain features in some other softwares are absent in POD.
For example, POD does not support credit card transactions.
Costly (yet easy) features like that could be implemented in the future.
When they are implemented, you can be sure that you would only need to
pay a low competitive price on them as you do on this version of POD.
Before they are implemented, though, you can set up a DB with POD
and enjoy the powerful features already offered.
- No extensive programming support or connection with exsiting SQL DB
provided. Oh, wait, is that a disadvantage or advantage? Depends on the
way you look at it. For the targeted user of POD, I
think it is actually an advantage. When you do not need it, why would
you pay big money for a huge, hefty software product that you do not want
to learn? Besides, POD offers many SQL DB-like features
without the hassle of learning SQL.
For the above reasons, POD is best for personal
or small business usage where cost is an important factor, yet high usability,
customizability and scalability of DB are desired. POD
offers the perfect do-it-yourself solution to such situations.
Download & Installation
Installation step-by-step:
- If you downloaded the self-extracting zip
file or plain zip file (i.e., PODx_x.exe or PODx_x.zip),
extract the compressed file to a temporary directory (e.g., C:\temp\POD).
- Copy the fldb.exe and fldbconf.exe programs
under that temporary directory into your webserver's cgi-bin
directory. Make a subdirectory named "fldb" under your webserver's
cgi-bin directory. Then you pick an zip archive under the temporary directory
and extract its content files into the "fldb" subdirectory (the
zip file named fldb.zip is an online addressbook, prod.zip is an online product
catalogue, gbook.zip is an online guestbook, and lib.zip is an online library
catalogue. Pick the one that's closest to what you want). Then copy doc.html,
feature.html, relationship.jpg, OldbHelp.html, DBAdmin.html, license.html,
readme.html into any directory on your web server or on your local computer
(say, it's directory1). Copy all other non-zip files into "fldb"
subdirectory except that conversion.exe can be put anywhere on your local
computer (conversion.exe is of no use in unregistered version as the converted
DB will not be recognized by unregistered POD version).
- Go into the "fldb" subdirectory, rename the file
xxxx.ini and xxxx.lann to fldb.ini and fldb.lann (e.g., rename lib.ini to
fldb.ini if you chose to unzip lib.zip in step 2 above). Open the newly renamed
fldb.ini with a text editor (e.g., notepad). Under the section called "[Administration]",
set "Enable Remote Administration=" to 1, then set "Administration
password=" to whatever password you want. Save the changes.
- Now use notepad or any html editor (preferrable NOT Microsoft
Frontpage whose early versions may mess up the html form tags) to open the
file named "DBAdmin.html" under directory1 in step 2. In the html
source code, you will find "<form action="http://127.0.0.1/cgi-bin/fldbconf.exe"
... ", please change the URL to an appropriate URL. For example, if the
URL for your webserver's cgi-bin directory is http://mydomain.com/cgi-bin,
then you should use http://mydomain.com/cgi-bin/fldbconf.exe to substitute
for the "http://127.0.0.1/cgi-bin/fldbconf.exe" above. Save the
changes.
- Now open DBAdmin.html in your web browser (e.g., internet
explorer or netscape navigator). Fill into the html form "fldb"
as the DB Name, and the password you set in step 3 above as the administration
password, press the "start configuration" button.
- Now please consult the help file
about how to set the DB options. You have two choices here. One, if you want
to use the DB as is, you can simply modify only the URLs and e-mail address
in the fldb.ini file and leave most things else intact. Or, you may want to
use different item names for your DB entries,
add or drop a few items and make other changes to make your own DB. In that
case, you have to follow instructions in the help file and make the changes
according to your preferrence.
- After you finish configuration, go to the bottom of the html
page and again fill in the password you set in step 3 above as the administration
password. Press the "submit new configuration" button.
- Now you would need to either write your own html files following
instructions or use the included template html files as
is. Again you have two choices. You can either leave those files intact if
you chose not to change the .ini file in step 6. Or you have to make appropriate
changes if you chose to change .ini file significantly. Please note that you
need to keep the DB entry items defined in the configuration in step 7 consistent
with the ones in your DB html interface files, or
else html form data will not be correctly collected into your database.
- You can then launch the web browser of your choice and access
the fldb-add.html to add your first entry or more entries after that. You
can use fldb-search-admin.html to search for an entry to change/delete it,
or use fldb-search-user.html to search for an entry for viewing purposes only.
Your DB users will most likely only need to access fldb-search-user.html and
view the entries you already entered into the DB.
- Remember to always back up your old DB file when upgrading
to a new version of POD just in case. Upgrades should go
smoothly, but it's always good to be careful if your DB is very important
to you.
License & Registration
Details for License and Registration is here.
As a note, POD costs $29 to register as non-commerical user, and $79 to register
as commercial user whenver you involve POD in monetary transactions. If you
use paypal to register, it may cost you $10 less to register for POD as described
here.
User Manual
It is probably a good idea to
first consult "Fast DB Setup for Novice Users"
section to set up and run a DB first to make sure your server can run POD,
and then try to modify the DB settings and html interface further by reading
this section.
If you are looking for section by section explanation
of the DB configuration options you encountered using DBAdmin.html, please
read this. User manual here explains how to modify
or write your own html interface between DB and end user.
A list of files included in this software package
(let's say that your web server's cgi-bin directory's path is c:\MyServer\cgi-bin):
- fldb.exe This file is the main POD program.
It is used by all included html files except for DBAdmin.html. This file should
be put into c:\MyServer\cgi-bin.
- fldbconf.exe This file is used only for remote administration
of the POD configuration. It is used by DBAdmin.html. This
exe file should be put into c:\MyServer\cgi-bin.
- conversion.exe This file is used when you need to convert
previous DB file (in csv format). Read OldbHelp.html
for instructions to use it. In unregistered version of POD this file is of
no use, however.
- DBAdmin.html This html file is used for configuring your
DB settings. Read OldbHelp.html for instructions
on how to configure DB options. DBAdmin.html itself contains instructions
on how to use it.
- doc.html This is the documentation file you are reading.
This file contains very important info as you already saw.
- relationship.jpg This is an image file used by doc.html.
It must be in the same directory as doc.html.
- license.html This file contains licensing and registration
information.
- OldbHelp.html This file contains instruction on how to configure
your DB settings line by line.
- feature.html This file contains the up-to-date information
about all the features POD has.
- readme.html This file contains the "what's new"
for POD features or bug fixes. It is the start point of
where to look for what.
- You would want to put all the html files described above
under one directory on your web server, even though it is not mandatory. However,
if you put them into separate directories, some links in this file or some
other html files will not work.
- source.txt This file is a sample csv file that can be converted
to POD DB format by conversion.exe. Again, read OldbHelp.html
for instructions to use it.
- fldb.zip This file is a zip archive of a collection of .ini
and .html files that constitute an online addressbook. You need to unzip these
files and put them into c:\MyServer\cgi-bin\fldb (make this directory if it
does not exist yet).
- prod.zip This file is a collection of files that constitute
an online product catalogue. You put unzipped files into c:\MyServer\cgi-bin\prod,
or for unregistered version, you unzip all files into c:\MyServer\cgi-bin\fldb,
and then rename prod.ini and prod.lann to fldb.ini and fldb.lann.
- gbook.zip This file is a collection of files that constitute
an online guestbook. You put unzipped files into c:\MyServer\cgi-bin\gbook,
or for unregistered version, you unzip all files into c:\MyServer\cgi-bin\fldb,
and then rename gbook.ini and gbook.lann to fldb.ini and fldb.lann.
- lib.zip This file is a collection of files that constitute
an online library. You put unzipped files into c:\MyServer\cgi-bin\lib, or
for unregistered version, you unzip all files into c:\MyServer\cgi-bin\fldb,
and then rename lib.ini and lib.lann to fldb.ini and fldb.lann.
- Again, please note that if your program is not registered,
you can use only one DB and that is the one in the subdirectory named fldb.
If you want to use any other DB instead, you should only build this new DB
from scratch.
- Explanations for the files included in the .zip archives:
These archives include the following files (DBName is the name for your DB,
like fldb or gbook): DBName.ini, DBName.lann, DBName-add.html, DBName-search-admin.html,
DBName-search-user.html, NotFound.html, InfoNeed.html, opcomplete.html, PWD.html,
multi-admin.html, sing-admin.html, multi-user.html, and sing-user.html. For
the explanations for all these files please see below.
- Instructions on how to use the .lann file
in the zip archive
1. This file is used when you need to change the last tiny bit of POD-displayed
message to your language of choice or your customized message. Because you
are able to write your own html interface in your language, the only situations
that utilize .lann file are usually not important at all. In fact, many a
time your user may not even see any message using translations in the .lann
file (except for the page link, see below). However, you
would want to modify .lann file anyways just to keep the language consistent.
2. Rename the .lann to the same name as your DB name (which is the name of
the subdirectory under the cgi-bin directory. If you are using unregistered
version of this program, the DB name must be fldb, therefore you rename the
file to fldb.lann).
3. Open fldb.lann (or whatever file your renamed it to) using any text editor,
e.g., notepad.
4. Translate and replace every sentence that's on the RIGHT side of "=". Do
not modify anything that's on the LEFT side and do not modify the first line
"[translations]"! For example, when you change a line that says: "sorted by=sorted
by", you change it to "sorted by=("sorted by" in your language)".
5. Sit back and relax and watch all program-produced pages now in your language
of choice (well, except for error pages which should not happen if you set
up DB right and your web server's set up right and working fine)! Note: If
you decide that you just want English as your language of choice, then you
can even delete the .lann file. It will make the program use the default language---English.
In FLDB.lann file, the "page1=page" and "page2=page" are for displaying summary
of search results, say, "Page 1 Total: 4 pages". page1 will be the first "Page",
page2 will be the second page, "s=..." in the .lann file will be used to produce
the plural form (the "s" in "pages"). I set both page1 and page2 to accomodate
my own language: Chinese. You can probably use the same word for both of them.
- FLDB.ini : This is where the settings for your DB are stored.
It must be put into c:\MyServer\cgi-bin\fldb. Please read this
for how to start changing the DB options and read OldbHelp.html
for how each option means and how should they be set.
- Explanation for all the html files in the .zip archive (like
fldb.zip):

The relationship among these html files as sketched above
seems quite complex, but in fact, it takes little effort to memorize it
once you understand what each document does. For example, fldb-search-admin.html
contains an html form that can be used for searching for entries in your
DB with administrative mode which allows you to change or modify the found
entry. Therefore it is natural that its result can be NotFound.html, Pwd.html
(which displays message that password is missing), sing-admin.html (single
entry found, administrative mode), multi-admin.html (multiple entries found
and displayed with links leading to each individual entry). xxxx-user.html
documents means user mode which only displays entry information but not
forms that can be used to change the entries. The separation of these two
sets of operations came after many users' requests because they do not want
all the users of their DB to view the forms, which is both boring aesthetically
and useless in many cases.
A rule for customization of these html files: For Win32 (Win9x/NT/2000)
version of POD, the case for the names of these files
can be either capitalized or not. However, for the POD-specific
tags used in the database and the names of the database entry items,
you should always use the same case as those in the configuration file,
sample html files or as instructed in this file. This applies to other customizable
items for POD too. Be consistent
using case.
Now here's the explanation of and rules for individual html files:
1. fldb-add.html --- This page should contain the html form needed for adding
entries to your DB. You must put <input type="hidden" name="act"
value="add"><input type="hidden" name="DBName" value="FLDB">
(assuming you are using unregistered version of POD or
your DB's name is fldb) before the submit button (something like <input
TYPE="submit" value="Add an Entry">) for the add form.
2. fldb-search-admin.html --- This page should contain the html form needed
for searching for entries in your DB. You must put <input type="hidden"
name="authority" value="Admin"><input type="hidden" name="act"
value="search"><input type="hidden" name="DBName" value="FLDB">
before the submit button for the search form. For a few rule for designing
search and sort forms, read this.
3. fldb-search-user.html --- This page should contain the html form needed
for searching for entries in your DB. You must put <input type="hidden"
name="authority" value="User"><input type="hidden" name="act"
value="search"><input type="hidden" name="DBName" value="FLDB">
before the submit button for the search form. For a few rule for designing
search and sort forms, read this.
The above 3 pages are DB-access pages from
which POD gets input.
These 3 html files can be put anywhere on your web server and be renamed
to any name you want. You can even combine these 3 files into one html file
if you want. However, other than the above specified tags, you should not
put any POD-specific tags into this page because they
will have no effect on the output.
4. Pwd.html --- Its only purpose is to display a message that password is
missing. You should not put any POD-specific tags into
this page.
5. NotFound.html --- Its only purpose is to display a message that the entry
is not found using the input search string. You should not put any POD-specific
tags into this page.
6. InfoNeed.html --- Its purpose is to display a message that some items
of the entry must be filled in before you can add or change the entry to
the DB and that user should try to input those information again.
7. opcomplete.html --- Its purpose is to display a message that the user-requested
operation (like add, change, or delete an entry) is completed successfully.
You can specify an html file for redisplay here using the <!--DBRedisplay-->
tag (see below for details).
8. multi-admin.html --- This page is used when a search initiated from page
fldb-search-admin.html returns more than one entry. This page should always
contain a pair of <!--DBRepeatStart--> and <!--DBRepeatEnd-->
tags. You would also probably want to put a <!--DBItem="DB Item
Name" Link="index"> (substitute the "DB Item Name"
with a real DB Item Name you assigned) to have this item linked to that
specific entry. This page can be exactly the same as multi-user.html, or
it can be different, whichever way you like it.
9. multi-user.html --- This page is used when a search initiated from page
fldb-search-user.html returns more than one entry. It has the same rules
as multi-admin.html and can have the same html code.
10. sing-admin.html --- This page is used when a search initiated from page
fldb-search-admin.html returned only one entry OR reached from multi-admin.html
with a <!--DBItem="DB Item Name" Link="index">
tag. This page MUST contain forms that allow
change and delete of the entries. For the form that allows changing the
entry, you should put tags <INPUT TYPE="hidden" NAME="act" VALUE="newinfo"><!--DBAutoNumber--><input
type="hidden" name="DBName" value="FLDB"> (assuming you are using unregistered
version of POD or your DB's name is fldb) before the
submit button (something like <input TYPE="submit" value="Change the
Entry">). For the form that allows deleting the entry, you should put tags
<INPUT TYPE="hidden" NAME="act" VALUE="delete"><!--DBAutoNumber--><input
type="hidden" name="DBName" value="FLDB"> before the submit button (something
like <input TYPE="submit" value="Delete the Entry">). Also for the delete
form, you only need to have two <input type="text" ...>
tags, one for the first item in your DB entry, one for password (if you
use password to protect deleting entries from your DB). For example, if
the first item in your DB is "name", then your delete entry form
should have <input type="text" name="name" size="whichever
size you choose (substitute this!)"> before any other form item
such as password, etc. Look at sample files if you still do not understand.
11. sing-user.html --- This page is used when a search initiated from page
fldb-search-user.html returns only one entry OR reached from multi-user.html
with a <!--DBItem="DB Item Name" Link="index">
tag. This page usually contains all the information about the entry (but
not in html form style), yet it is not a requirement.
The above 8 html files are the DB-display pages with
which POD formats and displays output. They should
not be renamed and must be put in a subdirectory under your web server's
cgi-bin directory.
The 11 html pages above can be classified into two
categories: Pages that can display an entry (multi-admin.html, sing-admin.html,
multi-user.html, sing-user.html, opcomplete.html, InfoNeed.html) and those
that do not (the rest).
You can put any html tags and content in the above html files. These files
constitute the html interface between (POD+your DB) and your DB user. After
you write the pages following the above instructions, you can begin to define
where the DB entry data should be displayed in each html file following
instructions and rules below:
Now let's look at the
POD-specific tags (note that you can always look at the
sample files to try understand the action of POD):
-
<!--DBItem="DB Item Name" Link="index"
DBdefault="any default text" SortTag="Whatever"--> This tag should
be placed only in the pages that can display an entry
(in fact, as a rule, any tag with any DB Item Name specified in it should
be placed only in those pages that can display items of an entry. That only
makes sense). You should substitue the "DB Item Name" with real
DB item name like "web site", etc. provided "web site"
is an item in your DB entry. Starting with V5.04,
the Link="..." can take 5 values. Link="email", Link="www",
Link="index", Link="admin-index",
Link="user-index". The first two will cause the value of
the item be linked with email address or hypertext links. For example, if
you set Link="www", then POD will replace this
entire tag with <a href="DB Item Value">DB Item Value</a>
(of course POD will use the real DB item value in place of the "DB
Item Value" in this link). The Link="index" will cause the
item be linked to a page that will display the information of that entry
alone using the current authorization mode (administrative or user mode,
depend on whether "authority" is "admin" or "user").
The Link="admin-index" will force to link
in administrative mode even if current "authority" is "user"
or absent. The Link="user-index" will force a link in user mode.
These 3 links are only useful when used in multi-admin.html and multi-user.html
because in the multi-entry situation you would want to have a link that
leads to a particular entry. The SortTag is a text tag that will be put
in front of the value of the item, and will have a link that leads to redisplay
of the page with entries sorted regarding to this item. If you put a "*"
in front of "Whatever" (as SortTag="*Whatever") POD
will attach a link that sorts DB in descending order instead of the default
ascending order (Please note that starting from V5.05,
user of your DB can toggle the sort order by clicking on the item they just
sorted with again, thereby overriding your setting here). If you
set Link="www" and SortTag="URL: ", the result display
will be <a href="POD-produced sort link">URL: </a><a href="DB
Item Value">DB Item Value</a> (note that the link on URL will
be dynamically produced by POD). If the DB Item Value
for an item is actually empty because user did not enter the info when they
add it to the database, you can specify a default text to be displayed in
place of the empty DB Item Value using the DBdefault="default text
you like". Note that in this POD tag, DBdefault=..., Link=... and SortTag=...
are optional and can be omitted from the tag. Only the first part is required.
- <!--DBRedisplayStart--> and <!--DBRedisplayEnd--> indicate
that the content between these two tags can be redisplayed when <!--DBEntryRedisplay=...>
is used (see below). On any page, there should be only one pair of <!--DBRedisplayStart-->
and <!--DBRedisplayEnd--> tags. If you put multiple pairs in the file,
only the first pair will be used for redisplay purposes.
- <!--DBEntryRedisplay="sing-user.html"--> This tag (let's
say it is in opcomplete.html) specifies that POD should open the file "sing-user.html",
search for tags <!--DBRedisplayStart--> and <!--DBRedisplayEnd--> and
then display all the content in sing-user.html that is between these two tags
to the position where <!--DBEntryRedisplay="sing-user.html"--> tag is in
opcomplete.html. Note that you should never put <!--DBEntryRedisplay="opcomplete.html"-->
tag AND a pair of <!--DBRedisplayStart--> and <!--DBRedisplayEnd-->
tags all in one html file because this will create an endless loop of redisplaying
the same html file again and again.
- <!--DBRepeatStart--> and <!--DBRepeatEnd--> This pair
of tags should only be put in multi-admin.html and multi-user.html. They are
used to indicate that the content between these two tags should be repeatedly
displayed for each DB entry found in a search. So when your user's search
found 5 entries, the content between these two tags will be displayed 5 times
consecutively, but each time with data specific for one of the 5 entries found.
- <!--DBFound#--> This tag should only be put in multi-admin.html
and multi-user.html. It will be replaced by POD with the number of entries
that are found in a search.
- <!--DBPageLink--> This tag should only
be put in multi-admin.html and multi-user.html. It will be replaced by POD
with the page numbers in the format "<-Prev
1 2 3 Next->"
(assuming the page that's currently displayed is page2). The words "prev"
and "next" can be replaced using the .lann file.
- <img src="DB Item Name1" DBdefault="default image link"
DBlink="DB Item Name2"> This tag should be placed only in the pages
that can display an entry. When POD finds this tag, it will replace the
tag with <a href="DB Item Value2"><img src="DB Item
Value1"></a>. However, if the value for DB Item Name1 is empty,
POD will display the default image which is "default image link"
instead. This way even though you cannot store the actual image in a DB, you
can store html links to images in the DB and have POD display the images in
web browser. The DBlink="..." can have http links in it too, it
doesn't have to be a DB Item Name (however, in that case, the images in all
the entries on this page will be linked to the same http link, which is probably
not what you would want). In addition, the DBLink="index" or "admin-index"
or "user-index" is acceptable and when POD see this, it will make
a link that links to the individual entry just like in <!--DBItem="DB Item
Name" Link="index"> tag. When DBLink="index" or "admin-index"
or "user-index" is used, this <img ...> tag should be placed
only in multi-admin.html and multi-user.html. Please note that DBdefault=
and DBlink= are optional and can be omitted from this tag. However, if you
include these tags, you MUST put DBDefault=... immediately behind the src=...,
and DBLink=... immediately behind DBDefault=....
- <a href="DB Item Name" DBdefault="any default link">
Again, this tag should be placed only in the pages that
can display an entry. When POD sees this tag, it will replace it with
<a href="DB Item Value"> (if DB Item Value is empty, POD will use the "any
default link" to substitute it). Therefore you can store any http links
in the DB and have POD display them. Note that the DBdefault=... in this tag
is optional and can be omitted from this tag. However, if you include this
tag, you MUST put it immediately behind the href="DB Item Name".
Also note that this tag is not redundant with the <!--DBItem="DB Item
Name" DBdefault="any default text" Link="www">
tag!
- <a href="DBSort=DB Item Name"> This tag should be put
in multi-admin.html and multi-user.html only. When POD sees this tag, it will
replace it with <a href="DB Sort Link"> in which DB Sort Link is a dynamically
produced link that can re-sort all the displayed entries according to this
particular item. Again, if you put a "*" in front of "DB Item
Name" (as "DBSort=*DB Item Name") POD will make a link that
sorts DB in descending order instead of the default ascending order. (Please
note that starting from V5.05, user of your DB can toggle the sort order by
clicking on the item they just sorted with again, thereby overriding your
setting here).
- <a href="index"> (or "admin-index"
or "user-index"). This tag should be put in multi-admin.html and
multi-user.html only. When POD see this, it will make a link that links to
the individual entry just like in <!--DBItem="DB Item Name" Link="index">
tag (i.e., <a href="index"> is replaced with <a href="index
link produced by POD">).
- <input type="text" name="DB Item Name" size="20"> Again,
this tag should be placed only in the pages that can display
an entry. When POD sees this tag, it will replace it with <input type="text"
name="DB Item Name" value="DB Item Value" size="20">.
- <textarea rows="3" NAME="DB Item Name" DBdefault="any
default text" cols="50"> Again, this tag should be placed only in the
pages that can display an entry. When POD sees this
tag, it will replace it with <textarea rows="3" NAME="DB Item Name" DBdefault="any
default text" cols="50">DB Item Value (if DB Item Value is empty, POD
will use the "any default link" to substitute it). Note that the
DBdefault=... in this tag is optional and can be omitted from this tag. However,
if you include this tag, you MUST put it immediately behind the name="DB
Item Name".
- <select name="DB Item Name">
<option value="DB Item Value Choice1">DB Item Value Choice1</option>
<option value="DB Item Value Choice2">DB Item Value Choice2</option>
... ... ... ...
</select>
Again, this tag should be placed only in the pages that
can display an entry. When POD sees this tag, it will replace it with
<select name="DB Item Name">
<option value="DB Item Value Choice1">DB Item Value Choice1</option>
<option value="DB Item Value Choice2" selected>DB Item Value Choice2</option>
... ... ... ...
</select>
provided that DB Item Value Choice2 is the DB Item Value stored in the item
DB Item Name of this particular entry in DB.
A few rules for using POD-specific tags
that you should remember:
- While you can usually put any POD-specific
tags into any html files described above without
hurting the program execution, you'd better put only those that make sense
into any particular html file. For example, if you put "<!--DBFound#-->"
into notfound.html, obviously it doesn't make any sense --- That tag is used
to display how many entries were found during the search whereas notfound.html
is only displayed when nothing was found. Likewise, any tag with DB Item Name
specified in it should be placed only in those pages that
can display an entry.
- In general, you should not put any POD-specific
tags in pwd.html, and notfound.html because no entry is actually found
or returned or added during the operation, therefore those tags will not result
in correct display at all (usually putting in those tags has no adverse effect
because they won't display, but do not count on it as some tags may give wrong
display).
- You should always make sure the items you link with "DBLink="index""
do not contain empty values (if they do have empty values, you should provide
a DBDefault="whatever text you want to put in"), or else POD will
still try to link them by adding a "_", but it usually does not
look good. In most situations it is not a requirement, though.
Fast DB Setup for Novice Users
Well, sometimes users of POD may find the user manual for POD
seems so overwhelming and an overkill for their usage of POD, e.g., you may
only want to use the addressbook, guestbook, library catalogue, or product catalogue
DBs included in POD package without much modifications at all. In that case,
you would want to read the following instructions for a fast setup of the DB
of your choice:
Installation step-by-step:
- If you downloaded the self-extracting zip
file or plain zip file (i.e., PODx_x.exe or PODx_x.zip),
extract the compressed file to a temporary directory (let's say you extract
the files to C:\temp\POD).
- Copy the fldb.exe and fldbconf.exe programs under C:\temp\POD
into your webserver's cgi-bin directory (let's say its
path is http://webserver/cgi-bin) (a note here is that if your web server
is NOT on your local computer, you need to make a mock cgi-bin directory c:\cgi-bin
on your local computer and upload all of its content and directory structure
to your web server's cgi-bin directory AFTER you finished the DB setup). Make
a subdirectory named "fldb" under cgi-bin directory (this subdirectory
thus has the path c:\cgi-bin\fldb).
- Now pick one pre-configured DB in POD package that you want
to use for yourself:
If you want an addressbook, choose fldb.zip under C:\temp\POD.
If you want a guestbook, choose gbook.zip under C:\temp\POD.
If you want an online library catalogue, choose fldb.zip under C:\temp\POD.
If you want a product catalogue, choose fldb.zip under C:\temp\POD.
BTW, if you want to see what each DB looks like, please go to the web for
my guestbook and the
other 3 DBs. Please note that the only main difference between DBs at
ming.ddns.com and the ones included in
POD package is the coloring.
- Let's say you picked gbook.zip for a guestbook. Extract
all the files from gbook.zip into c:\cgi-bin\fldb. Then upload doc.html, feature.html,
relationship.jpg, OldbHelp.html, license.html, readme.html (these are all
under C:\temp\POD) into your root directory your web server (let's say your
server's name is "myserver", and your root directory on your web
server may be http://myserver/myname). Note that conversion.exe and source.txt
should be put on your local computer in any directory that you want (conversion.exe
is of no use in unregistered version as the converted DB will not be recognized
by unregistered POD version).
- Go into cgi-bin/fldb subdirectory, rename the file gbook.ini
and gbook.lann to fldb.ini and fldb.lann. Open the newly renamed fldb.ini
with a text editor (e.g., notepad). You should notice that the file is composed
of sections, under each section there are many options. Each option takes
the form "A=B". You should never ever modify A which is on the left
side of "=", but you should modify B according to what you want.
Now, under the section called "[Administration]", please set "Enable
Remote Administration=" to 1, then set "Administration password="
to whatever password you want. Save the changes.
- You probably want to modify all the options that has "modify
this!" in it. The ones that you MUST modify now
are:
"exe full URL=DB exe file URL(e.g.,http://myserver/cgi-bin/fldb.exe),modify
this!". This one should be http://myserver/cgi-bin/fldb.exe in our example.
All options under "[password]" that has "modify this!"
on the right side. These should be your own passwords, not the default mock
passwords provided in the POD package.
- Now go into c:\cgi-bin\fldb directory. Here you will find
in addition to fldb.ini, fldb.lann, there are a total of 11 html files. You
must modify the following ones: x-add.html, x-search-admin.html, x-search-user.html
(in our example, this "x" is "gbook"), sing-admin.html.
You need to do the following modifications:
Open any of the above 4 html files with notepad or any other text editor.
Search for "form action". You may find something like "<form
action="http://127.0.0.1/cgi-bin/fldbconf.exe" ... " or "<form
action="http://myserver/cgi-bin/fldb.exe"...> ". You MUST replace the
URL in the quotation marks with the same URL defined in step 6. Then search
for "form action" again and repeat the replacement. After you replaced
all of them, you need to search for "DBName", and you may find something
like "<input type="hidden" name="DBName" value="gbook">". You
must replace "gbook" here with "fldb" (if
you registered your copy of POD, you would not need to put zip files in gbook.zip
into "fldb" subdirectory. You put them in "gbook" subdirectory
instead. You do not need to rename gbook.ini, gbook.lann to fldb.ini and fldb.lann,
and you do NOT need to make this "gbook" to "fldb" replacement
in "DBName". Therefore you can have more than one DB running at
the same time. In unregistered version, your DB MUST be named as "fldb"
and do all these name replacing, therefore you can have only one DB running
at a time). Repeat the above two replacements in all the 4 html files.
- Now you upload everything that's under your C:\cgi-bin directory
to your web server's cgi-bin directory. Make a subdirectory named "fldb"
under your web server's cgi-bin directory and copy all files except for gbook-add.html,
gbook-search-admin.html, gbook-search-user.html under your C:\cgi-bin\fldb
into that "fldb" directory. You can rename gbook-search-admin.html
to "administration.html", gbook-search-user.html to "guestbook.html",
gbook-add.html to "add.html" or whatever names you like. Copy these
3 files into your root directory of your web server, in our example, it's
http://myserver/myname.
- Now open your web browser, type in the address http://myserver/myname/add.html.
You will see a form that allows you to sign the guestbook. Fill in one and
submit. You will see first line something like "DB does not existed yet.
DB created". After this line, it's "operation completed. Here is
a redisplay of your entry", and then a display of your just-added entry
below. If you do not see something like this, instead you see some error message,
please refer to "troubleshooting Q & A"
section for help.
- Now everything is set. You can use "http://myserver/myname/guestbook.html"
to search for previous guests' comments, or use "http://myserver/myname/administration.html"
to search and change a guest's comments using the "master password"
you set in step 6 (but try not to change other people's words!). You can even
combine these 3 html files into one "http://myserver/myname/guestbook.html"
file like I did on http://ming.ddns.com/gbook-add.html.
- In the future, when you want to add more power or customized
feature to your database, you have to modify the .ini file and the html files
further. For editing .ini files, there is an easier and safer way than to
modify through notepad. This method is described below:
- Use notepad or any html editor (preferrable NOT Microsoft
Frontpage whose early versions may mess up the html form tags) to open the
file named "DBAdmin.html" under c:\temp\POD in our above example.
In the html source code, you will find "<form action="http://127.0.0.1/cgi-bin/fldbconf.exe"
... " or "<form action="http://myserver/cgi-bin/fldb.exe"...>
", please change the URL in the quotation marks to the same URL defined
in step 6. Save the changes and upload the file to your root directory on
your web server.
- Now open DBAdmin.html in your web browser (e.g., internet
explorer or netscape navigator) by typing "http://myserver/myname/DBAdmin.html"
as web address. Fill into the html form "fldb" as the DB Name, and
the password you set in step 5 above as the administration password, press
the "start configuration" button.
- Now please consult the help file
about how to set the DB options.
- After you finish configuration, go to the bottom of the html
page and again fill in the password you set in step 3 above as the administration
password. Press the "submit new configuration" button. Now the new
setting will take effect next time you visit your database.
- Please remember that the instructions above is only a temporary
measure. As the administrator of your DB, you should always understand what
you are doing, and what you can do to your DB. So please read the User
Manual section for how to change the html files and refer to OldbHelp.html
for how to configure .ini file.
- Remember to always back up your old DB file when upgrading
to a new version of POD just in case. Upgrades should go
smoothly, but it's always good to be careful if your DB is very important
to you.
Security Notes
A critical security note:
It is crucial that you ask your web server administrator to disable "read"
access on your cgi-bin directory. If you do not disable
"read" access, anybody on the internet will be able to read ALL of
your database files. In addition, if you are a registered user, you should protect
the registered copy of this software by disallowing "read" access
so that nobody can download the software directly from your web server's cgi-bin
directory. Read this on how to disable "read"
access and contact your web server administrator and urge that "read"
access be disallowed (note that if your web server administrator is not very
competent, mistakes can be made to disallow even POD to read on the cgi-bin
directory, thereby preventing POD to work. Symptom would be POD complaining
that the initiation file cannot be found even though you're sure you put fldb.ini
under fldb subdirectory under cgi-bin directory).
Now here are a few methods to disable
"read" access on a web server:
- One temporary solution
to protect your database files is to set "hide=1" in the fldb.ini
configuration file. This way POD will successfully disallow
"read" on DB files (but not the software itself) on many web servers
(but definitely not all servers). However, you should
never ever count on this measure as a permanent solution. In fact,
if you succeed in methods 2 and 3, you do not need to use this one. So you
should try methods 2 and 3 first.
- For Windows-styled security configuration
web servers, such as Microsoft Internet Information Server, Microsoft Peer
Web Service (which comes with NT4.0 CD), Microsoft Personal Web Server (a
free yet powerful web server), etc., you can disable "read" access
on individual directories. Therefore what you (or your web server administrator)
need to do is to launch the web server administration manager, look at the
access setting of the cgi-bin directory of the web server, then set the access
setting to "enable execute", "enable scripts", "disable
read" (most likely you'll need to check the checkboxes "execute"
"scripts" to enable them, and uncheck "read" to disable
it).
- For Unix-styled security configuration web
servers, such as Sambar Web Server (a free/$75 web server that is very feature-rich
and relatively easy to use), Apache (free, its Windows version is hard to
use) or O'Reilly's WebSite Pro Server, etc., you can set the access configuration
on each individual directories too, but you cannot set "execute"
while disabling "read" (at least I did not find such settings for
the above 3 servers, not that they absolutely do not have such settings. They
may have, but I couldn't find it). In this case, what you want to do is to
disable "read" on the "fldb" subdirectory (or whatever
subdirectory you put your DB files in). For O'Reilly's server, it is rather
easy. Their GUI configuration program is very intuitive to use. For Sambar,
it is relatively easy too. For Apache, it seems they do not have a GUI configuration
program for Windows version yet (though they have one for Linux long time
ago and I liked it). Nonetheless, all 3 uses roughly the same method to disable
"read" access. Please refer to their manuals for details. Here is
what I found or remembered: For Apache, in their cgi-bin directory, your DB
file is usually safe (because by default apache take any requests
for file in the cgi-bin directory as a command to execute that file. Because
of this, when you try to download the DB file, the server gives you an error
as those DB files cannot be executed) yet it is still advisable that
you disable "read" access on "fldb" subdirectory. For
WebSite Pro, you need to set order "allow, deny" and "deny
all" or allow only a selected group of users or groups to access the
directory (same method applies to Apache too). For Sambar server, you want
to put a .htaccess file under fldb subdirectory (or whatever subdirectory
your DB files are in). In that file, you specify the name of a zone, then
restriction. For example, that .htaccess file can look like this after you
created user "test":
AuthName "Authorized Only"
require user test
Apache can use .htaccess file too.
You can test if "read"
access is disallowed by typing the URL of the database file (e.g., if the URL
of your web server's cgi-bin directory is http://myserver.com/cgi-bin, and you
DB is under fldb subdirectory, then your DB initiation (configuration) file
URL is http://myserver.com/cgi-bin/fldb/fldb.ini. Just type this URL into your
web browser and see what happens. If you get "read access forbidden",
then you're safe. If your web browser starts to download the file, you know
your DB is in danger. Please contact your administrator as soon as possible
then!!).
A few notes on the security of POD itself:
- The design of POD assumes your web server does not support encryption, therefore
the passwords and data sent from and to your web server are not encrypted
(for encryption, what you need is a server that is SSL-enabled. There is nothing
POD can do about the security of the data transmitted on the internet). Therefore
to ensure that nobody steals your data on the internet is YOUR responsibility
(writing html files to take advantage of a secure server is your responsibility
too, though you can find a lot of places teaching you to do that, which is
quite easy).
- POD also assumes that you are most likely the web server administrator and
you have the exclusive access to the computer your web server runs on. For
this reason and reason below in addition to performance considerations, POD
does NOT encrypt the database file or the passwords therein. It is relatively
trivial to encrypt password or data, yet there is another problem: US Federal
law prohibits exportation of strong encryption softwares. I need to study
the laws before I really want to implement encryption in POD. It is also questionable
whether POD can be considered an encryption software, but if you set "password"
size as 400 and encrypt or decrypt an email message using POD is very possible.
Therefore it can be argued that POD IS an encryption software once I implement
this feature. So...
- Even if password is encrypted in future version of POD, the data will probably
not be encrypted for performance concerns. Therefore anybody with physical
access to your web server machine can potentially view or damage your DB data.
There is nothing POD can do about that either. You should use only trustworthy
web hosting service, or if the server is on your own computer, restrict other
people's access to it.
- POD is a cgi script, therefore it is susceptible to some hacker attacks
on cgi scripts. I will try to cover holes one by one in the future, but there
is always a window of opportunity for smart hackers. I mean, even prestigious
and well-known web sites got shut down by hackers now and then, right? So
back up your database at times, and try to limit administering the DB over
the internet.
- Sometimes a hacker can post a cgi script that disrupts other cgi scripts
service, so your web server administrator must only accept cgi scripts trustworthy
sources. There is nothing POD can do about that.
Troubleshooting Q & A
1.After I filled data into the html forms and pressed the submit
button, nothing happened!
2.It seems the database program only collected part of the html
form data, but not the rest?
3.DB just malfunctioned, giving me strange error reports.
4.I input time stamp and numbers, but somehow they are not sorted
correctly?
5. POD never started. My web browser told me that the cgi script
misbehaved by not returning a complete set of html tags?
6.I think I found a bug, how do I report?
7.How do I register?
8.How do I set up more than one database with POD?
9.How do I create a DB file myself when sample DB is not included
in the package?
10.Where can I download the newest version of POD?
11.I cannot understand the documentation, how do I contact the
author for help?
12.The documentation is too long, is there an easier way to get
the DB up and running?
13.I want to provide a link in my page to display every entry
in the database, but I do not want to provide a search form, how do I do it?
14.Do you write custom-made cgi scripts?
15.If I want more features for POD, can I send my request to
you and will it be answered?
16.How do I design the Search and Sort forms in an html page
like fldb-search-user.html?
17.I have used my language to write all the html interface files,
yet I still see some English words on my pages, e.g., the page links "prev"
and "next" are in English, not my language, why?
18.I want to register, do you accept online payments?
19.How do I pay with paypal online payment service?
20.I think I found a place where POD did not behave as you claimed,
what should I do?
21.I have registered already, but I want to return the software
and get a refund, can I do that?
22.How do I convert DB schema?
23.Somehow it seems that POD only recognized part of the items
I named for my entry items. Why is that?
24.I just uploaded all the files to my server and POD runs fine.
However, I can't find my .ini and .txt files any more on my FTP server. Why
is that?
25.I was a user of Online Database 4.37 or older version. How
do I upgrade my old version to this new one?
26.I specified everything in the [report] section, yet I did
not receive any statistics report or error report. Why?
27.How often do you put out one upgrade version?
28.I think I did everything right, yet my DB named test that's
put under my cgi-bin\test subdirectory generated an error message "You
need to register to operate on more than one DB for more than 20 days".
Why?
29.I am using Sambar server. I get a message that ini file cannot
be found. Why?
30.11 html interface files seems too many for me. Is there any
way to reduce my writing effort?
31.Can you recommend some free web servers that I can use to
run POD on?
32.Can I run POD on a local computer without using the internet?
33.What web servers or OS did you test for POD on?
- After I filled data into the html forms and pressed the
submit button, nothing happened!
Most likely you used Microsoft Frontpage to edit your html file. Microsoft
Frontpage tends to modify html form tags to its liking, and it sometimes messes
up the tags. Try to use another html editor to modify the html files and see
if same problem happens again.
- It seems the database program only collected part of the
html form data, but not the rest?
Please check the spelling you used in the <Input type="text"
name="xxx"> tag. The "xxx" must be exactly the same
(preferrably the same case too) as the DB entry item name you specified in
DB configurations.
- DB just malfunctioned, giving me strange error reports.
Please check the spelling you used in your html form tags and/or the POD-specific
tags. You should use exactly the same spelling AND case as those in the sample
and template files! Also if POD complains that it cannot find .ini initiation
file, check the access rights of your cgi-bin directory as described here.
- I input time stamp and numbers, but somehow they are not
sorted correctly?
Likely the time stamp you input is not in the right format, too old or too
much into the future, or the number you input is too big (more than 9 digits).
In those cases, these items will not be sorted correctly, and DB may even
record wrong data if the number is too big.
- POD never started. My web browser told
me that the cgi script misbehaved by not returning a complete set of html
tags?
This is most likely because the operating system (OS) your web server runs
on is an old version. POD 5.0 and above needs a relatively
new version (later than 4/99) of mfc42.dll file to function correctly. Please
install Windows OS service packs.
- I think I found a bug, how do I report?
Please see below the "bug report" section.
- How do I register?
Please read the license and registration file.
- How do I set up more than one database with POD?
To do that, you must first register. The evaluation
copy of POD does not allow more than one DB running at
a time. After registration, to set up more than one database, you just need
to make another subdirectory named as the desired DB name under the cgi-bin
directory and copy all the DB html and configuration files under first subdirectory
to the new subdirectory, and change the configuration file name to the new
DB name. Then modify the configuration file and html interface files to create
a new DB.
- How do I create a DB file myself when sample DB is not
included in the package?
Never create DB file (the .txt file) yourself. After you configured the .ini
file and html interface files, just launch POD through
web browser by adding entry to or search the database, POD
will find that DB file is missing and will create a new one for you.
- Where can I download the newest version of POD?
Read this.
- I cannot understand the documentation, how do I contact
the author for help?
First, please try to read all the documentation files (doc.html, OldbHelp.html,
readme.html, even DBAdmin.html and feature.html etc.) thoroughly. If you still
cannot understand some specific details of the documentation, you may send
email to mingyiliu@yahoo.com
or webmaster@ming.ddns.com for
help (please write as precisely as you can as to what is the part that you
did not understand and what you are trying to do). I (Mingyi Liu) will try
to respond to you as soon as possible, but a (timely) response is not guaranteed
for unregistered users (sorry about that. I will try my best to answer everybody's
questions, but my schedule may not allow responding to all inquiries).
- The documentation is too long, is there an easier way
to get the DB up and running?
I am sorry that there is no shortcut here. You need to understand how the
DB work so that in case any error happens in the future, you will be able
to deal with it; and if you want to modify your DB later or add another DB,
you'll be able to do it very fast if you understand the documentation files
when you created the first one. Therefore I do not supply a "One-hour-do-it-yourself-DB-setup"
version of documentation here, even though it is very possible to provide
it.
- I want to provide a link in my page to display every entry
in the database, but I do not want to provide a search form, how do I do it?
Use <a href="http://myserver.com/cgi-bin/fldb.exe?keyword=&password=mypassword&act=display&authority=AdminOrUser&DBName=fldb></a>.
Of course, you need to replace the "myserver.com", "fldb",
"mypassword", "AdminOrUser" with the appropriate value.
If you specify keyword=whatever in the above tag, the link will lead to display
of the same result as your search with search string "whatever"
in a search form.
- Do you write custom-made cgi scripts?
Currently, no.
- If I want more features for POD, can I send my request
to you and will it be answered?
Yes, you can always send a request to me at mingyiliu@yahoo.com
or webmaster@ming.ddns.com.
I will acknowledge that I got your request, but whether I implement the feature(s)
you request or not depends on how many such requests I receive.
- How do I design the Search and Sort
forms in an html page like fldb-search-user.html?
There are 2 rules for search form: 1. The name of the "select" must
be "search field", meaning you must put <select name="search
field"> in. 2. You want to use <option value="all">whatever</option>
for searching for all items in an entry. This should also be the default search
behavior, even though it's not a requirement.
There are 2 rules for sort form: 1. 1. The name of the "select"
must be "sort option", meaning you must put <select name="sort
option "> in. 2. If you want the item be sorted in ascending order,
you use <option value="DB Item Name">; but if you want it
sorted in descending order, you add a '*' in front of DB Item Name like this:
<option value="*DB Item Name">.
- I have used my language to write all the html interface
files, yet I still see some English words on my pages, e.g., the page links
"prev" and "next" are in English, not my language, why?
There are two possible reasons for this: 1. Please read this
for help for using .lann file to customize page links and a few other small
places that default to English. 2. Some rare errors of the DB are reported
in English. If you had set up the DB correctly and your web server is set
up right and functioning well, your user should almost never see those error
messages. Please check your settings if you or your user do see such messages.
- I want to register, do you accept online payments?
Yes. Currently you can use paypal international
online payment service to pay for registration. They use e-mail address as
the "account number" for sending and receiving payments. Making
payments with them is almost as easy as sending e-mails. If you are an international
user, paypal saves you a lot of trouble (you don't have to do the currency
exchange and wire transfer to U.S. bank, etc).You can pay me with the method
described below. You can read this for a
little more information on paypal online payment service. Please read below
question #19 for how to pay POD registration fee with paypal.
- How do I pay with paypal online payment
service?
My paypal account e-mail address is mingyiliu@yahoo.com. If you do not yet
have a paypal account, you may sign up for their service for free (refer to
their web site for details) and receive $5 new account bonus. You may also
put my e-mail address mingyiliu@yahoo.com as referral address when you sign
up for their service, after which paypal will pay me $5 for referral bonus.
You can pay me $5 less for your POD registration fee once I received the $5
referral bonus. In effect, by using paypal, POD costs you roughly $10 less
(international users may be accessed a transaction fee. Please refer to www.paypal.com
for exact charge), and you can pay instantly and internationally without the
hustle of the currency exchange and wire transfer to U.S. bank. Please
remember that after you send me the payments through paypal, please
also send me an e-mail at mingyiliu@yahoo.com to notify me of the e-mail address
you prefer to receive my correspondence about the payment, registration instructions,
etc.
- I think I found a place where POD did not behave as you
claimed, what should I do?
First, I must admit that with the dozens of files included in a POD software
package (including 4 sets of template files in POD 5.0), it is very possible
that I made a mistake somewhere in some file. That said, I tried my best to
proofread and test each file one or more times, and they shall mostly behave
as expected. If indeed anything abnormal happens, and you are sure it is not
because of your DB settings, please contact me to report it.
Thank you.
- I have registered already, but I want to return the software
and get a refund, can I do that?
Yes you can, but with conditions---You must prove to me that the software
contains serious bugs that will endanger the security of the DB or your web
server, or else I will not refund you because softwares cannot truly be returned
(a partial refund may be negotiated with regard to the severity of the problem).
In stead, if it's a bug that is bothering you, I will fix it and give you
the newer version. If POD lacks a feature you desire, I will try to see if
my schedule allows an upgrade (note that this is not guaranteed). Because
of these conditions, you should take advantage of the 20-day evaluation period
and try this software out thoroughly before you register.
- How do I convert DB schema?
Say, your current DB has the following items: "name,email,web site,phone
number,time stamp,password" with sizes "20,20,40,25,15,20".
You want to change it to "name,phone number,email,status,comment,time
stamp,password" with sizes "30,25,20,15,150,15,20". What you
want to do is, first backup your old DB and its configuration .ini file by
copying the files to wherever you want. This way if something went wrong (like
electricity went out) during DB conversion, you can restore the file by copying
old DB and .ini file back. Please note that even if electricity went out,
POD usually recovers and resumes the DB conversion operation just fine. Copying
the DB is just added security---you would never want to risk even any tiny
risk for an online DB. After you copied the files, change the "previous
entry item name" under "[database entry info]" section under
.ini file (or, if you're using DBAdmin.html to configure, the "Names
of previous entry items" under "Database Entry Info Configuration"
section) to "name,email,web site,phone number,time stamp,password"
(effectively you're assigning your current DB items as previous item names,
which is truely the case after DB conversion). You do the same for DB item
sizes. Then you put the new items names and sizes as the "Names of current
entry items" etc. Then you name the data types for the NEW DB items in
"entry item data type" under "[database entry info]" (or,
"Type of current entry items (string,number,time,phone)" under "Database
Entry Info Configuration" section). Data types for the old DB items do
not matter now. At last, you set "convert old items to new items"
to 1 instead of 0 (or check the "Convert to new items next time POD is
run?" checkbox). Save your configuration file or submit the new configurations
online. Now you're all set. Next time when POD is activated by a visitor to
your DB, it will convert the DB schema and then server the user's request.
You may want to be that visitor as conversion of DB file may take a long time
if your DB gets huge, and you probably do not want to leave a false slow DB
operation impression on your user.
- Somehow it seems that POD only recognized part of the
items I named for my entry items. Why is that?
Please note that you should always put a name for each item in your DB entry,
and you should always assign a size for each item. You should NEVER leave
any item name or size empty like this:"entry item name=name,,telephone,web
site,image,status" (in your .ini file). This will cause the "telephone,web
site,image,status" items not read in by POD. In fact, make it a habbit
not to write anything like "...,,..." in any DB configurations because
that will cause anything behind ",," be discarded by POD. You should
at least write something like "...,a,..." to avoid losing data behind
the second comma.
- I just uploaded all the files to my server and POD runs
fine. However, I can't find my .ini and .txt files any more on my FTP server.
Why is that?
It's likely that you set "hide files" to 1 instead of 0 in your
.ini file or checked the "hide files" checkbox during your online
configuration. It is always a good idea to set the "hide files"
to 1 for security purposes. But on some FTP server, this will make the hidden
files disappear. What you can do to make them reappear is simply set hide
files to 0 or uncheck that check box. Next POD is run, it will set files not
to be hidden and you will be able to see and update those files manually.
However, I strongly encourage you to use DBAdmin.html to manipulate the .ini
file online instead of directly modifying .ini file unless you have to. Also
try not to manually change the DB file itself (the .txt file) which could
introduce errors into the file and damage it. Always let POD modify your DB
file for you.
- I was a user of Online Database 4.37
or older version. How do I upgrade my old version to this new one?
I am sincerely sorry that the current registration process disallow direct
usage of the old database file. So please try the new POD V5.0 out by building
a new test database (you can copy your old DB settings into the new sample
.ini files to make a new configuration file and write the html interface files
as you would for your old database). If you like the new version and decide
to register for it, it will take no time to get your old DB to work with the
new version after registration. I feel bad to kind of "trick" my
previous users for a registration, but I it indeed is not my intention. I
just did not think of a way to get around the current registration process
without creating a bleach yet. If I find a solution to let you upgrade old
DB file to new version during trial period to try out the new version, I will
put it on the web for download immediately (it would be put on the download
page on http://ming.ddns.com). But until
I find one, please bear with the inconveniences it caused you. Again, I am
very sorry for it.
- I specified everything in the [report] section, yet I
did not receive any statistics report or error report. Why?
There are 3 possibilities why this could happen: 1. You must have a hit counting
item in your DB entries for POD to collect statistics and send them to you.
2. You must have a legitimate SMTP server AND your and/or your web server
has the clearance to send e-mail through that SMTP server. Or else SMTP server
authorization may fail and there is nothing POD can do. 3. You must set error
report and stat report to "1" before POD starts to send report to
you. In addition, if your DB is working perfectly and no error occurs, you
will not receive any error report.
- How often do you put out one upgrade version?
That really depends. If I or any user found a serious bug, I would try patch
it ASAP and put the new version up for download. For other situations, it
really depends on my schedule and request frequency.
- I think I did everything right, yet my DB named test that's
put under my cgi-bin\test subdirectory generated an error message "You
need to register to operate on more than one DB for more than 20 days".
Why?
That is because you are using unregistered version of POD. You have to name
your DB "fldb" and put DB files under cgi-bin\fldb subdirectories.
Your unregistered version will only recognize the DB named "fldb".
- I am using Sambar server. I get a message that ini file
cannot be found. Why?
Sambar Server V4.3 or earlier for Windows has a problem with absolute file
paths. I am contacting them to check it out. Regardless of their action, I
figured out a way to get around it and the new POD version 5.02 works on Sambar
server. In addition, you may want to follow the following instruction to set
security on Sambar for POD DBs:
1.Launch the index.html under the docs subdirectory of the directory you installed
Samba in.
2.Click on the "system administration" link. If this is your first time doing
administration, type "admin" as user and leave the password blank. If you've
done it before, use the user name and password you last used (or if you changed
them, use the new ones).
3.Click on the icon next to "user management". Click on all the trashcan icons
next to the user names that you want to delete (You should delete anonymous,
guest users). Then you should create a user name yourself by clicking on "create
user" link. The create user page will appear on right pane, and you can assign
user name and password there (let's assume you made a user "myname". You should
also click on "admin" user which belongs to group "root" and assign a password
to it too.
4.Go back to administration page by pressing "back" button of your browser.
This time click the icon next to "server configuration".
5.Scoll down the page until your find "Enforce .htaccess" on the left side
of the page. Click on the "yes" radio button to enable .htaccess". Go to the
bottom of the page and press "update server configuration" button.
6.Restart the Sambar server. Give it some time to come back on (it may take
a few minutes). This step is required for the settings set above to take effect
(this is unlike all other servers I have used, therefore I spent an hour trying
desparately to figure out what I did wrong. They did not make it easy because
their documentation on .htaccess did not mention restarting server, at least
I did not see such notice until I went for "security overview").
7.Put fldb.exe, fldbconf.exe under the cgi-bin directory of Sambar4.3 server.
Make a fldb subdirectory under cgi-bin and put these files under that subdirectory--fldb.ini,
fldb.lann, notfound.html, opcomplete.html, pwd.html, multi-admin.html, multi-user.html,
sing-user.html, sing-admin.html, infoneed.html. The fldb-search-user.html,
fldb-search-admin.html, fldb-add.html files can be put anywhere under the
server root directory.
8.Open notepad or any text editor, put these two lines in: AuthName "Authorized
Only" require user myname
9.Now save this file as .htaccess under the fldb subdirectory. 10.Now your
fldb subdirectory is protect and only the user "myname" can access files under
fldb directory. So your DB settings and DB file itself are safe now!
- 11 html files seems too many for me. Is there any way
to reduce my writing effort?
Yes. Starting with V5.04, two new link types are introduced --- "admin-index"
and "user-index". The former one is especially useful. You can make
an fldb-entry.html file that is a combination of fldb-add.html and fldb-search-user.html.
Then you put a link like "Please click <a href="admin-index">here</a>
to modify your entry" in sing-user.html (this link, when replaced by
POD dynamically, will lead to sing-admin.html, which was previous only led
to through multi-admin.html by fldb-search-user.html). This way you do not
have to write fldb-search-admin.html, and you can get rid of multi-admin.html
too. A total reduction of 3 files from the original 11 files. It may not sound
much because you still have to write 8 files, but the aesthetic improvement
could be siginificant. You can go to http://www.uiowa.edu/~facss/info.html
for an example of this "admin-index" and "user-index"
usage (PLEASE DO NOT CHANGE ANYTHING THERE because this
database is in actual use. It is NOT a sample database). The tags are
found when you press "display all ads" link, then click on any individual
ads, you'll see a display of an individual advertisement where there is a
link on the bottom of the page that says "click here to ...". That
link on "here" is an "admin-index" link.
- Can you recommend some free web servers that I can use
to run POD on?
You may refer to winfiles.com for
NT servers
and Win9x servers.
There are also a lot of web
servers (some free) on download.com.
Sambar web server is a nice one. Microsoft's
Personal Web Server (PWS) is a bit too big and offers less feature, yet it
runs OK and very easy to use. You can download PWS from Microsoft's web site.
Apache was and probably is still the No.1 web server, yet its Windows version
is not easy to use at all. But if you want a free one that's popular and stable
and well-tested for security, this is the one.
- Can I run POD on a local computer without using the internet?
Yes. All you need to do is to install a web server on your machine (and learn
to use it of course!), and then do everything exactly the same as you would
do for using POD on the internet, with one exception: For web server's address
in the .ini file and the .html files, you should use 127.0.0.1 as your web
server address. This is a special loopback address which will direct request
to the server goes the local route without using the internet.
- What web servers or OS did you test for POD on?
I have tested POD on Win98, NT4.0 and 2000. The program runs on Microsoft
IIS, PWS, and peer web service. It also runs on Sambar Web Server (V4.3),
Apache (V.1.3.12) and O'Reilly's WebSite Pro Server. Any web server that supports
cgi scripts should be able to let POD run, if you configured the server and
POD correctly.
Bug Report
Please report any bug to mingyiliu@yahoo.com
or webmaster@ming.ddns.com and
write down the symptom of the bug, when and where it happened. I will contact
you for details if needed, and if confirmed, I will send an updated version
back to you and make modifications to the program listed at download sites.
Notes:
cgi script: cgi script is a software application
that needs a web server to function --- it takes input from web server (the
input is likely coming from a client of the server, maybe a user's web browser),
processes the data and outputs result back to web server, which then sends
the result to end user's web browser for display. POD requires
that you have access to a webserver which runs on Windows95/98/NT4/2000 and
supports cgi. cgi stands for Common Gateway Interface. It's a standard to
be used for executable files to communicate with web servers. You can get
some introduction from NCSA's site.
SQL a programming language used in relational
database creation and operation.
Oracle is a trademark for Oracle Corporation.
Oracle database is their flagship product that practically dominates the internet
database market.
DBA Database administrator. They are the very
expensive computer specialists who take care of your DB, but they usually
have outstanding expertise and heavy responsibility to justify their sky-high
sallaries.
zip file: zip file (or zip archive) is a file
compressed with zip format. If you do not have a software to compress to or
decompress from zip files, go to www.winzip.com
to get one. They have the best zip software IMO.
PODx_x.exe: The x_x is version number. For
example, POD5_0.exe is POD version 5.0.
Schema: It specifies the structure of the
DB. In POD's case, it's about the entry item's length,
sequence, and total number, etc.
csv: comma separated value. This is a special
text file format in which each line represent an entry (or so to speak), and
all data items in that entry are separated by a comma (","). Many
DB programs support exporting the data files to csv format. POD
supports importing from and exporting to csv files. The "source.txt"
file in this package demonstrate what csv file looks like. Usually the extension
of the file is .csv, but with .txt it is still usable and recognizable by
POD too. Please note that in unregistered version of POD,
importing from csv files is not supported.
POD: Personal Online Database. It sometimes
refers to only fldb.exe which is the main program. Other times it refers to
the whole software package that contains many files.
POD-specific tags: These are a set of html-like
tags that are created for POD. They all take the form of ordinary html tags
(e.g., <a href="DB Item Name">, you need to substitute the
"DB Item Name" with a real DB Item Name you assigned, and POD will
provide the data in here with hypertext link to the data itself) or html comment
style (e.g., <!--DBItem="DB Item Name" Link="email">,
again, you need to substitute the "DB Item Name" with a real DB
Item Name you assigned, and POD will provide the data in here with email link
to the data itself). The details of these tags are described here.
cgi-bin: This is a special directory on
your web server that usually allows "execute" and/or "script"
access, but disallows "read" access. With such settings, a cgi
script may work with the web server to display dynamically-generated web
pages to end users using the data users sent to it. One web server may have
many cgi-bin directories to many users. You should contact your web server
administrator for permission to use cgi script in a cgi-bin directory, and
where that cgi-bin directory is. You can FTP the files to the cgi-bin directory
of the web server (FTP stands for file transfer protocol. There are a million
FTP client applications on the web, you can go to download.com
and search for FTP and find one that is good for your usage). Please note
that you should confirm with your web server administrator
that they did disallow "read" access to your cgi-bin directory!
That is very important to the security
of your DB files. Users that use Sambar web server V4.3 or higher please read
this.Other users please read this
for security notes.
item: Each DB entry is composed of many items.
For example, if you're using an addressbook, your DB entries may contain items
like "name", "phone number", "e-mail address",
etc.
Entry: Each DB is composed of many entries.
Each line in the text-based DB file (e.g., fldb.txt) is an entry. Each entry
is a collection of many items that represent the information
for an entity. For example, if you're using an addressbook, an entity is a
person, and an entry contains all the information about that person, which
may be composed of items like "name", "phone number",
"e-mail address", etc.
DB html
interface files. These include DBName-add.html, DBName-search-admin.html,
DBName-search-user.html, NotFound.html, InfoNeed.html, opcomplete.html, PWD.html,
multi-admin.html, sing-admin.html, multi-user.html, and sing-user.html. The
"DBName" here may be fldb, gbook, lib, or prod, and you can rename
it (but you cannot rename the latter 8 html files). All these files are compressed
into the fldb.zip, gbook.zip, etc. The named of these files cannot be changed,
and they must be put in a subdirectory under your cgi-bin directory.
Paypal
Online Payment Service
Paypal is an online service that enables you send or receive online payments
internationally. You need to sign on for the service at their web site (www.paypal.com).
If you are a non-U.S. (international) user, your payment to me or others may
be charged a fee. However, if you are an international user, paypal saves
you a lot of trouble (you don't have to do the currency exchange and wire
transfer to U.S. bank, etc).