| ASP4 documentation | Contained in the ASP4 distribution. |
ASP4::Server - Utility Methods
# Get the full disk path to /contact/form.asp:
$Server->MapPath("/contact/form.asp");
# Email someone:
$Server->Mail(
To => 'jim@bob.com',
From => 'Joe Jangles <joe@jangles.net>',
Subject => 'Test Email',
Message => "Hello There!",
);
# Avoid XSS:
<input type="text" name="foo" value="<%= $Server->HTMLEncode( $Form->{foo} ) %>" />
# Proper URLs:
<a href="foo.asp?bar=<%= $Server->URLEncode($Form->{bar}) %>">Click</a>
The $Server object provides some utility methods that don't really fit anywhere
else, but are still important.
Performs a simple string substitution to sanitize $str for inclusion on HTML pages.
Removes the threat of cross-site-scripting (XSS).
Eg:
<tag/>
Becomes:
<tag/>
Does exactly the reverse of HTMLEncode.
Eg:
<tag/>
Becomes:
<tag/>
Converts a string for use within a URL.
eg:
test@test.com
becomes:
test%40test.com
Converts a url-encoded string to a normal string.
eg:
test%40test.com
becomes:
test@test.com
Converts a relative path to a full disk path.
eg:
/contact/form.asp
becomes:
/var/www/mysite.com/htdocs/contact/form.asp
Sends email - uses Mail::Sendmail's sendmail(...) function.
The supplied coderef will be executed with its arguments as the request enters its Cleanup phase.
See http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlCleanupHandler for details.
It's possible that some bugs have found their way into this release.
Use RT http://rt.cpan.org/NoAuth/Bugs.html?Dist=ASP4 to submit bug reports.
Please visit the ASP4 homepage at http://0x31337.org/code/ to see examples of ASP4 in action.
| ASP4 documentation | Contained in the ASP4 distribution. |
package ASP4::Server; use strict; use warnings 'all'; use ASP4::HTTPContext; use Mail::Sendmail; sub new { return bless { }, shift; }# end new() sub context { ASP4::HTTPContext->current } sub URLEncode { ASP4::HTTPContext->current->cgi->escape( $_[1] ); }# end URLEncode() sub URLDecode { ASP4::HTTPContext->current->cgi->unescape( $_[1] ); }# end URLDecode() sub HTMLEncode { my ($s, $str) = @_; no warnings 'uninitialized'; $str =~ s/&/&/g; $str =~ s/</</g; $str =~ s/>/>/g; $str =~ s/"/"/g; $str =~ s/'/'/g; return $str; }# end HTMLEncode() sub HTMLDecode { my ($s, $str) = @_; no warnings 'uninitialized'; $str =~ s/</</g; $str =~ s/>/>/g; $str =~ s/"/"/g; $str =~ s/&/&/g; $str =~ s/'/'/g; return $str; }# end HTMLDecode() sub MapPath { my ($s, $path) = @_; return unless defined($path); ASP4::HTTPContext->current->config->web->www_root . $path; }# end MapPath() sub Mail { my $s = shift; Mail::Sendmail::sendmail( @_ ); }# end Mail() sub RegisterCleanup { my ($s, $sub, @args) = @_; $s->context->r->pool->cleanup_register( $sub, \@args ); }# end RegisterCleanup() 1;# return true: