Welcome to POD

Personal Online Database (POD)

Overview

Personal Online Database (POD) is a powerful cgi script that lets you easily create and manage an online database of almost any kind --- be it a complicated product catalogue, an online library book list, an idea-exchange center, or a simple yet highly customized addressbook or guestbook. 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 the business requirements. There is absolutely no programming knowledge required to use this software. Through learning a small set of special tags, you will be able to completely control the layout of the database program output with ease. POD supports the usual database operations (add, change, delete, search, sort, etc.) as well as the online 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 very fast. Please read more about the rich features of POD below. Latest POD version is V5.31 and supports Win95/98/NT/2000 and Unix/Linux.

POD contains two programs, fldb.exe which is the main database script that lets users access DB entry information, while another program, fldbconf.exe is specifically used for configuration of POD DBs. In this documentation when POD is mentioned, it is usually referring to fldb.exe; fldbconf.exe is used for Administration of POD.

Please note that POD and this documentation are continuously evolving. So please check back to Download page often for the latest POD version!


Download

You can download both Unix and Windows version of POD at http://www.ming-yi.org/download.html, which should always have the latest version. You should also be able to download from various internet software collection sites such as www.hotscripts.com (preferred), simtel.net, CNet's download.com, ZDNet's software library, etc.

List of files included in the POD download is at List of Files in User Manual section.


Features

  • Absolutely no programming knowledge required to use POD. There is no requirement on SQL , Java, JavaScript 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 in this documentation. If you need to change DB data, it is easy because the DB file is text-based for conveniency. 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.
  • Use your own language for html interface. English, Portugese, Spanish, ... practically any language that can be displayed by your browser. You can even choose Chinese!
  • Scalable. In theory, the database can support unlimited number of entries. In reality, though, it is best that entries are within tens of thousands. The searching speed will be limited by disk reading speed when DB size reaches more than tens of thousands of entries (see Search and Sort for estimation on search & sort speed).
  • 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 DB management system, thereby saving costs and trouble, truly making it possible to do-it-yourself.
  • Multiple DBs for the price of one . POD lets you run multiple databases with their own configurations for the same web site. That saves a lot of money which you would not want to waste on some other softwares.
  • Fast deployment. After an initial learning curve for designing your first DB, designing any more DB will be nearly as easy and fast as writing html files using your favorite text or WYSIWYG editors.
  • Automatic file upgrade when you install a newer version over a DB with old format.
  • 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.
  • More tweaks and tricks that you will learn during your customization of the DB, its interface and configurations.
  • Details of the features are listed in the individual sections.
    Installation and conversion
    Html Interface
    DB data
    Search and Sort
    Statistics and error report
    Administration
    Security
    Stability


Installation and Conversion

  • Copy and paste is all you need for installation. In fact, prior to V5.0, an installer was included. Since V5.0 installation support is not included because ALL you need to do is copy some files into assigned directories following simple instructions, there is no reason to put in an extra 600+ kB files that do not do much.
  • Convert any csv-styled files into DB format recognized by POD using the companion application module. This way you can export your old DB to csv file, and convert the data to be recognized by POD. This feature is only supported by registered version of POD.
  • Specify separation character of the csv-styled files. This is just a small conveniency when you do the conversion.


Html Interface

  • Html interface completely customizable. Unlike with some software where you do not actually have complete control over the so-called fully customizable html interface, with POD you can practically design the html interface completely by yourself. Then you add a set of POD-specific tags to let POD provide data to be displayed in your page. In one sentence, you provide the interface, POD takes care of the data and display. In fact, you can even use a different language like Spanish or Chinese for your DB when you design your own interface. In addition, if you do not want to design your own html interface, a variety of templates are included for a quick setup of your DB.
  • Support text input boxes, check boxes, radio buttons, drop-down menus, and multi-line text boxes for displaying DB data in an html form. Support displaying plain data anywhere in the html file.
  • POD runs both on Win95/98/NT/2000 and Unix/Linux. Migration between the two types of systems is really easy.
  • Administer DB through web browser.
  • Both POST and GET methods are supported, which means you can link any DB search from any html page.
  • Search results can be displayed on multiple pages. You can specify how many entries to be displayed per page, and how many pages to be displayed per section (one section is defined as the collection of the pages displayed between <prev page> and <next page> links).
  • Maximum number of entries returned in a search can be specified to prevent unecessary searches.
  • Special tags enable sorting results on any item. (see Search and Sort for details).


Search and Sort

  • Fast full-text search and sort whole DB. 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 by the hard disk reading speed of your internet server computer. If you have fast disks on your internet server machine and keeps DB compact, it is not uncommon to do full-text multiple-word search and sort on a 10-20 Mb DB file (usually 10,000-50,000 entries) within a second or two. Add, change, delete entries take much less time.
  • Search up to 10 words at a time. The entry returned during a search will contain ALL of the search words.
  • Combine multiple words into one search word. Just add quotation marks around the words you want to be treated as one word, and those words will serve as one search word during search.
  • Confine search to a partial word. If you put quotation mark on a partial word, the search will only return entries containing that partial word, not those that only contain a complete word. For example, "bed" will return entries like "bed on sale" but not "bedroom".
  • Sort search results in any item. With a specifal set of POD-specific tags, you will be able to tell POD to sort on a search result using any DB item as sort criteria.
  • Sort can be either ascending or descending dynamically as chosen in the interface html files as defined by POD-specifc tags. This way you can link sort ascending or descending on the same item even in the same page to let user choose which way THEY like instead of one static sorting order that YOU like!
  • Toggle sort order when users click again on the item they just sorted.
  • Support sort in different order according to different data types. This will ensure the correct results be displayed.


DB data

  • Store different data types. You can specify the stored item as a string, a number, a phone (number), or a time (stamp). By specifying string, you can practically store any text into your database and have it sorted lexicographically. By using different data types the data will be sorted correctly and/or displayed uniformly for aesthetic purposes.
  • Store image links and display images. You can specify DB items to be image links, and POD will intelligently replace the <img> tags in your html file with the image links stored in DB. This is best suitable for product catalogue, etc.
  • Store email and www links. These work similar to image links, except that they will be automatically linked when displayed.
  • Store a hit counting item on DB entries. You can specify an item to be a hit counting item and specify the initial value of the item when the DB entry is first added to the DB. When your customer or user viewed that entry, the hit counting item will be automatically incremented to reflect the interest in this entry. This is best suitable for tracking interest in your product catalogue, etc.
  • Store multiple time stamp items in the DB. You can specify to let POD enter the time stamp for you using current system time, or enter the time stamp yourself. The time stamp is Y2K compliant and will be sorted intelligently. However, like many other software products, if the time stamp is earlier than 1/1/1970 or later than 2025, the sort function on such items may not work correctly even though the stamp will be stored and displayed correctly.
  • Time stamp can be displayed and/or input in 10 different format.
  • Convert items even after your DB is created. You can let POD to change the names, sizes, or order of the items in the database, and POD will correctly transform your DB to new DB schema (as a precaution, please back up your DB first before you convert just in case unforseen event happens during conversion).
  • Specify which items in an entry are required to be non-empty for the entry to be considered valid. This way you can avoid getting empty entries into the DB that do not make sense.
  • Specify the size of the items in your database entries. The sizes can be later changed as described above.


Statistics and error report

  • Automatically send e-mail reporting critical errors or periodically send e-mail reporting DB statistics . E-mail reporting can be turned off on stats or errors separately.
  • DB statistics include specification of maximum of top hit entries (the entries whose hit counting item has the biggest numbers) be reported. How often should POD report stats, to which address the email should be sent, etc. The report will be sorted and contains links to the DB entries to faciliate reviewing the report. Email subjects can be specified with date and time automatically tagged when message is sent.


Administration

  • DB administration through html interface. Nearly every option can be configured online.
  • Password protection on remote DB administration. This password cannot be configured online to ensure security.
  • DB administration interface is separate from the DB html interface, therefore your users will not be able to accidentally or intentionally breaks your DB configuration.
  • POD generates a csv file to enable summary of your DB or export to other programs for analysis of your DB data. You can specify which items to be included in the csv file and in which sequence. You can also specify an item on which the csv file should be sorted.


Security

  • Separate passwords for search, add, delete/change entries. You can specify whether the passwords are case-sensitive or not, or if you want to use passwords to protect all or any of the DB operations or not.
  • Specify passwords on DB-level or Entry-level. You can either use one password for authentication of any entry in the DB or enter separate passwords for each entry in the DB. The latter choice is handy when you want to let each user enter/modify their own entry info, but do not want them to change other people's info.
  • Specify master password that only you, the DB administrator, knows, and that will override all other passwords.
  • Separate password for remote administration of DB options (see below for detail).


Stability

  • Multiple users are allowed to search (READ) the same DB at the same time , allowing POD to achieve a high throughput to meet high user demand.
  • On the other hand, concurrency handling is added to POD to ensure that no two users will be WRITING to the same DB at the same time , preventing DB from getting corrupted.
  • Hardware and software failure protection ensures DB file not get corrupted. A special commit-rollback mechnism ensures that all operations are logged and can be rolled back when failure happens.
  • Multiple DBs are put in different subdirectories while using the same executable file . This way each DB will not affect each other while no space is wasted on multiple DB programs & keeps your cgi-bin directory clean.


Vocabulary

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. Most of the popular DB softwares use it.

Oracle
A trademark for Oracle Corporation. Oracle database is their flagship product that practically dominates the internet database market. POD has nothing to do with Oracle though.

DBA Database administrator
 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.

Schema
It specifies the data structure of the DB. In POD's case, it's about the length, sequence, and total number etc. of DB entry items.

csv
comma separated value. This is a special text file format in which each line represent an entry, 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. POD contains two programs, fldb.exe which is the main database script that lets users access DB entry information, while another program, fldbconf.exe is specifically used for configuration of POD DBs. In this documentation when POD is mentioned, it is usually referring to fldb.exe; fldbconf.exe is used for Administration of POD . Occasionally POD is used to refer 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
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.

item
Each POD DB entry is composed of many items, which is simply another name for database fields. For example, if you're using an addressbook, your DB entries may contain items like "name", "phone number", "e-mail address", etc.

Entry
Each POD DB is composed of many entries. Each line in the text-based DB file (e.g., fldb.txt) is an entry, which is simply another name for database record. Each entry is a collection of many items (fields) and stores the information for a DB record.

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 the first three files (NOT the latter 8 html files!). All these files are compressed into the fldb.zip, gbook.zip, etc. The first three files can be put anywhere on the server (better not be cgi-bin though), but the latter 8 files has to be put in a subdirectory (must be "fldb" in unregistered version) under your cgi-bin directory.

entry-display pages
These pages are capable of displaying entries in a DB correctly. They are:
multi-admin.html, multi-user.html, sing-admin.html, sing-user.html, opcomplete.html.

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 can also save you a lot of trouble (you don't have to do the currency exchange and wire transfer to U.S. bank, etc).


Requirements

This topic is organized into two sections, Win32 platforms (including Win95/98/NT/00) and Unix flavors (including Linux).


Win32 Requirements

Win32

To run POD successfully, you would need to make sure that you have:

  • Access to a web server that supports cgi and allows user to run binary cgi scripts. POD is a binary cgi script so it needs a web server that supports cgi to run. Please note that some servers allow user to run perl scripts or other text-based scripts like asp, jsp or php. That is different than binary scripts. Please contact your server administrator to make sure that they do allow binary/compiled scripts to run. Usually if you see your web hosting company advertise that they allow cgi/perl scripts, that means likely they allow you to run binary scripts because here the cgi usually means the compiled scripts like POD. One simple way (actually, oversimplified way) to see if POD can run on your web server is to place fldb.exe in POD package into your server's cgi-bin directory, then type http://www.myserver.com/cgi-bin/fldb.exe?act=version into your web browser. Assuming that POD has the URL as www.myserver.com/cgi-bin/fldb.exe, the above URL will return the version number for your copy of POD. If you see a version number displayed, then POD will run for you for sure, provided that you set it up right later. If you do not see a version number, but instead you see an error message like 405, 500, that does not necessarily mean POD will not run for you. It could be that your cgi-bin directory was not set up correctly to run any script, etc. In such case, please contact your server administrator to 1. determine if running binary script in your cgi-bin directory is allowed. 2. if binary script is allowed, try to work with them to solve the problem(s). Potential causes of problem are listed in Problems & Solutions section.
  • Necessary dynamically linked library (dll) files that POD requires. This is usually not a problem if you are using a web hosting company because their servers usually have all the dlls POD requires. However, if you're using your own server that is old, then you need to know this: POD for Windows require mfc42.dll, msvcp60.dll and a few other common dlls that are in your Windows OS' c:\Windows\system or c:\WinNT\system directory. If you type "fldb.exe" at MS-DOS prompt to launch POD and find an error message box that says "xxx.dll is not found", that means a required .dll files is missing. In that case, please go to http://www.uforesources.com/dlldownload.html to download the missing ones.


Unix Requirements

Unix

To run POD successfully, you would need to make sure that you have:

  • Access to a web server that supports cgi and allows user to run binary cgi scripts. POD is a binary cgi script so it needs a web server that supports cgi to run. Please note that some servers allow user to run perl scripts or other text-based scripts like asp, jsp or php. That is different than binary scripts. Please contact your server administrator to make sure that they do allow binary/compiled scripts to run. Usually if you see your web hosting company advertise that they allow cgi/perl scripts, that means likely they allow you to run binary scripts because here the cgi usually means the compiled scripts like POD. One simple way (actually, oversimplified way) to see if POD can run on your web server is to place fldb.exe in POD package into your server's cgi-bin directory, then type http://www.myserver.com/cgi-bin/fldb.exe?act=version into your web browser. Assuming that POD has the URL as www.myserver.com/cgi-bin/fldb.exe , the above URL will return the version number for your copy of POD. If you see a version number displayed, then POD will run for you for sure, provided that you set it up right later. If you do not see a version number, but instead you see an error message like 405, 500, that does not necessarily mean POD will not run for you. It could be that your cgi-bin directory was not set up correctly to run any script, etc. In such case, please contact your server administrator to 1. determine if running binary script in your cgi-bin directory is allowed. 2. if binary script is allowed, try to work with them to solve the problem(s). Potential causes of problem are listed in Problems & Solutions section.
  • gcc/g++ 3.0 if you elect to use POD for Unix, dynamically linked version. Because the dynamically linked version uses shared library, therefore your web server must have gcc/g++ 3.0 installed. Specifically, POD needs an alias named libstdc++.so.3 in /usr/lib that points to the actual shared library libstdc++.so.3.0.1 (of course you can delete the alias and rename the library to libstdc++.so.3, if so wished). POD also needs libgcc_s.so.1 in /usr/lib. Both of these two libraries are a direct result of installing gcc 3.0 into /usr/lib directory. Please have your hosting company to upgrade their gcc package to 3.0 if they did not already do so. They should do the upgrade at you request because gcc is a very standard compiler, and your hosting company has the obligation to install the newest libraries. gcc 3.0 can be downloaded from gcc.gnu.org.
    On the other hand, if you can't have your server administrator to install gcc for you, you can still run POD using the POD for unix, statically linked version (downloadable from http://www.ming-yi.org/download.html), which does not require gcc but has a bigger file size. Be aware that it will load slower than the dynamically linked version because of its size.


Installation

This topic is organized into two sections, Win32 platforms (including Win95/98/NT/00) and Unix flavors (including Linux).

Be sure to check out Trouble Shooting when you have problems getting POD to run.

Please remember: NEVER manually edit or delete your DB file after it's created! This may result in POD not functioning correctly or the early expiration of trial period because POD forbids hampering with the DB file. After you configured POD, POD will take care of any DB operations including creation and managing. You can always convert the DB file to whatever you want following instruction in Administration of POD . There should be no need to delete or manually edit POD DBs.


Unix Installation

Win32 Installation

Please remember: NEVER manually edit or delete your DB file after it's created! This may result in POD not functioning correctly or the early expiration of trial period because POD forbids user hampering with the DB file. After you configured POD, POD will take care of any DB operations including creation and managing. You can always convert the DB file to whatever you want following instruction in Administration of POD . There should be no need to delete or manually edit POD DBs.

Please note that the following instructions are for the first time users (please also check out Requirements section if you did not use POD before). If you are experienced with POD set up already, you do not have to go through the exact steps. Also note that while these instructions seem very long, they are actually very easy to follow.

Directory structure of unzipped POD files:

Step 1: Files

Unzip the POD files in POD5_0.zip, POD_shared.zip and POD_static.zip to an empty or new directory on your computer. In the example on the left, files were unzipped into a directory named "package". Please note that when you unzip the files, you must preserve the original directory structure in the zip archive. If after unzipping, you do not see a directory structure as shown on the left, you should remove the unzipped files and unzip again, and make sure you preserve the directory structure (for example, if you are using winzip to unzip, just make sure you enabled "use folder names" in unzip settings).

Detailed explanation for files in the package can be found at List of Filessection. A brief summay of which files go where is below:

  • All files under "local" directory should be on your local computer.
  • All files under "server" should be on your web server. After you finished installation by following instructions below, you can upload the files to your server so that all files directly under "server" is in your web pages root directory. Upload all files under "cgi-bin" to "cgi-bin" directory of your web site, and after you choose which template files you want to use (all template files are under "fldb", "gbook", "lib" and "prod" directories), upload that directory to your web server cgi-bin directory under the name of "fldb" (see detail below). You can simply think of "server" directory as your web pages root directory, and the directory structure on the left should be a mirror image to what are on your server after you uploaded all files/directories.

Step 2: Installation Instructions

  1. First, pick a set of template files that you want to use as a start point for your database. The files under "fldb" directory in the above graph are template for an online addressbook, files under "prod" -> online product catalogue, "gbook" -> online guestbook, "lib" -> online library catalogue. If you choose "fldb", then delete the other 3 directories; If you choose another one, say, "gbook", then rename the word "gbook" in the names of some files under "gbook" directory to "fldb" (for example, "gbook.ini" -> "fldb.ini", "gbook-add.html" -> "fldb-add.html", and so on). Now delete the other 3 directories and rename "gbook" directory to "fldb". After this step, there should only be one directory under "cgi-bin" and it is named "fldb".
  2. After renaming of directory and files is done, go into "fldb" directory and open the file named "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. An example:
    [Administration]
    Enable Remote Administration=1
    Administration password=myremotepwd
    (of course, you should never use "myremotepwd" as your own password). Save the changes to "fldb.ini".
  3. Use a text editor to open the file "package\server\DBAdmin.html". 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.
  4. Use a text editor to open "package\server\cgi-bin\fldb\fldb-add.html". In the html source code, you will find "<form action=http://myserver/cgi-bin/fldb.exe, please change the URL to an appropriate URL. Following example above, you should use "http://mydomain.com/cgi-bin/fldb.exe" to substitute for the "http://myserver/cgi-bin/fldb.exe" above. Save the changes and do the same for "fldb-search-user.html", "fldb-search-admin.html" and "Sing-admin.html" in the same directory.
  5. Move "fldb-add.html", "fldb-search-user.html", "fldb-search-admin.html" under "package\server\cgi-bin\fldb\" to "package\server" directory.
  6. Now upload all files and directories under "server" onto your web server. As explained above, all files directly under "server" can be in your web pages root directory (they can be else where on your server too, but not in "cgi-bin" directory). Upload all files under "cgi-bin" to the "cgi-bin" directory of your web site, and "fldb" directory should still be under "cgi-bin" directory on your web server.
  7. Now open your web browser, and type in http://mydomain.com/DBAdmin.html (assuming that you uploaded "package\server\DBAdmin.html" to your web page root directory). Fill in "fldb" to the html form as the DB Name, and the password you set in instruction #2 above (myremotepwd) as the administration password, press the "start configuration" button which will take you to the administration page.
  8. Now please consult Administration of POD about how to set the DB options. You have two choices here: If you want to use the DB as is, you can simply modify only the URLs and e-mail address in the options and leave most things else intact. Alternatively, if you want to use differentnames for your DB add or drop a few items and make other changes to make your own DB. In that case, you have to follow instructions in Administration of POD and make the changes accordingly.
  9. After you finish setting the options, go to the bottom of the administration page and again fill in the password you set in instruction #2 above (myremotepwd) as the administration password. Press the "submit new configuration" button.
  10. Now you would need to either write your own html files following instructions in User Manual or use the template html files (such as fldb-add.html, Sing-admin.html etc.) as is. Do not forget that you need to upload the modified html files to your web server before using them! You can then launch the web browser and type http://mydomain.com/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 and then 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 which lets them view the entries you entered into the DB. If after these steps you cannot add your entry and get error messages from your web server, please consult Trouble Shooting section.
  11. 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.


Unix Installation

Please remember: NEVER manually edit or delete your DB file after it's created! This may result in POD not functioning correctly or the early expiration of trial period because POD forbids user hampering with the DB file. After you configured POD, POD will take care of any DB operations including creation and managing. You can always convert the DB file to whatever you want following instruction in Administration of POD . There should be no need to delete or manually edit POD DBs.

Please note that the following instructions are for the first time users (please also check out Requirements section if you did not use POD before). If you are experienced with POD set up already, you do not have to go through the exact steps. Also note that while these instructions seem very long, they are actually very easy to follow.

Directory structure of unzipped POD files:

Step 1: Files

Unzip the POD files in POD5_0.zip, POD_shared.zip and POD_static.zip to an empty or new directory on your computer. In the example on the left, files were unzipped into a directory named "package". Please note that when you unzip the files, you must preserve the original directory structure in the zip archive. If after unzipping, you do not see a directory structure as shown on the left, you should remove the unzipped files and unzip again, and make sure you preserve the directory structure (for example, if you are using winzip to unzip, just make sure you enabled "use folder names" in unzip settings).

Detailed explanation for files in the package can be found at List of Files section. A brief summay of which files go where is below:

  • All files under "local" directory should be on your local computer.
  • All files under "server" should be on your web server. After you finished installation by following instructions below, you can upload the files to your server so that all files directly under "server" is in your web pages root directory. Upload all files under "cgi-bin" to "cgi-bin" directory of your web site, and after you choose which template files you want to use (all template files are under "fldb", "gbook", "lib" and "prod" directories), upload that directory to your web server cgi-bin directory under the name of "fldb" (see detail below). You can simply think of "server" directory as your web pages root directory, and the directory structure on the left should be a mirror image to what are on your server after you uploaded all files/directories.

Step 2: Installation Instructions

First, pick a set of template files that you want to use as a start point for your database. The files under "fldb" directory in the above graph are template for an online addressbook, files under "prod" -> online product catalogue, "gbook" -> online guestbook, "lib" -> online library catalogue. If you choose "fldb", then delete the other 3 directories; If you choose another one, say, "gbook", then rename the word "gbook" in the names of some files under "gbook" directory to "fldb" (for example, "gbook.ini" -> "fldb.ini", "gbook-add.html" -> "fldb-add.html", and so on). Now delete the other 3 directories and rename "gbook" directory to "fldb". After this step, there should only be one directory under "cgi-bin" and it is named "fldb".

  1. After renaming of directory and files is done, go into "fldb" directory and open the file named "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. An example:
    [Administration]
    Enable Remote Administration=1
    Administration password=myremotepwd
    (of course, you should never use "myremotepwd" as your own password). Save the changes to "fldb.ini".
  2. Use a text editor to open the file "package/server/DBAdmin.html". 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.
  3. Use a text editor to open "package/server/cgi-bin/fldb/fldb-add.html". In the html source code, you will find "<form action=http://myserver/cgi-bin/fldb.exe, please change the URL to an appropriate URL. Following example above, you should use "http://mydomain.com/cgi-bin/fldb.exe" to substitute for the "http://myserver/cgi-bin/fldb.exe" above. Save the changes and do the same for "fldb-search-user.html", "fldb-search-admin.html" and "Sing-admin.html" in the same directory.
  4. Move "fldb-add.html", "fldb-search-user.html", "fldb-search-admin.html" under "package/server/cgi-bin/fldb/" to "package/server" directory.
  5. Now upload all files and directories under "server" onto your web server. As explained above, all files directly under "server" can be in your web pages root directory (they can be else where on your server too, but not in "cgi-bin" directory). Upload all files under "cgi-bin" to the "cgi-bin" directory of your web site, and "fldb" directory should still be under "cgi-bin" directory on your web server.
  6. Now open your web browser, and type in http://mydomain.com/DBAdmin.html (assuming that you uploaded "package/server/DBAdmin.html" to your web page root directory). Fill in "fldb" to the html form as the DB Name, and the password you set in instruction #2 above (myremotepwd) as the administration password, press the "start configuration" button which will take you to the administration page.
  7. Now please consult Administration of POD about how to set the DB options. You have two choices here: If you want to use the DB as is, you can simply modify only the URLs and e-mail address in the options and leave most things else intact. Alternatively, if you want to use differentnames for your DB add or drop a few items and make other changes to make your own DB. In that case, you have to follow instructions in Administration of POD and make the changes accordingly.
  8. After you finish setting the options, go to the bottom of the administration page and again fill in the password you set in instruction #2 above (myremotepwd) as the administration password. Press the "submit new configuration" button.
  9. Now you would need to either write your own html files following instructions in User Manual or use the template html files (such as fldb-add.html, Sing-admin.html etc.) as is. Do not forget that you need to upload the modified html files to your web server before using them! You can then launch the web browser and type http://mydomain.com/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 and then 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 which lets them view the entries you entered into the DB. If after these steps you cannot add your entry and get error messages from your web server, please consult Trouble Shooting section.
  10. 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

Software License Agreement For Personal Online Database

(Please carefully read the agreement in full before you install and use the software)
Copyright (C) 2000 Mingyi Liu. All Rights Reserved

Definition: "the software" "this software" "the program" "this program" below all refer to the Personal Online Database program and components in the Personal Online Database software package. "the author" and "I", refer to Mingyi Liu, the author of Personal Online Database.

By using this software you agree to be bound by the terms of this agreement as follows:

Grant of license

The following license agreement applies to registered individual version of the program. For license and registration for evaluation copy of the program, please refer to the "evaluation license" section below. This software is being licensed to you by Mingyi Liu on an "AS IS" basis. You may install and test this program on no more than two computers. You may not distribute any component of the licensed software package to others on any media and/or through any network. No one other than you yourself is granted the license to use the copy of the software registered to you. Additionally, at any time only one computer may provide any kind of service rendered by your copy or copies of the registered software over any type of network to any group of users for any type of usage.

If you intend to use more than one computer to provide service rendered by the software, you must obtain a group license which allows you to use more than one computer to provide such service. A registered group license will also cost more than an individual license. Other than these differences a registered group license is identical to registered individual license.

You may not decompile, or modify any component of the software package in any way without the written consent of the author. You may not rent, lease or sublicense the software. You may not export the software into any country prohibited by the United States Export Administration Act and the regulations thereunder.

Governing Law

This agreement shall be governed by the laws of the State of Iowa and U.S. federal law.

Disclaimer of Warranty

THIS SOFTWARE AND ANY OF THE ACCOMPANYING FILES AND COMPONENTS ARE SOLD "AS IS" AND WITHOUT ANY WARRANTIES AS TO PERFORMANCE OR MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. As the software user, you must assume the entire risk of using the program. In no case should the author, Mingyi Liu or any other person or company, be held responsible for any loss or damage to any data or property or anything else directly or indirectly resulted from the usage of this software. Any liability of the seller or author is limited to product replacement or refund of purchase price at request after any software defect is detected and proven.

Evaluation and Registration

EVALUATION LICENSE

The following license applies to the evaluation version of Personal Online Database program. For license of the registered version, please refer to the license agreement above.

This software is a shareware. Subject to the terms below, you are licensed to use this software solely for evaluation purposes without charge for a period of 20 days. If you use this software after the 20 day evaluation period a registration fee of U.S. $29 for non-commerical usage or U.S. $79 for commercial usage is required. Commercial usage is defined as any kind of usage that includes any service by this software in any activity that also involves monetary transactions. For example, using this software to produce an online catalogue database to showcase your product, even if you do not use this software to actually sell them or receive payment for them and/or you are not a registered business, this usage is defined as commercial usage. Payments must be in US dollars drawn on a US bank, and should be sent to 158 Concord Rd. Apt. F23, Billerica, MA 01821, USA (NOTE that this address may change in the future. Always contact author by email at mingyiliu@yahoo.com before sending money through regular mail!). Please do not send cash. A much more convenient way is go to the bottom of this document, and pay for POD license through paypal international online payment services using your credit card or other cards (please note that you must be in a country where paypal services covers. They cover 26 countries as of Jan 2001). When your payment is received, you will receive through e-mail the instructions on how to enable the software. You must abide by the non-distribution restrictions once you registered (see below the paragraph in capital letters for the restriction). Please include your e-mail address with your payment. You email address will not be disclosed to any other person or company for any purpose. It will be used exclusively for receiving information about newer version that has bugs fixed or features improved.

PLEASE NOTE THAT ONCE YOU REGISTER, YOU AGREE NOT TO DISTRIBUTE OR DISCLOSE ANY REGISTRATION INSTRUCTION AND/OR ANY COMPONENT OF THE REGISTERED SOFTWARE PACKAGE THROUGH ANY MEDIA OR NETWORK TO ANY PERSON OR COMPANY OR OTHER THIRD PARTY UNDER ANY CIRCUMSTANCES. FAILURE TO ABIDE BY THIS CONDITION IS A DIRECT VIOLATION OF U.S. AND INTERNATIONAL COPYRIGHT LAWS AND SUCH ACTIONS MAY BE SUBJECT TO PROCECUTION AND PUNISHMENT.

Unregistered usage of this software after the 20-day evaluation period is a violation of U.S. and international copyright laws. If you intend to use this software on more than one web site, you must obtain another discounted license or group license.

You may not use unregistered evaluation copy of the software on more than one computer that provides service through any type of network.

Distribution of Evaluation Version

You may make copies of the evaluation version of the software and/or distribute them through any media to anyone. You may NOT modify any component of the evaluation version of the software package including any type of documentation including license agreement. You may not charge for distribution of the software and you may not resell the software.

You may not decompile, or modify any component of the software package in any way without the written consent of the author. You may not rent, lease or sublicense the software. You may not export the software into any country prohibited by the United States Export Administration Act and the regulations thereunder.

Governing Law

This agreement shall be governed by the laws of the State of Iowa and U.S. federal law.

Disclaimer of Warranty

THIS SOFTWARE AND ANY OF THE ACCOMPANYING FILES AND COMPONENTS ARE SOLD "AS IS" AND WITHOUT ANY WARRANTIES AS TO PERFORMANCE OR MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. As the software user, you must assume the entire risk of using the program. In no case should the author, Mingyi Liu or any other person or company, be held responsible for any loss or damage to any data or property or anything else directly or indirectly resulted from the usage of this software. Any liability of the seller or author is limited to product replacement or refund of purchase price at request after any software defect is detected and proven.

Purchase the license for POD through paypal online payment service

For non-commercial license (costs $29) click the button below

For commercial license of POD (costs $79) click the button below


Administration of POD

Important things that you must read before you run POD!

Most important!
"Convert to new items now?" under "Database Entry Info Configuration" is a dangerous choice --- If you do it right, the program will function just as you wished. If you make an error, say, you mixed up the old item (exists in the database already) and new item (the one that you wished for), you could lose all the data for that item! The safe way to do it is: BACKUP your old database first !!! Then you can choose this choice and let the program convert the database. However, be aware that the program will produce a temporary file that is about the same size as your old database, which means your allowed space on web server hard disk should have big enough to accomodate at least 2 copies of your old database at the peak to proceed! After the conversion, of course, there will only be one copy of DB left.

Another thing (not as serious as above) is that you MUST include "Password" as the last item even if you choose not to protect your database with password authentication.

ALSO NOTE: If you do not have a POD-format database file yet, do not try create an empty POD DB yourself. Just access the POD program through your web server after you finished configuration and POD will create an empty file for you (Do not manual modify POD DBs unless you know what you are doing ).

Information about all the POD DB configuration options are listed in the individual sections:

Database Entry Info Configuration
File Options Configuration
Output File Options Configuration
Password Options Configuration
Search & Time Options Configuration
Remote Administration Configuration
EMail Report Options Configuration
Registration Options Configuration


Database Entry Info Configuration

  1. Info of the current entry items (name,storage size,data type).
    First, explanation for name:
    This is where you name the items a DB entry should contain. For example, if you try to make an addressbook, you might want the names to be "*name,e-mail,telephone,web site,image,status,hits,birthday,comment,time stamp,*password" here (Note that each of these names should be the first value on each line (size and type are 2nd and 3rd value, respectively). Explanations for item size and type are described below). The "*" indicates this is an item that must be filled in when the DB entry is added or changed. The total number of the items in a DB entry cannot exceed 500. You should separate each item with a "," and do not leave spaces between "," and item names. To ensure correct parsing of your html forms, your item names should not contain the plus sign --- "+". In addition, usually you would want to make the first item required. 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.
    Second, storage size (in characters) of current entry items
    Here you indicates at most how much space can each item take in your DB. You should try to plan efficiently here and do not allocate huge storage that are not needed. For example, if you allocate "400" for name item, it sure is allowed, but you probably wasted at least 350 characters in your DB. Please note that the speed of POD is directly related to the size of the DB file. In fact, the speed of DB is limited by how fast your hard drive allows it to read the DB file. An excessively big DB file will slow down your DB significantly. One thing you should note is that for items of number data type, the storage shouldn't be more than 11 because the number data type should not be longer than 10 characters (in fact, you should make it smaller than 10 or else you should use string as data type. For this reason, it is better that you use "string" as the type for ISBN number--10 characters long--for books, not "number" as type. This way in fact ISBN number should be sorted correctly), and an extra one character is needed for each item for POD's internal usage. Therefore if you indicate "40" for an item, that item can at most store 39 characters' worth of data. You should indicate all the storage sizes for each of the item you named in 1. You should allow 20 characters for any item to be used as time stamp. Any item longer than specified length will be automatically truncated when they are submitted to POD and an indication will show up in browser. If this happened during converion of DB item schema, it will be reported as well.
    Third, data type of current entry items
    Here the data type of the DB entry items are indicated. For example, for the above example, the data typesmay be "string,string,phone,string,string,string,number,time,string,time,string", where telephone item takes the data type of "phone", hits item takes the type of "number", time stamp item takes "time" while all others take "string" as their data type. string,number,time,phone are the only 4 types supported so far in POD 5.0. You should indicate all the data types for each of the item you named in 1.
  2. Info of the previous entry items (names and sizes)?
    This option is used when you convert DB schema. If, after you used DB for a while and found that you forgot to add an item in, and left too little storage space for one item, you can specify the new item name and storage settings in 1 and 3, and specify the original item name and storage settings in these two options. Then you check the checkbox "Convert to new items next time POD is run?". The next time POD is run, the conversion will automatically happen before any other operation is performed, thereby completing the conversion of DB schema. If you do not check that check box, the program will not convert even if your current items differ from previous items. (Again, if you're using POD 5.20 or higher, the names should be on separate lines. Each line contains item name and item size, but not item type).
  3. Convert to new items next time POD is run?
    Please see above (Option 2).
  4. How much can can the waste entries occupy (20-80 %) before the DB compresses itself?
    When an entry is deleted from DB by POD, the entry does not physically disappear for performance reasons. It is only marked as deleted. Occasionally, DB needs to be compressed to get rid of the wasted space occupied by these deleted entries. In this option, you can specify when DB is compressed. Entering 20 here means when number of deleted entry exceeds 20% of total number of entries, the POD will automatically compresses the DB for you.


File Options Configuration

  1. Database HTML File URL (e.g. http://Myserver/DB.html)
    Here you specify what is your the URL of your database entrance page. This URL is used only when error happens and POD generates an automatic link back to your database main page. If no error happens, your user should not see this URL used, therefore the value you entered here is not crucial to POD function.
  2. DB Program URL (e.g. http://MySever/cgi-bin/DB.exe)
    Here you specify what is your the URL of your database program (fldb.exe). For example, if you renamed POD program from fldb.exe to myDB.exe, and put the program into your web server's cgi-bin, which has URL as http://MyServer.com/cgi-bin, then the URL that should be put here is http://MyServer.com/cgi-bin/myDB.exe. This URL is used extensively by POD and is crucial to the correct function of POD, so please take care to enter correct the info here.
  3. DB Configuration Program URL (e.g. http://MySever/cgi-bin/DBconf.exe)
    Here you specify what is the URL of your database configuration program (fldbconf.exe). For example, if you renamed POD configuration program from fldbconf.exe to myDBconf.exe, and put the program into your web server's cgi-bin, which has URL as http://MyServer.com/cgi-bin, then the URL that should be put here is http://MyServer.com/cgi-bin/myDBconf.exe. This URL is used only by POD's configuration program and is crucial to the correct function of the configuration program, so please take care to enter correct the info here.
  4. URL of Help File for Remote Administration
    This URL is where you put this help file at. For example, you may have put this one at http://MyServer.com/MyDirectory/OldbHelp.html. This URL is only used by fldbconf.exe to generate a dynamic help link. It is not crucial to the function of POD or fldbconf.exe.
  5. Hide Files checkbox
    This checkbox is used only for POD for Windows version. It has no effect on POD for Unix. On Win32 platforms, if you check this box, POD will automatically set fldb.ini, fldb.log, fldb.txt to "hidden" file attributes. This will prevent www users from reading content of those files directly on some (NOT ALL!) web servers. However, it may also make it impossible to ftp your updated file if your web server administrator set your access setting too restrictively. Moreover, it may prevent POD from opening these files for read and write too which will prevent POD from functioning!! Unless you have no way to hide your files from reading by users, try NOT to check this checkbox.

Contact

  1. Webmaster E-Mail Address
    This e-mail address is only used when error happens and POD generates an automatic link to your email address. If no error happens, your user should not see this email address used, therefore the value you entered here is not crucial to POD function.


Output File Options Configuration

  1. Input CSV file path
    This is the absolute path of the csv (comma separated value) file that is to be converted to the format recognized by POD. An example would be C:\temp\pod\mydb.csv for Win32, or /home/myname/pod/mydb.csv for Unix. This is used when you have previously used another database program and you want to convert it to POD DB format. You first export your previous DB into csv format, and then specify the path of the exported file here. Please note that you need to run conversion.exe to convert the csv file. conversion.exe can be launched without a web server. Instruction for conversion.exe is below.
  2. Output format
    Here you specify the data in the csv files belong to which items of your new DB. For example, your csv file is composed of lines like "Bob,800-888-8888,Ph.D", then you might wish to put "name,telephone,status" here because these are the entry items names (assigned in Database Entry Info Configuration option 1) those data should belong to.
  3. Separation character
    For csv files, it is comma ",". If your original DB file is separated by, say, "|", then put "|" here (without the quotation mark of course).

conversion.exe usage instruction
This feature is only supported in registered version of POD! conversion.exe is a standalone application that can be run independently under Win32/Unix OS, unlike POD (fldb.exe and fldbconf.exe) which must be accessed thru web server. Therefore you can use it on your local computer to convert your old DB file first, then upload those files to your web server. Please follow the step-by-step instructions below to convert a csv file to POD format:

  1. Configure your DB as you would normally do following instructions in all other configuration sections, after which you make a copy of your ini file and rename it as oldb.ini and put it under the same directory as conversion.exe.
  2. Put the path of your old database (in .csv format) into that oldb.ini file [conversion] section as described above. Double click conversion.exe file to execute it. conversion.exe will take the old DB file and covert it to the format recogized by POD. The new DB file is output to the same directory as conversion.exe with the name FLDB.txt. It is best to launch conversion.exe through MS DOS prompt on Win32 or shell on Unix/Linux, because you'll get to see any error mesg or instructions that way.

Please note: No sorting of the entries in the source file will be performed & time stamp will not be converted as POD does not try to guess which stamp format your old database was using. Different data types are not supported during conversion, which is usually not a problem as you normally could specify the type later (except for time stamp data type). conversion.exe simply copies the content of each item in your old DB into the items of your new POD-format DB.
The "source.txt" in the package is used to demonstrate what csv file looks like and how conversion.exe works. You may practice importing with the file as follows. First you have to configure your DB as described in Installation (most importantly, you should assign the names and sizes to the DB entry items). Then assign the appropriate item names to each of the 5 data items in source.txt that is separated by "," in output format in this section. These item names can be any item names you assigned in Database Entry Info Configuration (if some data in the .csv file should not be imported, you should put a * sign in its place. Do not leave its place empty ). Also remember to set path of source.txt in the path in Output File Options Configuration section. After that you can follow the instructions described above to launch converions.exe to convert the file.


Password Options Configuration

  1. Use Password to Protect Your Database ? (Passwords should be at least one character shorter than the length you designated for "password" DB entry item you set in Database Entry Info Configuration!!)
    If you do not check this box, POD will disregard any password in this section. Therefore if you want to use password to protect any database operation, you should check this box.
  2. Password for searching database
    Here you specify the password the user must enter to be able to search your database. If you do not want to protect this operation, leave it empty.
  3. Password for changing entries
    Here you specify the password the user must enter to be able to change or delete entries in your database. If you do not want to protect these two operations, leave it empty.
  4. Password for adding entries
    Here you specify the password the user must enter to be able to add an entry to your database. If you do not want to protect this operation, leave it empty.
  5. Password is case sensitive ?
    Check this box if all the passwords used are case-sensitive. Uncheck it otherwise.
  6. User set his/her own password ?
    Check this box to let user enter their own passwords when they add an entry to your database. Later they will be able to use that password to change or delete their own entries, but they will not be able to change or delete any other people's entries.
  7. Master password (overrides user-defined password)
    With this password, you will be able to override any user's own password and perform any operations you want. However, you should beware that once you use master password to override a user's own password, the password stored in his/her entry will be replaced by the master password and the original password is lost. Also do not let any user get access to this password for obvious security concerns.


Search & Time Options Configuration

  1. Use time stamp in database
    If any item in your DB is a time stamp item, check this box.
  2. Name of the time stamp items are
    Put any item that should be considered a time stamp item here. Put a "*" in front of the name of the item indicates that the value of this item should be entered by user. The default time stamp is entered by POD using the current system time.
  3. Name of the master time stamp item is
    When you specify that entries of your DB should expire and be deleted after a certain period, there should be only one time stamp out of all time stamp items that should be checked for item's expiration. The name of that time stamp is indicated here as master time stamp.
  4. Time stamps display format, respectively (1-10)
    The format by which the time stamps should be displayed. You should enter as many values here as you entered in option 2 above. Note that in option 2 you enter the names of the time stamp items, but here you enter a number for each of the time stamp items. The number must be between 1 to 10. The explanation of the format the number stands for is below:
    1: mm/dd/yyyy
    2: Abbreviated day of week name, mm/dd/yy
    3: mm/dd/yyyy, hh:mm
    4: mm/dd/yy, hh:mm am/pm
    5: dd/mm/yyyy
    6: Abbreviated day of week name, dd/mm/yy
    7: dd/mm/yyyy, hh:mm
    8: dd/mm/yy, hh:mm am/pm
    9: yyyy/mm/dd
    10: yy/mm/dd, hh:mm am/pm
    Please note that if, say, you specified format 4 for a time stamp item whose value should be entered by user, that user must use format 4 to enter the value to have POD correctly recognize the format and store the time value correctly. Or else POD will simply store the string user entered, and this string will not be sorted correctly. You should display the format information to your user if you let them enter the time stamp value themselves.
  5. Life span of entries in days (0 means never expire)
    With this choice, any item that is this number of days older than current time will get deleted. This provides a way to let old entries expire by themselves. If you do not want any entry in your DB to get expired any time, enter 0 here. Only integer is allowed in this option.


Remote Administration Configuration

Please note that when you configure DB remotely through DBAdmin.html, you should not be able to configure any options in the section of the .ini configuration file. I include this here just in case you want to configure these options manually in the .ini file.

  1. Enable remote administration
    Set this choice to "1" if you want to administer DB options remotely through DBAdmin.html. Set it to "0" if you do not wish so. It is encouraged that you set it to "1".
  2. Administration password
    The password for administer DB options remotely through DBAdmin.html.
  3. Administration help page URL
    This is where you put the help page (OldbHelp.html, whose content is the same as "Administration of POD" in this documentation) on your web server. If the URL of this page on your server is "http://myserver/OldbHelp.html", put it in here. This help page might not be included in the future distribution of POD. You should always refer to this documentation instead just to be safe.


EMail Report Options Configuration

Please note that for Windows systems, it is your reponsibility to make sure that you (your web server) have the clearance to send e-mail with the SMTP server address you provide below. If authorization fails for POD to send email through your SMTP server, POD has no convenient way to inform you of this problem and will NOT report an "authorization failure" message. For Unix users, your web server must have the standard "sendmail" utility at /usr/sbin/sendmail. POD does not implement SMTP on Unix and use the standard "sendmail" to send email reports. So you should make sure your web server has it, if you want email reporting capabilities.

  1. Use hit counting on DB
    If you check this checkbox, it means one of the items in your DB entry items is a hit counting item. Any time any entry of your DB is viewed by a user, the hit counting item of that entry will be incremented by 1. This provides a mechanism that you can use to track interest in the entry (product) in your DB.
  2. The name of the item used for hit counting is
    Enter the name of the item that is the hit counting item here.
  3. Every how many days should POD report statistics to you?
    If you enter 7 here, POD will send you hit counting report approximately every 7 days (please note that if on the 7th day, nobody visited your DB and POD is never launched, you will not get a report. POD needs to be launched by visitors of your DB before it can report anything to you). In addition, if POD fails to send email to you on time due to SMTP server failure etc., POD will try again approximately half a day later (again, the time line here is dependent whether there is user viewing your DB at the time or not).
  4. Entries with top X hit counts should be reported
    If you enter 10 here, it means POD will send you a report that contains the 10 entries in your DB with the highest hit counts. The value of the first item of each entry will be displayed in the report and be linked to the actual entry in case you want to review that entry.
  5. Use e-mail to report serious DB errors
    Check this checkbox if you want POD to send email to you to report serious DB errors that need your attention.
  6. Use e-mail to report entries with top hit counts
    Check this checkbox if you want POD to send email to you to report the statistics and info using the settings you specified above from 1 to 4.
  7. Error time, type (program generated, do not edit!)
    This is used by POD. Never ever edit it by yourself! When you're using remote administration through DBAdmin.html, you should not be able to configure this option. I include documentation here in case you want to edit the .ini configuration file manually.
  8. Last stat report time (program generated, do not edit!) is
    This is used by POD. Never edit it by yourself! When you're using remote administration through DBAdmin.html, you should not be able to configure this option. I include documentation here in case you want to edit the .ini configuration file manually.
  9. The SMTP server for sending the mail is (This is only needed for POD for Win32)
    Enter the domain name or IP address of your SMTP server here. SMTP server is needed for POD to send email to you. Please note that it is your responsibility to make sure this SMTP server will allow you send email through it. Some or all of the following conditions must be true for that to happen: a. Your SMTP server does not authentication. This is very rare. b. Your SMTP server uses domain name to authenticate. If this is the case, make sure the domain name of the computer POD resides on is authorized to send mail on that SMTP server. c. Your SMTP server uses sender and/or receiver's email address to authenticate. In that case, make sure your email addresses are authorized. There could be other situations, contact the web master for your SMTP server for more info.
  10. The e-mail address for sending the mail is
    Enter any email address you want here. Your own email address is a good choice.
  11. The e-mail address to receive the report is
    You probably want to enter your own email address here to receive the report.
  12. The e-mail subject for the statistics report is
    This subject will be on the subject line on the mail sent to you when stats are reported.
  13. The e-mail subject for the error report is
    This subject will be on the subject line on the mail sent to you when errors are reported.


Registration Options Configuration

  1. Reg
    Do not modify this option unless you registered and received instructions on how to set this value.


User Manual

  • Requirement of POD on your system is detailed in Requirements section.
  • Installation is detailed in Installation section.
  • Setting POD DB options is detailed in Administration of POD section.
  • Samples of POD DBs and their files can be found at http://www.ming-yi.org/work.html. Please go there to check out NOT ONLY how the sample DBs work, but also the source files. (note that although www.ming-yi.org uses a Unix server, POD for Windows works the same way).
  • This manual section is mainly used for explaining the files inside POD package and how to use POD-specific tags to create your own DB html files that serve as the interface between users and your DB.
  • A note for POD for Windows user who wants to migrate to Unix system : On Windows, all file names are case-insensitive (i.e., "fldb.exe" = "FLDB.exe"); However, on Unix "fldb.exe" is not the same as "fLdb.exe" or "Fldb.exe" etc. You must modify the file names and html forms accordingly. An excellent free tool for batch replace on Windows is BK ReplaceEm from www.download.com. Using this tool you can replace contents for many files at once. If you're familiar with grep on Unix, you may use that tool too.


List of Files

Directory structure of unzipped POD files:

Step 1: Unzip Files

Unzip the POD files in POD5_0.zip, POD_shared.zip and POD_static.zip to an empty or new directory on your computer. In the example on the left, files were unzipped into a directory named "package". Please note that when you unzip the files, you must preserve the original directory structure in the zip archive. If after unzipping, you do not see a directory structure as shown on the left, you should remove the unzipped files and unzip again, and make sure you preserve the directory structure (for example, if you are using winzip to unzip, just make sure you enabled "use folder names" in unzip settings).

Detailed explanation for files in the package can be found below.

A list of files included in POD package:

Location (refer to graph above) | File Name | Eventual Location on Server | Function of the File
package | readme.html | anywhere | A few pointers on how to start using POD.
cgi-bin | fldb.exe | /cgi-bin/ on server | POD main program. Used in nearly all html forms.
cgi-bin | fldbconf.exe | /cgi-bin/ on server | Remote administration of POD. Used by DBAdmin.html
bin | conversion.exe | anywhere on local computer | Convert csv file into POD DB format. Instruction of usage is in Output File Options Configuration
bin | source.txt | same directory as conversion.exe | A sample CSV file that can be converted to POD DB. For testing only.
server | DBAdmin.html | anywhere on server | Used for configuring POD DB settings. Instructions are self-contained.
old | *.* | anywhere | These files are deprecated already. They are not updated since V5.28 and are included only for those who do not have a computer running Win32 and do not have a modern web browser and do not want to upgrade their browser to support java (is there anybody like that?).
fldb | *.* | read below for detail | Template files for online addressbook
prod | *.* | read below for detail | Template files for online product catalogue
gbook | *.* | read below for detail | Template files for online guestbook
lib | *.* | read below for detail | Template files for online libary catalogue
javadoc | *.* | anywhere | POD documentation for those who cannot view pod.chm file. Use "index.htm" to read documentation. For those who can view pod.chm file, please use pod.chm which is searchable.
documentation | pod.chm | any Win32 computer | All-in-one resource for POD documentation since POD V5.28
local | license.html | anywhere | License agreement for POD.

How to use pod.chm to read POD documentation: Simply double click the file on Win95/98/NT/2000/ME/XP platforms to read it.

Explanations for the template files: (DBName below is the name for your DB, like "fldb" or "gbook". Note that even if you decide to build an online guestbook or other DB, you must rename the DBName to "fldb" in the unregistered version and put them in "/cgi-bin/fldb" directory. Usage of the DBName.lann is explained here, and here explains usage of all the html files):

File Name | Eventual Location on Server | Function of the File & Note
DBName.ini | /cgi-bin/DBName/ | POD configuration file. Must be the same name as the subdirectory name, which can only be "fldb" for unregistered version.
DBName.lann | /cgi-bin/DBName/ | language file. Useful for making POD DB in a language other than English. Read below for details on usage.
DBName-add.html | anywhere on server | Used for adding entries to POD DB.
DBName-search-user.html | anywhere on server | Used for searching entries in POD DB and entries are displayed in format designated in sing-user.html
DBName-search-admin.html | anywhere on server | Used for searching entries in POD DB and entries are displayed in format designated in sing-admin.html, and then used for change/delete entry.
NotFound.html | /cgi-bin/DBName/ | Displayed when no entry is found for user query.
InfoNeed.html | /cgi-bin/DBName/ | Displayed when user did not enter required information.
opcomplete.html | /cgi-bin/DBName/ | Displayed when an add, change, or delete operation is completed successfully.
PWD.html | /cgi-bin/DBName/ | Displayed when password user entered is incorrect.
multi-admin.html | /cgi-bin/DBName/ | Displayed when user query returned more than one entry, each entry is linked to sing-admin.html
multi-user.html | /cgi-bin/DBName/ | Displayed when user query returned more than one entry, each entry is linked to sing-user.html
sing-admin.html | /cgi-bin/DBName/ | Display a single entry. Change/delete allowed.
sing-user.html | /cgi-bin/DBName/ | Display a single entry. Change/delete disallowed.

Instructions on how to use the .lann file included in the template files (usage of other files see below)
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 probably would want to modify .lann file anyway 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.

Explanation for the relationship of all the html files in the .zip archive (e.g. 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 both of the two Unix verions of POD, the POD-specific tags used in the database, and the names of the database entry items on Windows/Unix, you should always use the same case as those in the configuration file (fldb.ini) or sample html files. This applies to other customizable items for POD too. Be consistent using case. In addition you should always surround the value of your html tag with quotation marks. For example, if you have "<input type=text name=DBItemName size=20>" in your html file, some browers recognize it. However, POD only recognizes "<input type="text" name="DBItemName" size="20">".

The explanation of and rules for individual html files (the following table is more a remindar to you after you have read user manual, especially How-Tos, thoroughly):

File Name | Html form to be included | Tags to be included in form | Tags to be excluded in form
DBName-add.html Add entry form <input type="hidden" name="act" value="add">
<input type="hidden" name="DBName" value="fldb"> (if your DB name is fldb) 		all other POD-specific tags
DBName-search-user.html search entry form <input type="hidden" name="authority" value="User">
<input type="hidden" name="act" value="search">
<input type="hidden" name="DBName" value="fldb">(if your DB name is fldb) 		all other POD-specific tags
DBName-search-admin.html search entry form <input type="hidden" name="authority" value="Admin">
<input type="hidden" name="act" value="search">
<input type="hidden" name="DBName" value="fldb">(if your DB name is fldb) 		all other POD-specific tags
NotFound.html | None | all POD-specific tags
InfoNeed.html | None | all POD-specific tags
opcomplete.html | <!--DBRedisplay--> allowed but not required
PWD.html | None | all POD-specific tags
multi-admin.html a pair of tags: <!--DBRepeatStart--> and <!--DBRepeatEnd-->
<!--DBItem="DB Item Name" Link="index">(substitute the "DB Item Name" with a real DB Item Name you assigned)
multi-user.html | same as multi-admin.html
sing-admin.html change/delete entry form For change form:
<INPUT TYPE="hidden" NAME="act" VALUE="newinfo">
<!--DBAutoNumber-->
<input type="hidden" name="DBName" value="fldb">
For delete form:
<INPUT TYPE="hidden" NAME="act" VALUE="delete">
<!--DBAutoNumber-->
<input type="hidden" name="DBName" value="fldb">
sing-user.html | None required

DBName-add.html, DBName-search-user.html, DBName-search-admin.html are DB-access pages from which POD gets input. Again, 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 (be sure to include appropriate tags too).

You can put any html tags and content in the above html files. These files constitute the html interface between your DB and users of your DB. For more information on POD-specific tags and usage of html forms and tags, please check out How-Tos and if you encounter problems please check out Problems & Solutions. Sample files at http://www.ming-yi.org/Work.html is always a good source to study the usage and effect of POD-specific tags.


How-Tos

  • How do I let POD display the stored value of an item for a DB entry in my html file?
    First of all, you can only display stored value of a DB entry and its items on the entry-display pages.
    Now the syntax:
    <!--DBItem="DB Item Name" Link="index" DBdefault="any default text" SortTag="Whatever"-->
    1. Substitue the "DB Item Name" with real DB item name like "web site", etc., that is actually in your DB.
    2. Link="..." can take 5 values --- email, www, index, admin-index, 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). Link="index" will cause the item be linked to sing-admin.html or sing-user.html (which should be used to display the information of that DB entry) depending on the current authorization mode (administrative or user mode). Link="admin-index" will force to link in administrative mode even if current "authority" is "user" or absent. Link="user-index" will force a link in user mode. These 3 links should be used only 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.
    3. 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 current html page with the currently-displayed entries re-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 user of your DB can toggle the sort order by clicking again on the item they just sorted with, 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).
    4. If the DB ItemValue for the item you're trying to display 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 value using the DBdefault= "default text you like".< BR> Please note that in this POD-specific tag, only DBItem= "DB Item Name" is a required component, all other ones are optional and you can omit them if you want.
  • How do I let POD redisplay an entry in another format or redisplay it after an operation on the entry is completed?
    Here two sets of tags must be used:
    1. <!--DBRedisplayStart--> and <!--DBRedisplayEnd-->. This pair of tags indicates 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.
    2. <!--DBEntryRedisplay="sing-user.html"--> This tag should be in opcomplete.html. It specifies that POD should open the file "sing-user.html" when it sees this tag, then search "sing-user.html" for tags <!--DBRedisplayStart--> and <!--DBRedisplayEnd-->. POD will then replace the "<!--DBEntryRedisplay="sing-user.html"-->" tag in opcomplete.html with the content in sing-user.html that is between the <!--DBRedisplayStart--> and <!--DBRedisplayEnd--> tags.
    Note that you should never put <!--DBEntryRedisplay= "opcomplete.html"--> tag AND a pair of <!--DBRedisplayStart--> and <!--DBRedisplayEnd--> tags inside opcomplete.html because this will create an endless loop of redisplaying the same html file again and again.
  • How do I let POD repeatedly display a section in my html file, only that each time POD display the section using the data from a different DB entry?
    This functionality basically enables POD to display multiple entries on one html page. The following tags do the magic:
    <!--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 sequentially, each time with data specific for one of the 5 entries found.
  • How do I let POD display the total number of entries that are found in a search?
    Use <!--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.
  • How do I let POD display the links to other search result pages?
    Use <!--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 following 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 (instruction on how to use .lann file can be found in List of Files page).
  • How do I let POD dynamically display an image based on the value of an entry item?
    Use <img src="DB Item Name1" DBdefault="default image link" DBlink="DB Item Name2">. This tag should be placed only in the entry-display pages. When POD finds this tag, it will replace the tag with <a href="DB Item Value2"><img src="DB Item Value1"></a>. If the value for "DB Item Name1" is empty, POD will display the image which is designated by "default image link" instead. Do note that you do not actually store the image in a POD DB, you simply store the html link to the image you want displayed in the DB and then use this tag to have POD display the image in web browser.
    The DBlink="..." can have http links in it too (it doesn't have to be a DB Item Name). But 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.
    You can also set DBLink="index" or "admin-index" or "user-index". When POD sees this, it will make a link that links to the individual entry just like in <!--DBItem="DB Item Name" Link="index"> tag explained above. Note that if 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" but not other html pages!
    Please also 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=.... This is usually a rule for POD-specific tags --- Do not use a fancy order of options in the tags! Use the tag exactly as instructed.
  • How do I let POD dynamically display an http link based on the value of an entry item?
    Use <a href="DB Item Name" DBdefault="any default link">whatever</a>. Again, this tag should be placed only in the entry-display pages. When POD sees this tag, it will replace it with <a href="DB Item Value">whatever</a> (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 different from the <!--DBItem="DB Item Name" DBdefault="any default text" Link="www"> tag!
  • How do I let POD display a sort link that users can click on the link and have the currently-displayed entries resorted?
    Use<ahref="DBSort=DB Item Name">whatever</a>. 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">whatever</a> in which "DB Sort Link" is a dynamically produced link that can re-sort all the currently displayed entries according to this particular DB item. 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 users of your DB can toggle the sort order by clicking on the item they just sorted with again, thereby overriding your setting here).
  • How do I let POD display an index link that links to a single entry?
    Use <a href="index">whatever</a> (or "admin-index" or "user-index"). Naturally, 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">whatever</a>).
  • How do I let POD display a text box in html form and have an item value filled in the box automatically?
    Use something like <input type="text" name="DB Item Name" size="20"> This tag should be placed only in the entry-display pages. When POD sees this tag, it will replace it with <input type="text" name="DB Item Name" value="DB Item Value" size="20">.
  • How do I let POD display a checkbox in html form which is checked or unchecked based on an item value?
    Use <input type="checkbox" name="DB Item Name" value="1">. Again, this tag should be placed only in the entry-display pages. When POD sees this tag, it will replace it with <input type="checkbox" name="DB Item Name" checked value="1"> or <input type="checkbox" name="DB Item Name" value="1">, depending on whether "DB Item Name" checkbox was checked or not the last time it was modified. Please note that it is recommended that you use "1" as the value for checkbox, this way you can set this entry item size to be 2 and save space (the reason that you need 2 characters to store "1" is that POD uses a special placeholder for any item in the DB, so you should always allocate one more character than what you want for POD's internal usage). Also note: Never set value= "0"! That's because POD thinks of empty item and item that contains "0" as unchecked checkboxes.
  • How do I let POD display a radio button in html form one of whose buttons is checked based on an item value?
    Use <input type="radio" name="Whatever Name" value="DB Item Name"> Again, this tag should be placed only in the entry-display pages. When POD sees this tag, it will replace it with <input type="radio" name="Whatever Name" checked value="DB Item Name1"> or <input type="radio" name="Whatever Name" value= "DB Item Name2">, provided that"DB Item Name1" button was checked the last time this item was modified. BTW, if you are not familiar with radio buttons, here's a hint: the "Whatever Name" above can be any name you want, but remember, the same group of radio buttons should have the same name!
  • How do I let POD display a multi-line text box (textarea) in html form and have its content filled in automatically based on item value?
    Use something like <textarea rows="3" NAME="DB Item Name" DBdefault="any default text" cols="50"></textarea>. Again, this tag should be placed only in the entry-display pages. 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</textarea> (if DB Item Value is empty, POD will use the "any default text" tosubstitute it).Note that the DBdefault=... in this tagis 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".
  • How do I let POD display a drop-down menu in html form and have one option selected automatically based on item value?
    Use:
    <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 entry-display pages. 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 choice selected the last time the item was modified.
  • A few rules for using POD-specific tags that you should remember
    1. 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).
    2. 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.
  • I want to provide a URL link on my page to display every entry in the database, how do I do it?
    Use<ahref="http://myserver.com/cgi-bin/fldb.exe?keyword=&password=searchpassword&act=display&authority=AdminOrUser&DBName=fldb>LinkContent</a>.
    Of course, you need to replace the "myserver.com", "fldb", "searchpassword" (if you did not designate a password for search, then you don't have to put &password= searchpassword in the above URL), "AdminOrUser", "LinkContent" with the appropriate value.
  • I want to provide a URL link on my page to display every entry that contains the word "biology", how do I do it?
    Use<ahref="http://myserver.com/cgi-bin/fldb.exe?keyword=biology&password=searchpassword&act=search&search+field=all&sort+option=sortitem&authority=AdminOrUser&DBName=fldb>LinkContent</a>. Again, you need to fill in with the appropriate value.
  • How to provide other types of URL links?
    Here's how you make any kind of new URL links that POD can use:
    1. View the html source of any POD-generated html pages and see for yourself how the URL is constructed.
    2. View the html source for the html pages of sample files (in the .zip archive) or POD-generated files, if you see any html forms, say, something like below:
    <form action="http://myserver.com/cgi-bin/fldb.exe" method="post">
    <input type="text" size="9" name="keyword">
    <input type="hidden" name="act" value="search">
    <input type="hidden" name="DBName" value="qna">
    <input type="hidden" name= "searchfield" value= "contactname">
    <input type="hidden" name="sort option" value="*time stamp">
    <input type="submit" value="Search!" name="Submit">
    Then you should construct URL likethis:
    <ahref="http://myserver.com/cgi-bin/fldb.exe?keyword=&act=search&DBName=qna&search+field=contact+name&sort+option=*time+stamp">LinkContent</a>.
    If you fill the word "biology" in the "keyword" item in the html form, then you should replace the "keyword=" above to "keyword=biology".
    Html is so simple, all you have to do is watch how others do it and learn.
  • How do I design the search forms in an html page like "fldb-search-user.html"?
    There are 2 rules for the search html form field: 1. The name of the "select" (drop-down menu) must be "search field", meaning you must put <select name="search field"> in the search form. 2. You want to use <option value= "all">all items</option> for searching for all items in an entry. This should also be the default search behavior, even thoughit's not a requirement. You can also say <option value= "DB Item Name"> where "DB Item Name" is the name of an actual item in your DB.
    There are 2 rules for sort field: 1. The name of the "select" must be "sort option", meaning you must put <select name="sort option "> in the form. 2. If you want the item be sorted in ascending order, you use <option value= "DB Item Name">; but if you wantit sorted in descending order, you add a '*' in front of DB Item Name like this: <option value= "*DB Item Name">. Replace the "DB Item Name" with the actual name of a DB item of course.
  • 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 (the .txt file) 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 should recover and resume the DB conversion operation just fine (but you probably would like to be as safe as possible with important data). After you copied the files, open DBAdmin.html, fill in the DB name (likely "fldb") and password, then in the multi-line text box "Info of the previous entry items" under "Database Entry Info Configuration" section) fill in:
    name,20
    email,20
    web site,40
    phone number,25
    time stamp,15
    password,20
    Effectively you're assigning your current DB item names as previous item names, which is truely the case after DB conversion. (of course, an easier way would by simply copy the content that's in the multi-line text box "Info of the current entry items" under "Database Entry Info Configuration" section to the "Info of the previous entry items" box). Then in the "Info of the current entry items" boxk, put the new items names and sizes as the "Names of current entry items" etc. Of course, the data type should be changed to new types too. Data types for the old DB items do not matter, so you can either delete them from the "Info of the previous entry items" box or leave them it, which should not do harm either. At last, check the "Convert to new items next time POD is run?" checkbox. Fill in password at the bottom of configuration page, and press the submit button to submit the new configurations online. Now you're all set. However, please note that after the submission, the DB schema is not changed yet. Only when POD (fldb.exe) is launched next time will your new DB schema be detected and actual conversion take place. Therefore, you should probably want to visit your DB after you finished configuration of the new schema, which will complete the whole conversion process.
  • 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 another database, just follow the< A href= "Installation.htm"> Installation< /A> procedure and set up the new db exactly as you did for "fldb" with the only exception that you name the newDB to the desired DB name (say, mydb). That means, after installation,there shouldbe a subdirectorynamed "mydb" under cgi-bin directory, and under cgi-bin/mydb, there are files named mydb.ini, mydb.lann, notfound.html, multi-admin.html etc.
  • Where are my DB data stored?
    They are in the .txt file under the subdirectories of cgi-bin. For unregistered version, the file is fldb.txt under cgi-bin/fldb/ directory.
  • Can I create a DB file (say, fldb.txt) myself?
    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 are my DB configuration stored?
    They are in the .ini file under the subdirectories of cgi-bin. For unregistered version, the file is fldb.ini under cgi-bin/fldb/ directory.
  • What is the use of the .log file under my DB's directory?
    They are for POD's internal usage only. Do not modify or delete it!


Security

This topic is organized into two sections, Win32 platforms (including Win95/98/NT/00) and Unix flavors (including Linux).

Some general notes:

POD does not encrypt data sent on the internet. More on this
It is likely that 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).

For performance considerations, POD does NOT encrypt the database file or the passwords therein. More on this
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.


Win32

Win32 Security

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. The methods to disable "read" access on your cgi-bin are discussed below:

  • If your web site is hosted by a web hosting company , it is likely that you do not have much control over the access permission on your cgi-bin directories. In this case, it is also very likely that your web hosting company is using Win2000 and Internet Information Server (IIS). In that case, you should contact your web hosting company and ask them to enable NTFS "Read" and "Write" and disable IIS "Read", "Write" but allow "Execute" on your cgi-bin directory and all of its subdirectories. The NTFS (local file system) "read/write" is needed because POD needs to be able to read and write the local files under your cgi-bin directories; The IIS (web server) "read/write" is disabled because you do not want any user on the web to be able to read the contents of the files in your cgi-bin directory. You should try very hard to urge your web server administrator to do this as early as possible. There is no reason why your server administrator should refuse such a request. If your server administrator is plain incompetent, then a desparate last resort for you could be: set "hide=1" in the fldb.ini configuration file (option 5 in File Options Configuration ). This way POD willsuccessfully disallow "read" on DB files (but not the software itself) on some (BUT NOT ALL!) Win32 web servers. However, this method could induce other problems and is not recommended unless your server administrator refuses to set permission for you.
  • If you are running your own web server , here's what you should do:
    If your OS is NT/Win2000, enable NTFS "Read" and "Write" for reason listed above. This is not needed for Win95/98.
    Then, if are running Microsoft Internet Information Server, Microsoft Peer Web Service (which comes with NT4.0 CD), Microsoft Personal Web Server etc., disable "read" access on cgi-bin and its subdirectories. 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" (you'll need to check the checkboxes "execute" "scripts" to enable them, and uncheck "read" to disable it).
    For other 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., here is what I found/remembered that you need to do: 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 text or html 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 cgi-bin and its subdirectories (see below for Sambar). 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 cgi-bin and its subdirectories. 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 to disable access to its directories too.
  • To test whether the access permissions are correctly set on your cgi-bin directory and its subdirectories:
    You can test if "read" access is disallowed by trying to access the DB file through its URL. 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 your files are safe from peeping eyes. If, instead, your web browser starts to download the file or even displays its content, you know your DB is in danger. Please contact your administrator as soon as possible then!!.


Unix

Unix Security

For Unix, it's much easier to set access permissions yourself. Here's what you should do:

You should always set all files under subdirectories of your cgi-bin as mode 0700 or 0760 if possible. This is of prime importance for the security of your configuration file!!! Only by setting the files with this mode are you sure that www users will not be able to accidentally peek into your configuration file. Consider yourself warned. You should also disable read access by www users by setting mode 0711 on all files under cgi-bin directory. Do note that cgi scripts are usually launched with web server's user ID and group ID, so the access permission settings should consider this (at least you should allow POD to read/write to your cgi-bin and its subdirectories!). If these settings are not set correctly, you might see POD complain about can't find initiation file or DB file is locked. That's because POD do not have the authorization to read those files when permission setting is not right.

To test whether the access permissions are correctly set on your cgi-bin directory and its subdirectories:
You can test if "read" access is disallowed by trying to access the DB file through its URL. 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 your files are safe from peeping eyes. If, instead, your web browser starts to download the file or even displays its content, you know your DB is in danger. Please follow the instruction above to disable the read access!!


Trouble Shooting

This section is organized into two subsections: Questions & Answers and Problems & Solutions. Questions & Answers lists general questions or feature requests etc. while Problems & Solutions lists questions about problems and answers and/or solutions to them.

BTW, if you are looking to learn to do things in POD, check out How-Tos in User Manual .


Questions & Answers

  • Can I embed HTML in Database fields?
    Yes, you can. POD is html-safe, so to speak.
  • Is there support for POD if I register?
    Support for POD is provided only when time permits. It does not matter if you are registered or not. I am proud to say that for nearly all the emails regarding POD that I received, I found time to reply to them, and most in a timely fashion. Then again, a reply is not guaranteed! So if you have a question, please try to read the documentation thoroughly (and check out Problems & Solutions section. Don't forget you can also search POD documentation). If you still cannot understand some specific details of the documentation, you may send email to mingyiliu@yahoo.com (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. There are simply too many mails with very little info about the problem, which makes it very hard to figure out what went wrong. And most of the time it's not POD's problem).
  • How do I register?
    Please read the License & Registration section.
  • Do you accept credit card payments?
    Yes. But you must pay through paypal. There is a link in License & Registration section.
  • Where can I download the newest version of POD?
    Read Download section.
  • I think I found a bug, how do I report?
    Please report any bug to mingyiliu@yahoo.com .
  • I have a wish list about POD or this documentation, how do I contact?
     Again, please write to mingyiliu@yahoo.com (I am especially interested in knowing if there is anything that I can add to improve on this new documentation).
  • 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 .
  • 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.
  • 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.ming-yi.org/info.html for an example of this "admin-index" and "user-index" usage. 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 I rename the html files in fldb.zip, pod.zip, prod.zip etc.?
    The ones that are named xxx-add.html, xxx-search-user.html and xxx-search-admin.html can be renamed and placed anywhere on your web server. The other html files cannot be renamed, and they can only be placed in a subdirectory of cgi-bin directory.
  • Can you recommend some free web servers that I can use to run POD on?
    With the availability of POD for Unix, you should always think of Apache first when you try to find a free web server software to run on your own computer. Apache is by far the mostly widely used web server (free or commercial) and is excellent. It also has a windows version too. Xitami is another cross-platform server that POD runs well on. It is free and powerful. For other Windows servers, 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. Some user reported occasional problem of POD working on Sambar, yet I did not find any problem of POD 5.20 on Sambar 5.0. 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 (now MS might have taken its free download of PWS off, at least I can't find it any more).
  • 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?
    Any web server that supports binary (compiled) cgi scripts should be able to let POD run, if you configured the server and POD correctly. If POD fails to run, check out Problems & Solutions section. Chances are, you'll find your answer there. In I have tested POD on Win98, NT4.0 and 2000, as well as Unix and Linux. The program runs on Microsoft IIS, PWS, and peer web service. It also runs on Sambar Web Server (V4.3 and up), Apache (V.1.3.12 and up), Xitami (V2.4 and up) and O'Reilly's WebSite Pro Server (V1.0 and up).
  • Will I have access to source code if I register?
    No, sorry.
  • Can POD run on Win3.11?
    If the web server is running on Win3.11, no. If you are using a browser on Win3.11 to access a POD DB running on Win9x/NT/00, Unix/Linux, then it should be fine.
  • Is there a way to let POD sort on a secondary sorting criteria in addition to the primary sorting item?
    No. But this is a feature I am considering in the next major version of POD.
  • Can I have more than one DB entry displayed per row?
    No. This requirement seldom arises, but I recognize its importance. It is a main feature to be added in the next major version of POD.


Problems & Solutions

  • I got an error of "HTTP error 500", why?
    Check this list of possible problems, the one you encountered must be one of them:
    1. You are using POD for Windows on POD for Unix, or vise versa. Solution: Download the correct version of POD on web sites listed in Download .
    2. Your server disallows user to run binary cgi scripts. Your server may allow perl scripts but not allow binary (compiled) cgi scripts. Read Win32 or Unix in Requirements for more. Solution: You have to change a web hosting company if this is the case and you really want to run POD.
    3. Some web servers only allow running binary scripts named "xxx.cgi" (servers like Apache and most other servers allow you to set the extensions that can work as cgi scripts. A popular setting for binary scripts is .cgi on Unix and .exe on Win32). Solution: Rename "fldb.exe" and "fldbconf.exe" to "fldb.cgi" and "fldbconf.cgi" respectively.
    4. If you are using POD for Win32, your server might be lacking necessary dynamically linked library (dll) files that POD requires. Read Win32 in Requirements for more. Solution is listed there. A hint on how to diagnose this problem: Ask your web server administrator to launch POD through command line (MS DOS), if it complains some dll is missing, then it is the problem. Otherwise, POD will cause an "illegal operation" fault and shut down (because POD is a cgi program, so it is not supposed to be launched through command line. But if you do it, it's usually not going to cause any problem. Warranty on this is not provided though!)
    5. If you are using POD for Unix, dynamically linked (shared library) version, your server might lack the gcc 3.0 shared library files that POD requires. Read Unix in Requirements for more. Solution is listed there. A hint on how to diagnose this problem: Ask your web server administrator to launch POD through command line, if it complains some .so is missing, then it is the problem. Otherwise, POD will cause a core dump and shut down (because POD is a cgi program, so it is not supposed to be launched through command line. But if you do it, it's usually not going to cause any problem. Warranty on this is not provided though!)
    6. If you are using POD for Win32, your server administrator might not have set file permissions right. Solution: Ask your server administrator to set these permissions on your cgi-bin directory and its subdirectories: Set NTFS to "read" and "write", and set IIS to disable "read" and "write" but allow "execute". For more instructions, read http://rr.sans.org/web/sec_IIS.php (this web site is not affiliated with POD and has nothing to do with POD! The info it provides could help your server administrator though).
    7. If you are using POD for Unix, you might not have set the file permissions right. You should set access mode on your cgi-bin directory and subdirectories to be 711, while setting all non-executable files under cgi-bin and its subdirectories to be 0700 if possible. Please read Unix in Security section for more.
    8. On Unix, file names are case-sensitive. Solution: Check the case for the names and make changes when necessary
  • I got an error of "HTTP error 405", why?
    See here .
  • I got CGI Error, "the specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:", why?
    See here .
  • I got a "page cannot be displayed" error or "the cgi script returned an empty set of tags" error, why?
    See here.
  • I got an error mesg: "
    Method Not Allowed
    The requested method POST is not allowed for the URL /db/cgi-bin/fldb.exe    ". Why?
    See here.
  • Every time I enter something into forms and press submit button, POD complains that the ini file not found even though I'm sure the path was right.
    If you're sure that you set DBName and path of files right, then the problem must be due to incorrect permission setting. There are two possibilities:
    1. If you are using POD for Win32 and selected "hide file=1" or checked the "hide files" checkbox during your online configuration, it is possible that your WinNT/2000 server forbids cgi programs to read hidden files, then POD can't find the files including the ini or DB file itself. Solution: set "hide file=0" or uncheck the "hide files" checkbox during your online configuration.
    2. If that does not work, try see option No.6 (for Win32) or No.7 (for Unix) in here
  • I launch POD, it always tells me DB file locked but not initiation file locked.
    See here .
  • After I filled data into the html forms and pressed the submit button, nothing happened!
    Most likely you used an old version 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 gave 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.
  • 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 List of Files 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.
  • Somehow it seems that POD only recognized a few of the items I named for my entry items. Why is that?
    Please note that you should always put one item name for each item in your DB entry, and you should always assign a size for each item. In addition, you should be consistent with the case of those names. 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 "...,,..." unless instructed to do so because that will usually cause anything behind ",," be discarded by POD. You should at least write something like "...,a,..." to avoid losing data behind the second comma.
  • Why POD does not link to some of the pages correctly?
    Check your spelling, syntax of POD-specific tags, or cases of POD-specific tags or file names.
  • 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 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 (for Win32 version), or a program named sendmail at /usr/sbin/ (for Unix version). 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" (check those boxed during online configuration) 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.
  • Why POD told me "you must register to run POD for more than one DB for more than 20 days" when it's still in trial period?
    POD disallow user hampering with the file (edit, delete, rename or swap in one DB for another) in unregistered version. If you did any of that, you might get this warning even before end of trial period. In such event, you can contact mingyiliu@yahoo.com and I can start an empty new DB for you.
  • I think I did everything right and used only one DB, 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!
    SMTP is now supported in POD for Unix through sendmail program (must be under /usr/sbin/sendmail!) since version 5.26. POD will automatically search for sendmail in the future.
  • I found that I cannot customize the error message pages and a few other message pages is that right?
    Yes. The reasoning behind it is that unless some serious error happened or you're the first visitor to the DB (which almost for sure means you're the administrator), you will not see those message pages. Therefore your user should not see those pages, why spend the effort to customize them? Of course, I'll try to find a way to allow customization of those pages if more users requrest this feature.
  • I need to let people add records to my database. How can I stop someone from using a script to add thousands of records?
    The only way to stop them from doing that would be to add password protection to your site and only let those that know the password to add records. Or else there is no way that you allow some anonymous users to add records while disallowing others, regardless whether they use a script or web interface in the current POD (or any other DB) implementation. It is simply not possible with any software.


History & Rank

For the release history of POD please check out Release section.

You are welcome to rank POD in the Rank section, which will be appreciated by other users and me.


Release

Release Since V5.0

The most important releases and features are marked in this color .

V5.31

  1. fixed a bug that causes POD to skip the last line of .ini file when the line does not end with a newline character.
  2. Small updates to documentation and code.

V5.30

  1. Documentation update.
  2. A few small updates and fixes.

V5.29

  1. Changed POD behavior so that it will not tie up server even when permission settings of files or folders are not set correctly. This mostly concerns POD for Windows users.

V5.28:

  1. Drastically improved and updated documentation. Now search documentation is supported and a new set of hierarchy makes navigation and installation much easier for users.
  2. Fixed time stamp problem -- wrong formatted user input time stamp is now preserved as is.

V5.27

  1. Fixed an oversight that deals with some web server's strange ways of setting cgi programs' working directories. The manifest of the bug is fldb.exe stalls upon start and cannot complete request.

V5.26

  1. changed html email handling. Now POD uses sendmail to sendmail on Unix instead of mail. Path should be /usr/sbin/sendmail. In future version POD will search for path automatically.
  2. updated documentation and www.ming-yi.org will go out of usage in end of January 2002. Please use www.ming-yi.org instead.
  3. release.html is now packaged in the distribution.

V5.25

  1. Added support for the radio button in html forms.

V5.24

  1. conversion.exe for Unix is out. Now POD for Unix is almost exactly the same as POD for Windows!
  2. A bug for sending stats too often to DB administrator is fixed for POD for Unix. POD for Windows does not have this problem.
  3. Fixed a send mail inconsistency for POD for Windows.

V5.23

  1. Fixed a bug of inadvertantly deleting entries when a user convert DB entry item size bychanging.inifilethenlaunchfldb.exewithauthority=admin&act=profile or a similar tag.
  2. Both fldb.exe and fldbconf.exe convert .ini and .txt file formats seamlessly b/w Unix and Win32 OS.
  3. Support "act=version" to get version # out of POD modules fldb.exe and fldbconf.exe.
  4. Support mail in Unix version (not fully tested yet).
  5. Fixed an inefficiency in V5.22 when converting newline character.
  6. Fixed a bug in mail reporting of statistics (reporting deleted entries).
  7. Some general improvements and modification of documents.

V5.22

  1. fldbconf.exe now automatically switch between Unix to Windows-styled text file.
  2. fldbconf now reads in its own full URL from .ini file to use in form action.

V5.21

  1. Recompiled Unix/Linux version to truly get rid of MakeCSV bug (in 5.20 Unix version I forgot to recompile) and make smaller executables.
  2. Deleted a erroneous tag production in PageLink.

V5.20

  1. POD for Unix is out! All POD's underlying code is now cross-platform. Windows and Unix version will be developed with the same pace in the future.
  2. Checkboxes are now supported as POD html outputs.
  3. Fixed a bug that causes POD to crash when "use csv files" is enabled.
  4. Enhanced warnings for a couple situations.
  5. Ensured consistent waste entry deletion handling.
  6. Configuration of POD now list name,size,type of the same item on the same line in a text area, instead of listing them separately in 3 single-line text boxes.
  7. Enhanced documenation.

V5.13

  1. Fixed a bug that crashes POD (without damaging DBs) when a user search only return one entry from a large DB. This bug was introduced in V5.0 when I tried to better a few other online DB scripts in concurrency handling. Now POD is indeed better in throughput because of this.

V5.12

  1. Changed a design decision so that now user can really do two searches at the same time without getting a DB locked warning. This increases throughput by 10%-30% as tested with 2 sessions.
  2. Added explanation of memory requirement of POD in OldbHelp.html.
  3. Lowered internal maximum allowed found number in a search to 50000 from 200000 for practical reasons (this change can be undone any time, though, as it is not necessary for POD's correct function).

V5.11

  1. Patched a bug that crashes the DB when two concurrent user search sessions last over a second (which means your DB has to be big enough to notice this bug).
  2. Raised max item number in an entry to 512 from 100 at the request of a user.
  3. Raised internal maximum allowed found number in a search to 200000 from 20000.

V5.10

  1. Support for european styled time stamps. New formats:
    1: mm/dd/yyyy
    2: Abbreviated day of week name, mm/dd/yy
    3: mm/dd/yyyy, hh:mm
    4: mm/dd/yy, hh:mm am/pm
    5: dd/mm/yyyy
    6: Abbreviated day of week name, dd/mm/yy
    7: dd/mm/yyyy, hh:mm
    8: dd/mm/yy, hh:mm am/pm
    9: yyyy/mm/dd
    10: yy/mm/dd, hh:mm am/pm
  2. Fixed a bug in time stamp mode 3 (12-hr format changed to 24-hr format).
  3. Changed codes to reflect a new philosophy of recognize time stamps.

V5.09

  1. Change max item in an entry to 100 from 40 and updated documentation accordingly.
  2. Add documentation to warn user NOT to use '+' in item names and MUST use '"' around html tag values.

V5.08

  1. Fix a problem with "<img..." tag display which the image was repeatedly displayed. "<a href..." tag does not have the same problem!

V5.07

  1. When "use own password=1" and DBA overrides with masterpassword, now POD leaves the user's own password unchanged! (previously it's changed to masterpassword and user cannot update again)
  2. Add documentation about the importance of set a password for add, change and master.
  3. Changed index, sort, page link making functions so that any ' ' is changed to '+' and changed back after output.

V5.06

  1. Numerous changes in an effort to not let the DB tied up.
  2. Fixed a couple bugs introduced after I close log and ini file in POD5.0. This version is very important fix over 5.05 (but problem was not actually all solved until V5.13 as I later found out).

V5.05

  1. POD now automatically set hit item to 0 if user did not enter an initial value when the entry is first added.
  2. Allow user to toggle sort if they click on the item they just sorted.

V5.04

  1. Allow user to use "admin-index" in DBItem Link, image link, and http link to force usage of administrative mode and make an index link. "user-index" behaves similarly.

V5.03

  1. Fixed a bug when "use own password" is set and user left both masterpassword and change password empty (that would create a security leak in previous versions). Now it won't.

V5.02

  1. Deal with Sambar server's mixed style of file path.

V5.01

  1. Error report is now logged and suppressed for a day once it's already reported. POD will retry reporting erros every 6 hours if it failed to send message out earlier.
  2. A bit code optimizaation.

V5.0

A huge improvement over the previous versions in terms of functionality, documentation or customizability. Numerous changes were introduced .


Rank

You are welcome to rank Personal Online Database!

Click on the direct voting links to add your comment to that site! BTW, keep in mind that POD5.0 was put on the following sites only after Jan.10,2001. So you can see POD5.0 is getting a warm welcome at most sites and a big improvement over previous versions.

Voting Links | Rank (2/9/01) | Rank ( 3/13/01) | Rank ( 10/19/01) | Comment
Hotscripts | #10 | #2 | #9 | in all 205 C++ scripts listed! The only shareware in top ten C/C++ downloads (and 2nd highest rated and newest among top 10)!
Download.com | recommended by 66% users | NR | NR | Previous bad comments came on earlier POD version whose main problem was extremely limited documentation. Now the site updated to POD5.x, please vote there!
ZDNet | NR | NR | NR | Be the first to rate POD on that site!
CGI Resource Index | 4.0/10.0 | 5.57/10.0 | 7.11/10.0 | Previous bad comments came on earlier POD version whose main problem was extremely limited documentation. Now their download link was updated to POD5.x, POD always got 8-10 out of 10 on the site!