Waft - A simple web application framework
========================================================================== myform.cgi -------------------------------------------------------------------------- #!/usr/bin/perl use lib 'lib'; require MyForm; MyForm->waft; ========================================================================== lib/MyForm.pm -------------------------------------------------------------------------- package MyForm; use base 'Waft'; sub __default__direct { my ($self) = @_; $self->{name} = q{}; $self->{address} = q{}; $self->{phone} = q{}; $self->{comment} = q{}; return 'TEMPLATE'; } sub __default__submit { my ($self) = @_; $self->{name} = $self->query->param('name'); $self->{address} = $self->query->param('address'); $self->{phone} = $self->query->param('phone'); $self->{comment} = $self->query->param('comment'); return 'confirm.html'; } sub __confirm__indirect { my ($self) = @_; return 'default.html', 'error!' if length $self->{name} == 0; return 'TEMPLATE'; } sub __confirm__submit { return 'thankyou.html'; } sub __confirm__back { return 'default.html'; } sub __thankyou__indirect { my ($self) = @_; open my $fh, '>> form.log'; print {$fh} $self->{name}, "\n"; print {$fh} $self->{address}, "\n"; print {$fh} $self->{phone}, "\n"; print {$fh} $self->{comment}, "\n"; close $fh; return 'TEMPLATE'; } 1; ========================================================================== lib/MyForm.template/default.html -------------------------------------------------------------------------- <% my ($self, $error) = @_; %> <html> <head> <title>FORM</title> </head> <body> <% if ($error) { %> <p> <% = $error %> </p> <% } %> <form action="<% = $self->url %>" method="POST"> <p> Name: <input type="text" name="name" value="<% = $self->{name} %>" /> </p> <p> Address: <input type="text" name="address" value="<% = $self->{address} %>" /> </p> <p> Phone: <input type="text" name="phone" value="<% = $self->{phone} %>" /> </p> <p> Comment: <br /> <textarea name="comment"><% = $self->{comment} %></textarea> </p> <p> <input type="submit" /> </p> </form> </body> </html> ========================================================================== lib/MyForm.template/confirm.html -------------------------------------------------------------------------- <% my ($self) = @_; %> <html> <head> <title>FORM - CONFIRM</title> </head> <body> <form action="<% = $self->url %>" method="POST"> <p> Name: <% = $self->{name} %> </p> <p> Address: <% = $self->{address} %> </p> <p> Phone: <% = $self->{phone} %> </p> <p> Comment: <br /> <% text = $self->{comment} %> </p> <p> <input type="submit" /> <input type="submit" name="back" value="back to FORM" /> </p> </form> </body> </html> ========================================================================== lib/MyForm.template/thankyou.html -------------------------------------------------------------------------- <% my ($self) = @_; %> <html> <head> <title>FORM - THANKYOU</title> </head> <body> <p> Thank you for your comment! </p> <p> Name: <% = $self->{name} %> </p> <p> Address: <% = $self->{address} %> </p> <p> Phone: <% = $self->{phone} %> </p> <p> Comment: <br /> <% text = $self->{comment} %> </p> </body> </html>
Yuji Tamashiro, <yuji@tamashiro.org>
Copyright (C) 2007 by Yuji Tamashiro
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Waft, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Waft
CPAN shell
perl -MCPAN -e shell install Waft
For more information on module installation, please visit the detailed CPAN module installation guide.