The Easy-To-Use Readme File.

--- Normal Installation Guide ---


General Information:
Megabook™ - Guestbook Script V2.0
© Copyright 2001 Terry Billinger
Created: 7/3/00
Modified: 02/22/01
Available at:
Special Thanks To: Stephanie Billinger, Dan Briand, James Hall.


Copyright Notice:
© Copyright 2001 Terry Billinger

This script can be used/modified free of charge as long as you don't change any parts of the script that gives credit. By using this script you agree to indemnify me from any liability that might arise from its use. In simple English, if this script somehow makes your computer run amuck and kill the pope, it's not my fault.

Redistributing/selling the code for this program without prior written consent is expressly forbidden.


This project was started in early July/2000 after I had spent some time fiddling around with my sister's Ultimate Bulletin Board. I had implemented some 'hacks' that allow things to be displayed different. After that I had learned a small bit of Perl.

My sister started to complain about how slow her guestbook was going that was hosted at This is because of the massive amount of users already using this service and the fact that the guestbooks were database driven. This is when I asked if her she would like me to make her a guestbook script. She had declined because she wanted to keep her 900+ entries she had already receieved but I still wanted to make one just to see what I could come up with.

Since I don't know the complete Perl language I set out to find a guestbook script that used a database instead of just placing HTML directly into an already created file. This is where I had found Cliff Gdansk's guestbook. His was database driven and already had an administration script built in. I had downloaded Flexbook before which was an easy to use, very configurable script but it wasn't database driven.

After going through both the scripts I started to modify, delete and copy some parts of both scrits, combining them into a great guestbook script.

After finishing the basic guestbook coding (read and sign), I wanted to add more. I added the administration script which allows you to modify and delete entries, change some of the variables in the script, and modify the complete HTML of the script. I also added the ability to have private entries so that only people who know the administration password (setup in the admin script) will be able to view them.

After all this work I have an AMAZING guestbook script that looks identical to other major guestbook hosts and works a lot faster.

Again, after many more months, I've re-written the code, and reconstructed how the guestbook works, bringing you 2.0 which has to be the most powerful, configurable, modifiable version yet.

Whats New? V2.0

Major Updates

  • New Administration Layout
    - little easier to use and understand
  • Password Encryption
    - protects your guestbook more powerfully
  • Database Protection
    - no more corrupted entries
  • Page Listing
  • More Modifiable Layout
  • ICQ Field
  • Custom E-Mail to Signers
  • Preview Entries
  • Filled Out Wrong/Preview Layouts
  • Time Zone Offset
  • Different Time/Date Stamps
  • Admin Reply Field

Other Enhancements
  • Alternating Colors for Entries
  • Banning an IP will ban from administration area also
  • Ban button added to view logged IP
  • Can now Ban subdomains ie. 24.125.* or 24.125.25.*
  • Can add a link to entry layout to jump to modifying the entry
  • Forget your password? No problem. Added reset password method
In the archived zip file you should have received the following files:

readme.html - The file you are reading now
admin.cgi - Administration Script
guestbook.cgi - Guestbook Script
signgbook.cgi - Sign Guestbook Script
viewpriv.cgi - View Private Entries Script
setup.db - The setup file
gbook.db - Guestbook Entry Database
header.txt - Header HTML file.
entry.txt - Entry HTML file.
footer.txt - Footer HTML file.
badwords.txt - Bad words file.
banned.txt - Banned IPs file.
preview.txt - Preview HTML file.
missing.txt - Missing fields HTML file.
usermail.txt - E-Mail to user file.

Open guestbook.cgi, signgbook.cgi, viewpriv.cgi and admin.cgi in a text editor. If Perl is not installed at /usr/bin/perl on your system, change the first line of the script to #! and then the location of perl (no spaces). If you're not sure of the location of Perl, check with your web host.

  1. Upload all these files in ASCII mode to your CGI directory (usually cgi-bin or cgi-local).
  2. CHMOD the *.cgi files to 755 and the *.txt and *.db files to 666. CHMOD might also be known as file properties or properties and can usually be accessed by right-clicking on the files in your FTP client. The numbers 755 and 666 mean:
    755: (Group, Public): Read, Execute (Owner): Read, Write, Execute.
    666: (Owner, Group, Public): Read, Write.
  3. Log into your Megabook at http://www.(yourdomain).com/(yourcgidir)/admin.cgi and enter in the password box "megabook" without quotes and case sensitive.
  4. Change the password right away to anything you want and write it down.
  5. Change the settings and layouts to however you want them.
  6. Go to http://www.(yourdomain).com/(yourcgidir)/guestbook.cgi and view your new guestbook!

    For more detailed instructions, go to the megabook download page and look under installation instructions.


Using this Script:
Using the .txt files

The .txt files can be modified offline or online. These file contain the layout to your guestbook. Each of these have their own valid tags. These tags can be used for different types of variable output. Check in the Layouts section of the administration area for more details on which tags work with which layout.

Banning IPs

IPs can be banned through the administration script or through the view logged IP link. IPs that are banned will also have no access to the administration area. Sub-domains can also be banned in the format 24.242.* or 24.242.242.* etc.

Modifying Entries/Admin Comments

Modifying entries can be accessed either through the administration area or by adding this bit of HTML to your entry layout:

<a href="admin.cgi?action=modifypost&entryid=[entrynum]">M</a>

You can change the "M" to an image or any other link that you would like. While modifying entries, you can also add in a reply to what people have signed.

Previewing Entries

In order to preview entries, you need to add this line of code between the <form></form> tags in the footer layout:

<input type=hidden name=preview value=1>

You might want to add the above code to the missing layout again between the <form></form> tags.

Note: DO NOT put this tag in the preview layout as it will cause a loop and no one will be able to sign.

Location of gbook.db

In the previous versions of Megabook, you could modify where your guestbook database was located through the administration area. This feature has been taken out but you can still change the location of it by opening your setup.db file in a text editor. Once you've opened it, look for gbook.db and then change it to the relative path on your server where you would like it to be. For example:

Let's say you had all your Megabook files in your cgi-bin directory, (/cgi-bin), but you want the guestbook database file in a different directory (/secure/databases). Just change the gbook.db to /secure/databases/gbook.db. Mind you this is only an example where to put it.

Alternating Colors

Alternating colors lets you have 2 different colors that alternate between entries. This is good for having a different background color for each entry. First, in the layouts section of the website, define what Alt Color 1 and Alt Color 2 are. Then in the entry layout, place the [alternate] tag for the colors to be displayed.

Placing the Signing Form on Another page

You can place the form on another page, but you must change the line

<form method=post action=signgbook.cgi>
<form method=post action=http://path/to/signgbook.cgi>

Making sure you've changed the http://path/to/signgbook.cgi to where it is on your server.


Script returns 500 Internal Server Error
  • Make sure you've changed the first line of the *.cgi files to #! and then the path to perl on your system
  • Make sure you've uploaded all files in ascii mode, not binary.
  • Make sure you've set the permissions for *.cgi to 755 and, *.txt and *.db to 666.
Password: megabook does not work
  • Make sure you've entered it as all lower case without quotes
  • Make sure you've uploaded setup.db as ascii, not binary.
  • Make sure that you've set the setup.db's permissions to 666.
  • Try using a new copy of setup.db . You can find one at
Please refer to the Megabook support page for up-to-date Trouble-Shooting techniques.


Guestbook @ (first megabook user)
Guestbook @ (second megabook user)
Guestbook @
Guestbook @ Megabook (the test guestbook)


If you have read through this whole readme file, and you still need help, go to: