Before this page
See the advice for a novice first where you make compulsory changes on the first line (path) and the basic set up for password, url, etc. and, if necessary, "chdir" command to change the directory at the button of the basic set up. You may make any optional changes but please do so after you confirm that the default CGI works.

You may change other basic setting and HTML or a part of HTML (see the advice for a little learnt).

Or you may poke into email (see the advice for a good HTML user).

Handling inputs
Now you may try some real "Perl" scripting.
###############
# main script #
###############
     :
     :
$value =~ s/%0D%0A/<br>/g;
$value =~ s/%0A/<br>/g;
$value =~ s/%0D/<br>/g;
$value =~ s/%09/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/g;
$value =~ s/%3C/&lt;/g;
$value =~ s/%3E/&gt;/g;
The three lines at the top change return_key (LF+CR for windows, LF for UNIX and CR for Macintosh) to <BR> (HTML tag for return_key). Replace them by $value =~ s/%0D%0A/ /g; etc. or a space instead of <br> and you can ignore all "return" and put entire article into one paragraph. DMB treats one line as one article. So you need some change of a line break.

The middle one, $value =~ s/%09/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/g; changes a tab to five spaces. Firstly, HTML cannot understand an ordinary tab. And secondly, I assigned a tab a special meaning within the perl scripting. So, this conversion is technically necessary. But if you do not like it, you may have a space instead of 5 &nbsp; or $value =~ s/%09/ /g;.

arch Board does not accept HTML tags sent by guests. If you want HTML tags able, delete the last two lines
$value =~ s/%3C/&lt;/g;
and
$value =~ s/%3E/&gt;/g;
But you do so only after you learn the message board security and understand the risk you are going to take.

Time of an article
The time a guest posted an article is Greenwich mean time by default.
######################
# new message to bbs #
######################
     :
     :
$posted = gmtime($time);
It can be replaced by $posted = localtime($time); for the local time. But this local time is the server's time, not necessary yours. Suppose you are one hour ahead of Greenwich time, you are (60 x 60 ) = 3600 seconds fast. You can have the time $posted = gmtime($time + 3600); for your local time.

Guest's email address
And the way an email address is written
######################
# new message to bbs #
######################
     :
     :
if ($data{'email'}) {
$gname = "<a href=\"mailto:$data{'email'}\">$data{'name'}</a>";
} else {
$gname = $data{'name'};
}
The above line integrates the guest's email address into his name using "mailto" tag. Please note you need to use \" instead of " inside of " - ie $gname = "...";. If you want to have an email an independent item, change it to
######################
# new message to bbs #
######################
     :
     :
$data{'email'} = "<a href=\"mailto:$data{'email'}\">$data{'email'}</a>";
and do not forget to have $data{'email'} and $data{'name'} instead of $gname somewhere in ### new data ### .

Ban access
You can limit the access by checking the IP address, $ENV{'REMOTE_ADDR'} or checking the browser, $ENV{'HTTP_USER_AGENT'}. To ban an IP address, go to
################
# main script #
################
if ($ENV{'REQUEST_METHOD'} ne 'POST') {
and insert
################
# main script #
################
if ($ENV{'REMOTE_ADDR'} eq '123.456.78.90') {die "You cannot be here";}
if ($ENV{'REQUEST_METHOD'} ne 'POST') {
Replace 123.456.78.90 by an IP address of someone you do not like. Also you can have better wording than You cannot be here.