FormMagick FAQ - Frequently asked questions about FormMagick
In theory, you validate it against the DTD provided with the FormMagick distribution, using a suitable XML validation tool. Unfortuneately we haven't found one yet, but when we do we'll write a script and distribute it with FormMagick.
Use cascading style sheets. Take a look at the HTML source output by FormMagick, and you'll see that most things have a ``label'' attribute to make CSS easier.
Simply create a routine in your CGI script which accepts the data to validate as an argument. Have it return ``OK'' on success or a detailed error message on failure.
sub my_validation { my $data = shift; if ($data =~ /$some_pattern/) { return "OK"; } else { return "That looks wrong to me."; } }
Use the add_lexicon()
method:
$f->add_lexicon("fr", { "Yes" => "Oui", "No" => "Non" });
Use a POST-EVENT on the PAGE element. Create a subroutine that does what you want:
sub process_credit_card { my $cgi = shift; my $cardnum = $cgi->param("cardnum"); my $response = do_processing($cardnum); print "<p>$response</p>"; }
Use a PAGE POST-EVENT and set the value of the ``wherenext'' CGI parameter:
sub my_post_page_event { my $cgi = shift; if ($cgi->param("foo") eq "bar") { $cgi->param(-name => "wherenext", -value => "GoToThisPageName") } elsif ($cgi->param("had_enough") eq "Yes") { $cgi->param(-name => "wherenext", -value => "Finish") } }
Try turning on debugging when you invoke FormMagick:
my $f = new CGI::FormMagick( DEBUG => 1 );
You probably need to make your session-tokens
directory writable and
executable by the web server. Either:
chown www session-tokens (assuming your webserver runs as the www user) chmod 700 session-tokens
Or...
chmod 777 session-tokens
Note that the latter allows anyone on the system to write to this directory, and is a greater security risk than the former method.