My Signup Sheet(version 2.5)

Please read everything but email me if
(1) you do not understand
(2) you get it running (so I can check it out, put up a link to your site, and let you know when important releases come out)

In this README:
REQUIRES    back to top
  • 1. web server (tested on apache 2.0.44 on UNIX and LINUX)
  • 2. Perl (tested with 5.8.0)
  • This multipurpose sign-up sheet will allow you to easily and quickly create a signup sheet for just about any event. A limit to the number of people allowed to sign up for each time slot can be specified. The data is stored in a plain text flat file database, so users can be removed by simply editing the file if it is ever needed. As with any of my scripts, I am always interested to see who is using and what modifications, if any, have been made. If you are willing, please send an email to me and tell me you are using my script so I can check it out!
    SUMMARY    back to top
    FEATURES    back to top
  • Create as many open slots for signup as you want!
  • Uses a template.html file to quickly make everything match your current site
  • Specify your own colors.
  • Set limits as to how many people can sign up for a specific slot, or choose no limit.
  • You choose whether or not other users view the schedule information.
  • You choose whether or not users can sign up for multiple slots at a time.
  • You choose whether or not to be notified upon each new signup.
  • Specify a unique email for each event, in the case that each event is being coordinated by a unique individual.
  • DISTRIBUTION / LICENSE    back to top
    This software is released under the GPL. Please see the included LICENSE file. Copyright (C) 2003 Erin Spiceland This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Use this script at your own risk! I make no warranties that it is hack proof!

    1. Upload the .zip or .tar.gz file directly into your cgi-bin directory. Almost all folders will be created automatically for you. Do this on commandline:
    $ unzip        *** or***
    $ tar -zxvpf filename.tar.gz
    2. Your directory structure will now look like this. Listed out to the side are the permissions for each file. If you used the tar.gz file, your permissions will automatically be set, because tar saves them. If you used the zip file, you will need to set these permissions yourself. A quick way to do this is with the following:
    $ chmod 755 *.cgi *.pm protected/*.cgi
    If you are on a Windows server, use your control panel to give the 755 files execute permissions.

    signup/drwxr-xr-x-chmod   755
    signup/data.txt-rwxr-xr-x-chmod   644
    signup/index.cgi-rwxr-xr-x-chmod   755
    signup/lib/drwxr-xr-x-chmod   755
    signup/lib/   644
    signup/lib/   644
    signup/lib/   644
    signup/LICENSE-r-wr--r---chmod   644
    signup/README-r-wr--r---chmod   644
    signup/readme.html-r-wr--r---chmod   644
    signup/template.html-r-wr--r---chmod   644

    3. Make sure all these files are owned by the right user. If you are on a server that is not your own, you are most likely ok. Ask your system administrator if you think you may need to change the ownership of these files. If you are on your own webserver, sometimes you will have to change the ownership to "apache" or "nobody" to get the scripts to run. Do this with:
    $ chown apache:apache * -R
    4. Edit lib/ to suit your needs. You will need to specify your preferences on colors, a font, a template, what information you want from your users, and what you want your users to be able to choose from.

    5. Choose your language. My Signup Sheet is automatically set up to use English. If you are using another language that is already supported by My Signup Sheet, just rename your appropriate language file to be named "," like this:
    $ cd lib/
    $ cp
    cp: overwrite ''?  y
    $ cd ../

    6. You may need to modify the first line of index.cgi to point to where perl is located on your server. Basically, its just pound, exclamation point, then the path to the perl executable.
    #!/usr/bin/perl (most common, and the default for this script)
    #!/soft/script/bin/perl (University of Tennesse Knoxville)

    1. Unzip or untar the archive file into a directory on your computer.

    2. Edit lib/ to suit your needs. You will need to specify your preferences on colors, a font, a template, what information you want from your users, and what you want your users to be able to choose from.

    3. You may need to modify the first line of index.cgi to point to where perl is located on your server. Basically, its just pound, exclamation point, then the path to the perl executable.
    #!/usr/bin/perl (most common, and the default for this script)
    #!/soft/script/bin/perl (University of Tennesse Knoxville)
    4. Upload the files to the server. Make sure the directory structure is the same (all the folders are in the same place as they werewhen you unzipped the file.) You should put all the files in your cgi-bin directory. Make sure you upload them in ASCII mode, NOT binary mode. Uploading them in binary mode will turn all the files into useless garbly goop that cannot be executed. 5. Make sure all the executable files have execute permissions. Use your control panel to give all .cgi and .pl files executable permissions. If you do not know how to do this, contact your system administrator.

    6. Now just point your browser at it!
    HOW TO USE    back to top
    First, access the front page by going to the url (ex, Then simply fill in the blanks, choose an option, and hit enter. To view the results for each option, click on the link.

    TROUBLESHOOTING    back to top
    1. If you get an internal server error, run it from command line so that you can see what is going wrong and check your server logs for helpful error messages. For instance, if its index.cgi that's giving you problems, do:
    $ ./index.cgi
    If it's running correctly, it will return alot of html code. If it does anything else, its obviously broken. Look at the output and see if you can make sense of it. Here are some sample errors and explanations on what they mean and how to fix it.
    $ ./index.cgi
    Can't locate SOMETHING in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ./index.cgi line 29. BEGIN failed--compilation aborted at ./index.cgi line 29.
    This can mean one of two things. Its looking for a perl module to load. It either means that you do not have that perl module installed, or that it is installed into the wrong directory and perl can't find it. If SOMETHING is,,, or, then you are missing the lib/ directory or one of the files in it, and you need to download and reinstall My Signup Sheet. If it is, you do not have a perl module that is required to rum My Signup Sheet. If you do not have this perl module, you must install it. Contact your system administrator and request that they add that module to the server, or do a local install of it.
    $ ./index.cgi
    bash: ./index.cgi: Permission denied
    Again, this error message means one of two things. Either index.cgi does not have execute permissions, or it is not owned by the correct user. See the installation instructions above to determine which of these is the case.
    $ ./index.cgi
    bash: ./index.cgi: /usr/bin/perl: bad interpreter: No such file or directory
    This means that your shebang line (the first line in any perl script) does not point to where perl actually resides on your server. See the installation instructions on the importance of this and how to fix it.

    If you receive any other error messages, feel free to email them to me, and I will do my best to explain what they mean and how to remedy the situation. These are the three most common error messages you may get, and they are all easily fixable.
    CHANGES    back to top
    12.06.03version 2.5Webmaster can now specify a unique email for each event to notify coordinators of that particular event when signups are made. Webmaster can also specify not to notify upon signups.
    11.09.03version 2.41Added the language module.
    11.01.03version 2.4General code cleanup. Color change.
    09.07.03version 2.3Fixed a bug that prohibited anyone from viewing signups made for events that had no slots left.
    08.17.03version 2.2Fixed display bug.
    07.12.03version 2.1Added the ability to allow users to make more than one choiceat a time if desired.
    02.01.03version 2.0Complete overhaul. The script was completly rewritten - none of the code is the original. Added features are the ability to choose whether or not your users see the schedule, templatability, ability to define what info you get from your users, and the ability to set a limit of infinity.
    11.21.01version 1.0Including first real readme.
    TODO    back to top
    I need to do help with the following items
  • Let users change their mind and delete or change what they have signed up for.
  • Let webmaster approve or delete signups before they are posted.
  • If you have suggestions of other features, please email me!
  • Send questions or comments to

    Mike and Erin Spice