]> i-scream Git - www.i-scream.org.git/blob - cgi-bin/download.cgi
Merge in changes from branch created for new server. The old server is now
[www.i-scream.org.git] / cgi-bin / download.cgi
1 #!/usr/bin/perl
2
3 #--------------------------------------------------------------
4 # download.cgi
5
6 # A Perl CGI script that requests some details from the user
7 # before they download a build from the i-scream web site.
8 # To assist the paranoid, all fields are optional.
9 #
10 # Copyright Paul Mutton, 2001.
11 #--------------------------------------------------------------
12
13 use strict;
14 use CGI;
15
16 $| = 1;
17
18
19 #--------------------------------------------------------------
20 # Essential Settings
21 #--------------------------------------------------------------
22 my ($build_dir) = "/downloads";
23 my ($log_file) = "download_log";
24 my ($left) = "../htdocs/left.inc" ;
25 my ($title) = "../htdocs/title.inc";
26 my ($bottom) = "../htdocs/bottom.inc";
27 #--------------------------------------------------------------
28
29
30 my ($query) = new CGI;
31
32 my ($file_name) = ($query->param('file_name') =~ /^\s*(.*)\s*$/);
33 my ($your_name) = ($query->param('your_name') =~ /^\s*(.*)\s*$/);
34 my ($email_address) = ($query->param('email_address') =~ /^\s*(.*)\s*$/);
35 my ($country) = ($query->param('country') =~ /^\s*(.*)\s*$/);
36 my ($submit) = ($query->param('submit') =~ /^\s*(.*)\s*$/);
37 my ($date) = scalar localtime time;
38
39 $your_name =~ s/\|//g;
40 $email_address =~ s/\|//g;
41 $country =~ s/\|//g;
42
43 if (!defined($file_name) || $file_name eq "") {
44     print "Content-type: text/html\n\n";
45     print "You must specify a filename for use with the i-scream downloader.";
46     exit;
47 }
48
49 if (defined($submit) && $submit eq "Download") {
50     open(LOGFILE, ">>$log_file");
51     print LOGFILE "$date|$ENV{'REMOTE_ADDR'}|$file_name|$your_name|$email_address|$country\n";
52     close(LOGFILE);
53     print $query->redirect("$build_dir/$file_name");
54 }
55 else {
56     print "Content-type: text/html\n\n";
57
58     print <<"END";
59         <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
60
61         <!--
62             download.cgi
63             Created by pjm2 31/03/2001
64             Last modified 31/03/2001
65         -->
66
67         <html>
68
69         <head>
70          <title>i-scream downloads</title>
71          <meta name="description" content="The i-scream Project is a central monitoring system for Unix, Linux and NT servers.">
72          <meta name="keywords" content="i-scream, project, central monitoring system, unix, linux, nt, server, alert">
73          <meta name="generator" content="notepad on acid, aye.">
74         </head>
75
76         <body bgcolor="#ffffff" link="#0000ff" alink="#3333cc" vlink="#3333cc" text="#000066">
77
78         <table border="0" cellpadding="2" cellspacing="2">
79          <tr>
80           <td valign="top">
81 END
82
83     &print_html($left);
84
85     print <<"END";
86         </td>
87         <td valign="top">
88 END
89
90     &print_html($title);
91
92     print <<EOT;
93         <table align="center" width="500">
94          <tr>
95           <td>
96            <font face="arial,sans-serif">
97            <center><h3>i-scream builds</h3></center>
98            <font size="2">
99             If you wish your details to be kept so we can contact you in the
100             future about i-scream, please enter them below. At the moment we
101             are not using this information, but we may collate a list of
102             details for when we make a new major release. All details are
103             optional - do not feel obliged to enter anything!
104            </font>
105            </font>
106           </td>
107          </tr>
108         </table>
109         
110         <p>&nbsp;</p>
111         
112         <form action="/cgi-bin/download.cgi" method="POST">
113          <table border="0" align="center">
114           <tr>
115            <td><font face="arial,sans-serif">Filename:</font></td>
116            <td><font face="arial,sans-serif"><b>$file_name</b></font><input type="hidden" name="file_name" value="$file_name"></td>
117           </tr>
118           <tr>
119            <td><font face="arial,sans-serif">Your name:</font></td>
120            <td><input type="text" name="your_name" value=""></td>
121           </tr>
122           <tr>
123            <td><font face="arial,sans-serif">Email address:</font></td>
124            <td><input type="text" name="email_address" value=""></td>
125           </tr>
126           <tr>
127            <td><font face="arial,sans-serif">Country:</font></td>
128            <td><input type="text" name="country" value=""></td>
129           </tr>
130           <tr>
131            <td>&nbsp;</td>
132            <td><input type="submit" name="submit" value="Download"></td>
133           </tr>
134          </table>
135         </form>
136         
137         </body>
138         </html>
139 EOT
140
141     &print_html($bottom);
142
143     print <<"END";
144
145           </td>
146          </tr>
147         </table>
148 END
149
150 }
151
152 exit;
153
154
155 # Print a file without escaping HTML: -
156 sub print_html ($) {
157     my ($filename) = @_;
158     print `cat $filename 2>&1`;
159 }