Guestbook
A simple way of interacting with clients that visit a web site is to allow
them to sign a guestbook and leave some comments.
To see our Guest Book click
here.
There are four files included in the Guestbook package:
1.guestbook.pl - The Perl Script.
2.guestbook.html - The actual guestbook file.
3.addguest.html - The fill-out form for a guestbook entry.
4.guestlog.html - A short log of those who have been added.
guestbook.pl
This is the Perl script that actually writes new entries to files and returns
the entry to the user.
There are several options that you have to decide whether or not to use. The
options are changed by editing the guestbook.pl script. Below is a brief
description of what each one does. While choosing what options you want to
have on keep in mind that a '1' will turn them on and a '0' will turn them
off.
$mail
This option will allow you to be notified via an E-Mail address when a new
entry arrives in your guestbook. The entry will be mailed to you as a
notification. If you should choose to turn this variable on you will need to
fill in the 2 variables that go along with it:
$recipient
Your E-Mail address, so that the mailing program will know who to mail the
entry to.
$mailprog
The location of your sendmail program on your host machine.
$uselog
This will allow you the ability to use my short log feature. It is already
turned on so you will have to change it to 0 if you do not wish to use it. I
have implemented this feature, since there are probably many people who feel
no need to have a log when people are making entries to a file anyway. Keep in
mind it will show errors which is one nice aspect about it.
$linkmail
Turning this option on will make the address links in your guestbook become
hyperlinked. So instead of simply having (name@some.host) it will put (<a
href="mailto:name@some.host">name@some.host</a>) so that
anyone can simply click on the address to email them.
$separator
While looking at many other guestbooks I noticed that many people prefer to
separate entries with a Horizontal Rule <hr> instead of a Paragraph
Separator <p>, which I used in my old scripts. I have now given you the
option to choose. By changing the 0 in the script to a 1 you will turn on the
<hr> separator and turn off the <p> separator. The 0 option will
do the reverse of that; turn on <p> and turn off <hr>.
$redirection
Although Netscape and other browsers handle the auto-redirection that I have
implemented quite nicely, I have noticed that it does not work with lynx (a
text based browser). I have given you the option of using auto-redirection or
not. Lynx can still add to your guestbook with it, they will just get an error
message when they do. This may not be true for all systems though. It seemed
that when we upgraded to httpd 1.4 this problem started occurring. By choosing
1 you will enable auto redirection and 0 will return a page to the user
telling them their entry has been received and click here to get back to the
guestbook.
$entry_order
When this script was first written, entries were always added next to the top,
so you and other users did not have to always see the same guestbook entry
when they visited your pages. The rest of the entries scrolled beneath the
newest, from newest to oldest. I have had requests that I make an option
available so that people can have a guestbook which would read from oldest to
newest. This is how you would go about doing that. Set this option to '0' and
the newest entries will be added below the rest of the entries. Keep this
option at '1' and the guestbook will act like previous versions, adding the
newest entry to the top.
$remote_mail
Many users of the guestbook have requested that a form letter be automatically
sent to the remote user when they fill in the guestbook. Turning this option
on will tell the script to automatically mail any user who leaves an email
address. You can specify the contents of the mail message by editing the
section of the script that sends mail to the remote user. By default it sends
a message that says, "Thank you for adding to my guestbook." and
then shows them their entry. If you should choose to turn this variable on you
will need to fill in the 2 variables that go along with it:
$recipient
Your E-Mail address, so that the mailing program will know who to mail the
entry to.
$mailprog
The location of your sendmail program on your host machine.
$allow_html = "";
This option allows you to turn on or off the use of HTML tags by users of your
guestbook. Setting this variable to '1' allows users to imbed html tags such
as <b> or <H1> or <a href=""></a> into your
html document. Setting this variable to '0' will not allow them to use any
html syntax in their comments or any other field. You can still link to their
email address by turning $link_mail to '1'.
$line_breaks
This option allows you to decide whether or not you want line breaks in the
comment field to be turned into <br>'s in the html thing to retain the
look of the guestbook entry. Common setting would be off, because sometimes
people accidentally put in extra line breaks.
guestbook.html
This is the file that you will link to that will contain the Guestbook
Entries. You will probably want to edit the title and heading spaces.
Do not delete the line <!--begin--> from this guestbook, or else the
script will have no way of knowing where to begin the editing.
The <!--begin--> line is the only necessary line in your guestbook.html
file, but the link to the addguest.html file is also a good idea.
addguest.html
This is a fill-out form to add a new entry into the guestbook. You can also
customize it if you like.
guestlog.html
This is a short log that lists domains and times that entries were created.
It's easy to browse and it will point out those failed entries when users did
not specify a name or comments. To avoid long scripting the log file is set up
so that newest entries are added at the bottom. This should be apparent though
since the entries all come with a short date added. You can get around using
this by changing the option $uselog in the guestbook.pl file.
If at any time you find your self having problems please send support an
e-mail.