summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfs_signup/FS-SignupClient/cgi/signup.cgi22
1 files changed, 16 insertions, 6 deletions
diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi
index e45c85056..ca40e8126 100755
--- a/fs_signup/FS-SignupClient/cgi/signup.cgi
+++ b/fs_signup/FS-SignupClient/cgi/signup.cgi
@@ -1,6 +1,6 @@
#!/usr/bin/perl -Tw
#
-# $Id: signup.cgi,v 1.29.2.3 2002-11-28 10:54:28 ivan Exp $
+# $Id: signup.cgi,v 1.29.2.4 2002-11-29 05:14:19 ivan Exp $
use strict;
use vars qw( @payby $cgi $locales $packages $pops $init_data $error
@@ -143,11 +143,21 @@ $cgi = new CGI;
if ( defined $cgi->param('magic') ) {
if ( $cgi->param('magic') eq 'process' ) {
- $cgi->param('state') =~ /^(\w*)( \(([\w ]+)\))? ?\/ ?(\w+)$/
- or die "Oops, illegal \"state\" param: ". $cgi->param('state');
- $state = $1;
- $county = $3 || '';
- $country = $4;
+ if ( $cgi->param('state') =~ /^(\w*)( \(([\w ]+)\))? ?\/ ?(\w+)$/ ) {
+ $state = $1;
+ $county = $3 || '';
+ $country = $4;
+ } elsif ( $cgi->param('state') =~ /^(\w*)$/ ) {
+ $state = $1;
+ $cgi->param('county') =~ /^([\w ]*)$/
+ or die "illegal county: ". $cgi->param('county');
+ $county = $1;
+ $cgi->param('country') =~ /^(\w+)$/
+ or die "illegal country: ". $cgi->param('country');
+ $country = $1;
+ } else {
+ die "illegal state: ". $cgi->param('state');
+ }
$payby = $cgi->param('payby');
$payinfo = $cgi->param( $payby. '_payinfo' );