diff options
-rw-r--r-- | Bugzilla/Util.pm | 28 | ||||
-rw-r--r-- | CGI.pl | 8 | ||||
-rwxr-xr-x | query.cgi | 3 |
3 files changed, 30 insertions, 9 deletions
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 256be5c31..6422984c2 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -131,6 +131,13 @@ sub xml_quote { return $var; } +sub url_decode { + my ($todecode) = (@_); + $todecode =~ tr/+/ /; # pluses become spaces + $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge; + return $todecode; +} + sub i_am_cgi () { # I use SERVER_SOFTWARE because it's required to be # defined for all requests in the CGI spec. @@ -391,6 +398,9 @@ Bugzilla::Util - Generic utility functions for bugzilla value_quote($var); xml_quote($var); + # Functions for decoding + $rv = url_decode($var); + # Functions that tell you about your environment my $is_cgi = i_am_cgi(); @@ -416,6 +426,9 @@ Bugzilla::Util - Generic utility functions for bugzilla # Cryptographic Functions $crypted_password = bz_crypt($password); + # Validation Functions + check_email_syntax($email); + =head1 DESCRIPTION This package contains various utility functions which do not belong anywhere @@ -498,6 +511,10 @@ This is similar to C<html_quote>, except that ' is escaped to '. This is kept separate from html_quote partly for compatibility with previous code (for ') and partly for future handling of non-ASCII characters. +=item C<url_decode($val)> + +Converts the %xx encoding from the given URL back to its original form. + =item C<i_am_cgi()> Tells you whether or not you are being run as a CGI script in a web @@ -638,3 +655,14 @@ characters of the password to anyone who views the encrypted version. =end undocumented =back + +=head2 Validation + +=over 4 + +=item C<check_email_syntax($email)> + +Do a syntax checking for a legal email address. An error is thrown +if the validation fails. + +=back @@ -55,14 +55,6 @@ use vars qw($template $vars); # Implementations of several of the below were blatently stolen from CGI.pm, # by Lincoln D. Stein. -# Get rid of all the %xx encoding and the like from the given URL. -sub url_decode { - my ($todecode) = (@_); - $todecode =~ tr/+/ /; # pluses become spaces - $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge; - return $todecode; -} - # check and see if a given field exists, is non-empty, and is set to a # legal value. assume a browser bug and abort appropriately if not. # if $legalsRef is not passed, just check to make sure the value exists and @@ -33,6 +33,7 @@ require "CGI.pl"; use Bugzilla::Constants; use Bugzilla::Search; use Bugzilla::User; +use Bugzilla::Util; use vars qw( @CheckOptionValues @@ -165,7 +166,7 @@ sub PrefillForm { my $name = $el[0]; my $value; if ($#el > 0) { - $value = url_decode($el[1]); + $value = Bugzilla::Util::url_decode($el[1]); } else { $value = ""; } |