Current Version : HAMcards 1.2 :December 8, 1998

Changes Since Version 1.1 

- Corrected some bugs int he HAMlib file when dealing with updating the database on non unix systems.
  On non unix system the script will use the File::Copy module that is distributed with Perl
  
- Corrected Major bug when using smtp server to send mail.  It turns out that is a bad email address
  was found the script would die.. This wasnt so bad except when it is time to update the database
  (delete_old_cards and send send laters) the database would never have a chance to be updated.
  To correct this I added error logging to the script.. It will now just log the error in an error 
  log file.  Thus during the delete old cards and send laters if a bad email address is found it 
  will not stop the system. (This will fix where some send later users received mulitple emails
  or users were told they had cards.. but they were not in the database when they tried to pick them
  up.
  
- When the users does not input a "sender" email address the script will use the admin email.  It turns
  out this this was also a cause of many problems.. The smtp woudl die when there was no proper sender
  address.. I highly recommend that you have  the "SEmail" element added to the @required statement.. 
  I added it myself for this release.. so unless you change the @required variables it should be set
  (THis is not needed for the reminder system)
  
- I added basic logging (logs errors and will log when it runs the "delete old_cards & sendlaters"
  this is good because you will now be able to make sure things are working etc.. ( I plan on adding
  full script usage logging and stats with version 1.5)
  
- I Fixed the bug that would  erase the linefeeds in the messages when the card was picked up

- I fixed the bug that caused messages with quotes to display irreguler

- When using the script with $delete_old_cards set to mode 0 (delete_old cards and send sendlater
   whenever a card is posted) the script will only perform the cleaning of the database the very first
   time a card is posted per day.  Since this only needs to be done once perday this will greatly
   reduce server Load
   
   
- Other Minor Fixes


CHnages Since Version 1.0

- Fixed potential security whole when sending emails.. as reported by Bugtraq

Changes Since Version 1.0 Beta 2

- Added the Card pickup Notification.  This new features allows a pickup notification
   to be sent to the card sender when the reciever picks the card up.  To use this new service
   set $allow_pickup_notification = then add a check box named "PickupNotifcation" to the
   preview page to allow  the card sender to choose whether they would like to recieve a 
   notification when the card is picked up. (view demo)

- HAMcards 1.0 final release require the hamlib library version 1.3 (included in download)
   
- Fixed bug found by Marco Durrer that was causing the generation of ids for 
   "send later" cards to be the same for all cards when many were sent at one time.
   
- Fixed Bug found by Marco Durrer that was causing improper operation of sen later cards
   when opering the script in with $delete_old_cards_mode set to 2
   
- Added email support for systems that do not have sendmail or such.. (Mainly NT systems)
   Set $mail_mode = 0 or leave undefinded for normal operation - send mai using send mail
            other mail_prog
   Set $mail_mode = 1 to send mail via a smtp server. When this mode is chose set
            $smtp_server to a smtp server that will allow you to send your card notifcations
            This method also requires that the sockets.pm module be installed (This is a normal
            module installed with perl so this should not cause problems on most systems)
            


Changes Since Version 1.0 Beta 1
- Split script into "setup/start CGI" and HAMcards library.  This will allows users
   to just update the library (hamcardslib.pl) in the future. This is also how HAMnet
   will allow different HAMscripts to interact with one another.

- Fixed bug when user hit enter in message, then pickup would be bad.
   this fix will only fix new cards. Old card entries in the database will not be fixed.

- Fixed bug where user type in a vertical bar "|".  Previously would cause 
   pick up of card to be bad. Now turns the vertical bar to turn into a space.

- Added %%scriptloc%% to auto insert URL to the HAMcards script in templates

- Added new Pass Variables Method.  This will allow for multi-page card sites.
   the Pass variables method is implemented if the "Do" form element is set to 
   "passvar".  and the "NextPage" is set to a html template in the html_template path.
   The script will do nothing but out put the new template filling in the formfields 
from the data submitted to the CGI. (see readme.txt and multi-page example for more help)

- Added the delete old cards routine.  It has 3 modes of operation. in mode 0: the script
   will clean out the database whenever someone posts a new card.. this can be good if
   you do not have access to automate the process.  In mode 1: the script is made to be ran
from a command line (Telnet) just run the script without any form field and it will
   clean out the database.  this mode is good if you want to automate the cleaning process
using a cron (crontab).  Mode 2 is exactly like mode1 except it is designed to 
   run from a web browser.. just access the script directly without any formfields and it
   will clean the database. and prompt when finished.  The maximum age of a card is determined 
   by the $max_age variable.. This holds number of days to keep card in database.

- Added the Require form field.. You can use the form field to force people to input information.
   This is good  especially for multi-page sites.. because you can require different information
   for each page.  just include required as a hidden field on your html template/web page
   i.e.. <input type='hidden' name='Require' value='RName,SName'>  
   the above would require that form fields 'RName' and 'SName' be completed.
   Use comma to separate required fields.. No spaces though.

- Added support for Sending card later.  This allows a person to make a card now and have
   it sent at a later date.  The requirement.. If the Form Field "When" is empty or says "now" the
   card will be sent then. IF the "When" form field says "Later" then HAMcards will look
   for the Fields "SendMonth", "SendDay", "SendYear" to determine day to send card.
   If the card is sent now everything is normal... if it is to be sent later..then it will display
   a "Will Send later" html template.
   HAMcards will check to see if any "Send Later" cards need to be sent during the 
   Delete old cards routine.. So Whenever you have HAMcards delete old cards it will 
   send any "send Later" cards that need to be sent.
   Once a "Send Later" card is sent it will stay in the database for the number of days stored in
   $max_age variable

- Added support for new template variables in the preview template...  HAMcards will now replace
%%CurrentMonth%% with the current month number, %%CurrentMonthName%% with the name
   of the current month, %%CurrentDay%% with the current day of the month, and finally
   %%CurrentYear%% with the current year.  This addition will allow you to have your preview page 
   auto select the current date in the date provision for send later cards.

- Added two new demos.. Multi-Page demo and A Reminder Service


