home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 May / PCWorld_1999-05_cd.bin / Komunik / MSIE5 / ieak5.exe / RCDATA / CABINET / signup05.pl < prev    next >
Perl Script  |  1999-02-24  |  7KB  |  180 lines

  1. #!/usr/bin/perl
  2. # Written by Edward C Kubaitis
  3.  
  4. # The host URL of the Signup Files
  5. $hostURL="http://myserver/";
  6.  
  7. # Parse the CGI input
  8. $BACKURL=&parse_input;
  9.  
  10. # Check if email name is in use
  11. &check_email;
  12.  
  13. # Start HTML output
  14. &startHTML;
  15.  
  16. # Display the HTML head
  17. &headHTML;
  18.  
  19. # Display the HTML body
  20.  
  21. if ($email_inuse eq "yes"){$ERROR=1;&errorHTML;}
  22. elsif ($pid_notnew eq "yes"){$ERROR=2;&errorHTML;}
  23. else { &bodyHTML;} 
  24.  
  25. # End HTML output
  26. &endHTML;
  27.  
  28. # Exit the CGI
  29. &quit;
  30.  
  31. ##########################################################
  32. sub startHTML {
  33.     print "Content-type: text/html\n\n";print "<HTML>\n";
  34. }
  35. ##########################################################
  36. sub endHTML {
  37.     print "</html>\n";
  38. }
  39. ##########################################################
  40. sub quit {
  41.     exit(0);
  42. }
  43. ##########################################################
  44. sub parse_input {
  45.     @pairs = split(/&/, $ENV{'QUERY_STRING'});
  46.  
  47.     foreach $pair (@pairs) {
  48.        ($name, $value) = split(/=/, $pair);
  49.     $ABACKURL=$ABACKURL+"$name=$value\&";
  50.        # Un-Webify plus signs and %-encoding
  51.        $value =~ tr/+/ /;
  52.           $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  53.           $value =~ s/<!--(.|\n)*-->//g;
  54.           if ($allow_html != 1) {
  55.           $value =~ s/<([^>]|\n)*>//g;
  56.           }
  57.          if ($value eq ""){$value=" ";}
  58.        $FORM{$name} = $value;
  59.     
  60.     }
  61. chop($ABACKURL);return $ABACKURL;
  62. }
  63.  
  64. ##########################################################
  65. sub bodyHTML {
  66.  
  67. print "<BODY  bgColor=THREEDFACE color=WINDOWTEXT>\n";
  68. print "<FONT style=\"font: 8pt ' ms sans serif' black\">\n";
  69.  
  70. print "<FORM NAME=\"PAGEID\" ACTION=\"PAGE5\" STYLE=\"background:transparent\"></FORM>\n";
  71. print "<FORM NAME=\"BACK\" ACTION=\"$hostURL/signup04.pl?$BACKURL\" STYLE=\"background:transparent\"></FORM>\n";
  72. print "<FORM NAME=PAGETYPE ACTION= STYLE=background:transparent></FORM>\n";
  73. print "<FORM NAME=\"NEXT\" ACTION=$hostURL/signup06.pl STYLE=\"background:transparent\">\n";
  74. print "<B>Welcome To IEAK Sample Signup Server</B><BR>\n";
  75. print "This is where we will collect the information about the phone \n";
  76. print "number that you will dial to gain access to the internet.<P>\n";
  77. print "Please select the telephone number you wish to use.<BR>\n";
  78. print "<SELECT NAME=\"POPSELECTION\">\n";
  79. print "<OPTION VALUE=\"1\" >800 555 5555 Nation Wide 56K X2\n";
  80. print "<OPTION VALUE=\"2\" >206 555 5555 Seattle 56K X2\n";
  81. print "<OPTION VALUE=\"3\" >425 555 5555 Redmond 56K X2\n";
  82. print "<OPTION VALUE=\"4\" >800 555 5555 Nation Wide ISDN\n";
  83. print "<OPTION VALUE=\"5\" >206 555 5555 Seattle ISDN\n";
  84. print "<OPTION VALUE=\"6\" >425 555 5555 Redmond ISDN\n";
  85. print "</SELECT>\n";
  86. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_FIRSTNAME\" VALUE=\"FORM{'USER_FIRSTNAME'}\">\n";
  87. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_LASTNAME\" VALUE=\"FORM{'USER_LASTNAME'}\">\n";
  88. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_ADDRESS\" VALUE=\"FORM{'USER_ADDRESS'}\">\n";
  89. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_MOREADDRESS\" VALUE=\"FORM{'USER_MOREADDRESS'}\">\n";
  90. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_CITY\" VALUE=\"FORM{'USER_CITY'}\">\n";
  91. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_STATE\" VALUE=\"FORM{'USER_STATE'}\">\n";
  92. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_ZIP\" VALUE=\"FORM{'USER_ZIP'}\">\n";
  93. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_PHONE\" VALUE=\"FORM{'USER_PHONE'}\">\n";
  94. print "<INPUT TYPE=\"HIDDEN\" NAME=\"AREACODE\" VALUE=\"FORM{'AREACODE'}\">\n";
  95. print "<INPUT TYPE=\"HIDDEN\" NAME=\"COUNTRYCODE\" VALUE=\"FORM{'COUNTRYCODE'}\">\n";
  96. print "<INPUT TYPE=\"HIDDEN\" NAME=\"USER_FE_NAME\" VALUE=\"FORM{'USER_FE_NAME'}\">\n";
  97. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_TYPE\" VALUE=\"FORM{'PAYMENT_TYPE'}\">\n";
  98. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLNAME\" VALUE=\"FORM{'PAYMENT_BILLNAME'}\">\n";
  99. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLADDRESS\" VALUE=\"FORM{'PAYMENT_BILLADDRESS'}\">\n";
  100. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLEXADDRESS\" VALUE=\"FORM{'PAYMENT_BILLEXADDRESS'}\">\n";
  101. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLCITY\" VALUE=\"FORM{'PAYMENT_BILLCITY'}\">\n";
  102. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLSTATE\" VALUE=\"FORM{'PAYMENT_BILLSTATE'}\">\n";
  103. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLZIP\" VALUE=\"FORM{'PAYMENT_BILLZIP'}\">\n";
  104. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_BILLPHONE\" VALUE=\"FORM{'PAYMENT_BILLPHONE'}\">\n";
  105. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_DISPLAYNAME\" VALUE=\"FORM{'PAYMENT_DISPLAYNAME'}\">\n";
  106. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_CARDNUMBER\" VALUE=\"FORM{'PAYMENT_CARDNUMBER'}\">\n";
  107. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_EXMONTH\" VALUE=\"FORM{'PAYMENT_EXMONTH'}\">\n";
  108. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_EXYEAR\" VALUE=\"FORM{'PAYMENT_EXYEAR'}\">\n";
  109. print "<INPUT TYPE=\"HIDDEN\" NAME=\"PAYMENT_CARDHOLDER\" VALUE=\"FORM{'PAYMENT_CARDHOLDER'}\">\n";
  110. print "<INPUT TYPE=\"HIDDEN\" NAME=\"SIGNED_PID\" VALUE=\"FORM{'SIGNED_PID'}\">\n";
  111. print "<INPUT TYPE=\"HIDDEN\" NAME=\"EMAILNAME\" VALUE=\"FORM{'EMAILNAME'}\">\n";
  112. print "<INPUT TYPE=\"HIDDEN\" NAME=\"EMAILPASSWORD\" VALUE=\"FORM{'EMAILPASSWORD'}\">\n";
  113. print "</FORM>\n";
  114. print "</BODY>\n";
  115.  
  116.  
  117. }
  118. ##########################################################
  119. sub headHTML {
  120.  
  121. print "<HEAD>\n";
  122. print "<TITLE>IEAK Sample Signup Page 2</TITLE>\n";
  123. print "</HEAD>\n";
  124.  
  125. }
  126. ##########################################################
  127. sub check_pid {
  128.  
  129. # Check a database to see if the pid has already
  130. # registered in the past. If so set a flag
  131.  
  132. # no means it is a new pid
  133. $pid_notnew="no"; 
  134.  
  135. # yes means it has being registered before
  136.  
  137. }
  138. ##########################################################
  139. sub check_email {
  140.  
  141. # Check a database or finger to see if the email name is already
  142. # being used. If so set a flag
  143.  
  144. # Here is a sample of how to do the check on a unix machine.
  145. # Larger ISPs might want to check with a database
  146.  
  147. # $check = 'finger $FORM{'EMAILNAME'}';
  148. # if ($check =~ "no such user."){ $email_inuse="no";}
  149. # else { $email_inuse="yes";}
  150.  
  151. # no means it is not in use
  152. $email_inuse="no"; 
  153.  
  154. # yes means it is in use
  155.  
  156. }
  157. ##########################################################
  158. sub errorHTML {
  159.  
  160. print "<BODY>\n";
  161. print "<FORM NAME=\"PAGEID\" ACTION=\"ERROR1\" STYLE=\"background:transparent\"></FORM>\n";
  162. print "<FORM NAME=\"BACK\" ACTION=\"$hostURL/signup01.pl\" STYLE=\"background:transparent\"></FORM>\n";
  163. print "<FORM NAME=\"PAGETYPE\" ACTION=\"\" STYLE=\"background:transparent\"></FORM>\n";
  164. print "<FORM NAME=\"NEXT\" ACTION=\"$hostURL/signup01.pl\" STYLE=\"background:transparent\">\n";
  165.  
  166. if ($ERROR == 1){
  167. print "This E-Mail Name is already in use. Please choose another Name.<P>\n";
  168. }
  169. if ($ERROR == 2){
  170. print "Your computer's PID Has already set up a free account with Acme Intnernet Services.<P>\n";
  171. }
  172. if ($ERROR == 3){
  173. print "You have already had a free click and surf account with Acme Internet Services.<P>\n";
  174. }
  175.  
  176. print "</BODY>\n";
  177.  
  178. }
  179. ##########################################################
  180.