summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2001-08-31 09:20:35 +0000
committerivan <ivan>2001-08-31 09:20:35 +0000
commite49fd9a1d93335d22174e47ccd547e47ccb17fe9 (patch)
tree039f1335a4150e8bd1ddee64453dc0ca0d6d800c
parent4ec61507a7b255c3f5e8a573eca18c48ddaaa2c1 (diff)
check US zips more strictly
-rw-r--r--FS/FS/Record.pm17
1 files changed, 12 insertions, 5 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index 2c745b413..9a532e3a0 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -813,10 +813,17 @@ Check/untaint zip codes.
=cut
sub ut_zip {
- my( $self, $field ) = @_;
- $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/
- or return "Illegal (zip) $field: ". $self->getfield($field);
- $self->setfield($field,$1);
+ my( $self, $field, $country ) = @_;
+ if ( $country eq 'US' ) {
+ $self->getfield($field) =~ /\s*(\d{5}(\-\d{4})?)\s*$/
+ or return "Illegal (zip) $field for country $country: ".
+ $self->getfield($field);
+ $self->setfield($field,$1);
+ } else {
+ $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/
+ or return "Illegal (zip) $field: ". $self->getfield($field);
+ $self->setfield($field,$1);
+ }
'';
}
@@ -969,7 +976,7 @@ sub DESTROY { return; }
=head1 VERSION
-$Id: Record.pm,v 1.25 2001-08-21 09:34:13 ivan Exp $
+$Id: Record.pm,v 1.26 2001-08-31 09:20:35 ivan Exp $
=head1 BUGS