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 lexicon element in your XML.
lexicon
Use a post-event on the page element. Create a subroutine that does what you want:
post-event
page
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:
page post-event
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:
$f->debug(1);
This will print out general debugging messages to the web page.
You probably need to make your session-tokens directory writable and executable by the web server. Either:
session-tokens
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.
To install CGI::FormMagick, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CGI::FormMagick
CPAN shell
perl -MCPAN -e shell install CGI::FormMagick
For more information on module installation, please visit the detailed CPAN module installation guide.