home *** CD-ROM | disk | FTP | other *** search
/ SGI Hot Mix 12 / Silicon_Graphics_Developer_Magic_Soft_Dev_812-8101-012.iso / .all / httpd_ncsa / cgi-bin / AT-start.cgi < prev    next >
Encoding:
Text File  |  1995-11-10  |  6.7 KB  |  275 lines

  1. #!/bin/sh
  2. perl=/usr/local/etc/architext/perl
  3. eval "exec $perl -x $0 $*"
  4. #!perl
  5.  
  6. $callbackUrl = "http://$ENV{'SERVER_NAME'}:$ENV{'SERVER_PORT'}$ENV{'SCRIPT_NAME'}";
  7. $callbackUrl =~ s|AT-start|AT-admin|g;
  8.  
  9.  
  10. $root = "/usr/local/etc/architext";
  11. $docRoot = $root;
  12. $scriptName = "AT-start.cgi";
  13. $productName = "On Target";
  14.  
  15. $adFile = "$docRoot/AT-ad.html";
  16. $licenseFile = "$docRoot/AT-license.html";
  17. $declineFile = "$docRoot/AT-decline.html";
  18. $startFile = "$docRoot/AT-start.html";
  19.  
  20. die "Invalid root directory '$root'\n" unless -d $root;
  21.  
  22. unshift(@INC, "$root/perllib");
  23. require 'architext.pl';
  24. require 'architextConf.pl';
  25.  
  26. $productVersion = &Architext'productVersion();
  27. $remoteScriptName = &Architext'remoteScriptName();
  28.  
  29. $| = 1;
  30. open(STDERR, ">&STDOUT");
  31. # &Architext'printHeader($atextUrl, "Debugger"); 
  32. %attr = &ArchitextConf'readConfig("$root/Architext.conf");
  33. $atextUrl = $attr{'ArchitextURL'};
  34.  
  35.  
  36. %FORM = &Architext'readFormArgs;
  37.  
  38. $ad = 1;
  39. $license = 2;
  40. $register = 3;
  41. $accept = 4;
  42. $decline = 5;
  43. $start = 6;
  44.  
  45. if (!$FORM{mode}) {
  46.     $formMode = $start;
  47. }
  48. elsif ($FORM{mode} =~ /^Advertize/i) {
  49.     $formMode = $ad;
  50. }
  51. elsif ($FORM{mode} =~ /^Read/i) {
  52.     $formMode = $license;
  53. }
  54. elsif ($FORM{mode} =~ /^Accept/i) {
  55.     $formMode = $accept;
  56. }
  57. elsif ($FORM{mode} =~ /^Decline/i) {
  58.     $formMode = $decline;
  59. }
  60. elsif ($FORM{mode} =~ /^Register/i) {
  61.     $formMode = $register;
  62. }
  63. else {
  64.     &Architext'printHeader($atextUrl, "Invalid mode $FORM{mode}."); 
  65.     &Architext'exitError($atextUrl, "Invalid mode $FORM{mode}."); 
  66. }
  67.  
  68. while (! $isDone) {
  69. $isDone = 1;
  70. if ($formMode == $start) {
  71.     &printDoc($startFile);
  72.     print <<ACCESS;
  73. <br>
  74. <B>
  75. <form action=$remoteScriptName method=post>
  76. <input type="submit" value="Use Remote Documentation">
  77. <input type="hidden" name="AT-admin" value="$callbackUrl">
  78. </form>
  79.  
  80. <form action=$scriptName method=post>
  81. <input type="submit" value="Use Local Documentation">
  82. <input type="hidden" name="mode" value="Advertize">
  83. </form>
  84. </B>
  85. ACCESS
  86. }
  87. elsif ($formMode == $ad) {
  88.     &printDoc($adFile);
  89.     print <<READ;
  90. <br>
  91. <B>
  92. <form action=$scriptName method=post>
  93. <input type="submit" name="Read License Agreement" 
  94. value="Read License Agreement">
  95. <input type="hidden" name="mode" value="Read License Agreement">
  96. </form>
  97. <form>
  98. <input type="submit" name="Decline" value="Decline">
  99. <input type="hidden" name="mode" value="Decline">
  100. </form>
  101. </B>
  102. READ
  103. }
  104. elsif ($formMode == $license) {
  105.     &printDoc($licenseFile);
  106.     print <<ACCEPT;
  107. <br>
  108. <B>
  109. <form action=$scriptName method=post>
  110. <input type="submit" name="Accept" value="Accept">
  111. <input type="hidden" name="mode" value="Accept">
  112. </form>
  113. <form action=$scriptName method=post>
  114. <input type="submit" name="Decline" value="Decline">
  115. <input type="hidden" name="mode" value="Decline">
  116. </form>
  117. </B>
  118. ACCEPT
  119. }
  120. elsif ($formMode == $decline) {
  121.     &printDoc($declineFile);
  122. }
  123. elsif ($formMode == $accept) {
  124.     &Architext'printHeader($atextUrl, "On Target Registration Form"); 
  125.     print "<h2>Please fill in all fields.</h2>\n";
  126.     if ($missingField) {
  127.         print "<b>You didn't fill in the $missingField field.</b>\n";
  128.     }
  129.     if (! $FORM{at_country}) {
  130.         $FORM{at_country} = "USA";
  131.     }
  132.     if (! $FORM{at_server}) {
  133.         $at_server = "?";
  134.     }
  135.     else {
  136.         $at_server = $FORM{at_server};
  137.     }
  138.     if (! $FORM{at_os}) {
  139.         $at_os = "?";
  140.     }
  141.     else {
  142.         $at_os = $FORM{at_os};
  143.     }
  144.     print <<REGISTER;
  145. <FORM ACTION="$scriptName" METHOD=POST>
  146. <B>
  147. <br>
  148. Institution:<INPUT SIZE=60 NAME="at_institution" TYPE="text" VALUE="$FORM{at_institution}">
  149. <br>
  150. Purpose of Site:<INPUT SIZE=60 NAME="at_purpose" TYPE="text" VALUE="$FORM{at_purpose}">
  151. <br>
  152. Address:<INPUT SIZE=60 NAME="at_address" TYPE="text" VALUE="$FORM{at_address}">
  153. <br>
  154. City:<INPUT SIZE=60 NAME="at_city" TYPE="text" VALUE="$FORM{at_city}">
  155. <br>
  156. State:<INPUT SIZE=2 NAME="at_state" TYPE="text" VALUE="$FORM{at_state}">
  157. Zip Code:<INPUT SIZE=5 NAME="at_zip" TYPE="text" VALUE="$FORM{at_zip}">
  158. Country:<INPUT NAME="at_country" TYPE="text" VALUE="$FORM{at_country}">
  159. <br>
  160. URL:<INPUT SIZE=60 NAME="at_url" TYPE="text" VALUE="$FORM{at_url}">
  161. <br>
  162. Contact Name:<INPUT SIZE=60 NAME="at_name" TYPE="text" VALUE="$FORM{at_name}">
  163. <br>
  164. Email Address:<INPUT SIZE=60 NAME="at_email" TYPE="text" VALUE="$FORM{at_email}">
  165. <br>
  166. Phone:<INPUT NAME="at_phone" SIZE=21 TYPE="text" VALUE="$FORM{at_phone}">
  167. FAX:<INPUT NAME="at_fax" SIZE=21 TYPE="text" VALUE="$FORM{at_fax}">
  168. <br>
  169. OS:<SELECT NAME="at_os">
  170. <OPTION>SunOS Sparc
  171. <OPTION>Solaris Sparc
  172. <OPTION>Solaris Intel 
  173. <OPTION>HPUX PA-RISC700
  174. <OPTION>HPUX PA-RISC800
  175. <OPTION>AIX RS6000
  176. <OPTION>BSDI
  177. <OPTION>NT Intel
  178. <OPTION>NT Alpha
  179. <OPTION>IRIX MIPS
  180. <OPTION>Ultrix
  181. <OPTION>Other
  182. <OPTION selected>$at_os
  183. </SELECT>
  184. OS Version:<INPUT NAME="at_os_version" TYPE="text" VALUE="$FORM{at_os_version}">
  185. <br>
  186.  
  187. REGISTER
  188.     ;
  189.  
  190.     if ($productVersion !~ /S/) {
  191.         print <<REGISTER;
  192. Server:<SELECT NAME="at_server">
  193. <OPTION>NCSA
  194. <OPTION>CERN
  195. <OPTION>Netscape
  196. <OPTION>Navisoft
  197. <OPTION>Spry
  198. <OPTION>Other
  199. <OPTION selected>$at_server
  200. </SELECT>
  201. Server Version:<INPUT NAME="at_server_version" TYPE="text" VALUE="$FORM{at_server_version}">
  202. <br>
  203.  
  204. REGISTER
  205.     ;
  206.     } else {
  207.         print <<REGISTER;
  208. <INPUT TYPE="hidden" NAME="at_server" VALUE="Spry">
  209. <INPUT TYPE="hidden" NAME="at_server_version" VALUE="1.0">
  210.  
  211. REGISTER
  212.     ;
  213.     }
  214.  
  215.     print <<REGISTER;
  216. <INPUT TYPE="checkbox" NAME="regByEMail" CHECKED VALUE="yes">Register by electronic mail. Must be checked unless you have printed this document and will mail or FAX it to Architext Software, 2700 Garcia, Mt. View, CA 94043, FAX 415-934-3610.
  217. <br>
  218. <INPUT TYPE="submit" NAME="Register" VALUE="Register">
  219. <INPUT TYPE="hidden" NAME="mode" VALUE="Register">
  220. </FORM>
  221. <FORM ACTION="$scriptName" METHOD=POST>
  222. <INPUT TYPE="submit" NAME="Decline" VALUE="Decline">
  223. <INPUT TYPE="hidden" NAME="mode" VALUE="Decline">
  224. </FORM>
  225. <\B>
  226. REGISTER
  227. }
  228. elsif ($formMode == $register) {
  229.     foreach $field (keys(%FORM)) {
  230.         if (! ($field =~ /^at_/)) {
  231.             next;
  232.         }
  233.         if ((! ($FORM{$field} =~ /\w+/)) || ($FORM{$field} eq "?")) {
  234.             $formMode = $accept;
  235.             $missingField = substr($field, 3);
  236.             $missingField =~ s/\_/\ /g;
  237.             last;
  238.         }
  239.     } 
  240.     if ($missingField) {
  241.         $isDone = 0;
  242.         next;
  243.     }
  244.     $FORM{at_product_name} = $productName;
  245.     $FORM{at_product_version} = $productVersion;
  246.     if ($FORM{regByEMail} =~ /yes/) {
  247.         open(MAIL, "| mail register\@atext.com") || &Architext'exitError($atextUrl, "Can't pipe to mail because $!.");
  248.         print MAIL "<atextform>\n";
  249.         foreach $field (sort(keys(%FORM))) {
  250.             if (! ($field =~ /^at_(.*)/)) {
  251.                 next;
  252.             }
  253.             print MAIL "<$1>\n$FORM{$field}\n</$1>\n";
  254.         }
  255.         print MAIL "</atextform>\n";
  256.         close(MAIL);
  257.     }
  258.     &Architext'printHeader($atextUrl, "Architext On Target Thank You", "Thank You"); 
  259.     print "Your customer id is $FORM{at_email}.<p>";
  260.     print "<A HREF=\"AT-admin.cgi?register=yes&at_email=$FORM{at_email}\">Click here to create your first collection!</A>\n";
  261. }
  262. }
  263.  
  264. exit;
  265.  
  266. sub printDoc {
  267.     local ($file) = @_;
  268.     &Architext'printDoc($file, "$atextUrl");
  269. }
  270.  
  271.  
  272.  
  273.  
  274.  
  275.