CSci 4608 Problem set 2: forms, Perl
Problem 1
Write an HTML page with a registration form that asks the user to
submit the following information:
- The name
- The password, which needs to be typed twice. Use the input type
'password' for the password.
- Address, which consists of the street address, city, state, and
zip code. Make the state to be a selection drop-down menu for
state (you don't need to include all the states, 3-4 would suffice).
- Phone number
- e-mail address
- The date when the user would like to hear back from the company
(or whatever), 2 2-character input areas for month and day and one
4-character for the year.
Validate the form in the following way:
- Check that the two passwords are the same. Disable the second
password field after it has been validated.
- Check that the zip code has exactly 5 digits (don't worry about a
possible 4-digit extension).
- Check that the phone number has 10 digits. Ignore the separators
(spaces, parentheses, dashes)
- Check the e-mail address to make sure that it has some non-empty
sequence of symbols, the @ symbol, another non-empty sequence,
the dot, and another sequence (possibly including more dots). You
don't need to check whether the domain name is valid.
- Check that the data that the user entered is valid (day <= 31,
month <= 12, year can be any 4 digits). Then check to make sure that
it's some time in the future (use Date() function for that).
Write the perl script to check the user information (the same way you
have validate it), except for the
password. If it is entered correctly, display it. Otherwise print the
error message (which fields have not been entered correctly). Note
that you cannot assume the that the state is among those given as
options, so you need to check that, too. Make
sure it's reasonably formatted (each piece of information clearly
marked and displayed on its own line).
Problem 2
Write an HTML page with a form for electronic voting. It should have
at least three options, the user can vote for exactly one of them (use
validation to guarantee that at least one option is selected, and use
a group of radio buttons so that the selection is mutually
exclusive).
Write a Perl script which will keep record of the votes in a text
file. When a vote arrives, it is added to the file. Then the results
are displayed as numbers and as color bars. To set up the color bars,
use tables (one per each voting option) with the background of the
cells representing the option. Each table has just one
row. The width of the table is set based on the number of votes. Here
is an example of what the tables might look like (only you will need
to set the width in the perl program based on the number of votes).
Votes for Bart Simpson:
Votes for Lisa Simpson:
Votes for Maggie Simpson:
Problem 3
Please answer the following questions. Explain your answers, give
examples if needed.
- What is easier: JavaScript validation or Perl pattern-matching?
- Is it a good idea to send the password in a form,
the way it's done in Problem 1?
- Some forms have hidden fields that users can't see or enter data
into. Some online shopping companies store the price of a product as a
hidden field. Then on the server side the charge to the user account
is made according to the data sent with the form. Are there any
problems with this approach? Please be specific.
- Problem 2 asked you to store data in a file. Is there a danger of
unauthorized access to the file (for reading or for writing) using
this approach?
This is a problem set from CSci 4608
course at UMM.