signup.cgi fix for hidden agentnum tags with trailling "/ >"
[freeside.git] / fs_selfservice / FS-SelfService / cgi / signup.cgi
index 1514db5..83a8108 100755 (executable)
@@ -65,7 +65,7 @@ if ( -e $signup_html ) {
                                         )
     or die $Text::Template::ERROR;
   if ( $signup_txt =~
-         /<\s*INPUT TYPE="?hidden"?\s+NAME="?agentnum"?\s+VALUE="?(\d+)"?\s*>/si
+         /<\s*INPUT TYPE="?hidden"?\s+NAME="?agentnum"?\s+VALUE="?(\d+)"?\s*\/?\s*>/si
   ) {
     $agentnum = $1;
   }
@@ -149,6 +149,14 @@ if (    ( defined($cgi->param('magic')) && $cgi->param('magic') eq 'process' )
                               ? $cgi->param( $payby. '_paycvv' )
                               : ''
                );
+    $cgi->param('paytype' => defined $cgi->param( $payby. '_paytype' )
+                              ? $cgi->param( $payby. '_paytype' )
+                              : ''
+               );
+    $cgi->param('paystate' => defined $cgi->param( $payby. '_paystate' )
+                              ? $cgi->param( $payby. '_paystate' )
+                              : ''
+               );
 
     if ( $cgi->param('invoicing_list') ) {
       $cgi->param('invoicing_list' => $cgi->param('invoicing_list'). ', POST')
@@ -182,22 +190,24 @@ if (    ( defined($cgi->param('magic')) && $cgi->param('magic') eq 'process' )
 
     unless ( $error ) {
       my $rv = new_customer( {
-        map { $_ => scalar($cgi->param($_)) }
-          qw( last first ss company
-              address1 address2 city county state zip country
-              daytime night fax
-
-              ship_last ship_first ship_company
-              ship_address1 ship_address2 ship_city ship_county ship_state
-                ship_zip ship_country
-              ship_daytime ship_night ship_fax
-
-              payby payinfo paycvv paydate payname invoicing_list
-              referral_custnum promo_code reg_code
-              pkgpart username sec_phrase _password popnum refnum
-              agentnum
-            ),
-          grep { /^snarf_/ } $cgi->param
+        ( map { $_ => scalar($cgi->param($_)) }
+            qw( last first ss company
+                address1 address2 city county state zip country
+                daytime night fax stateid stateid_state
+
+                ship_last ship_first ship_company
+                ship_address1 ship_address2 ship_city ship_county ship_state
+                  ship_zip ship_country
+                ship_daytime ship_night ship_fax
+
+                payby payinfo paycvv paydate payname paystate paytype
+                invoicing_list referral_custnum promo_code reg_code
+                pkgpart username sec_phrase _password popnum refnum
+                agentnum
+              ),
+            grep { /^snarf_/ } $cgi->param
+        ),
+        'payip' => $cgi->remote_host(),
       } );
       $error = $rv->{'error'};
     }