in reply to checkbox help

When you are working with checkboxes, you should already know what boxes are going to to appear on the form.

It is easy for a someone to slip something onto the web page manually and typos can also be an issue.

On this case, be explicit, know exactly which entries are supposed to be on the form rather than loop through doing a regular expression on the input names.

Replies are listed 'Best First'.
Re^2: checkbox help
by djbryson (Beadle) on Mar 05, 2007 at 18:40 UTC
    it's done like this so that the code is portable, it can read in any HTML template.

      Whatever method you use to create the checkboxes should call the same method to validate the checkboxes to check their input. The first

      my $checkbox_fields = get_checkbox_fields(); for my $field (@{$checkbox_fields}) { $in{$field} = $query->param($field) ? 'checked' : 'not checked'; } sub get_checkbox_fields { return [qw(c_test1 c_test2 c_test3)] }

      If you use the get_checkbox_fields() to generate the checkboxes on your web page, then you can use it to verify the data you get from the web page.

      Looping through the fields using a regexp can lead to errors with conflicting field names or someone inserting extra fields into the submission. You can never rely on a naming convention to classify data you receive from a web page. Always know exactly what you expect and you do not have to worry about these sorts of issues.