111 lines
3.2 KiB
Perl
Executable File
111 lines
3.2 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
|
|
use CGI;
|
|
|
|
$query = new CGI;
|
|
$CGI::POST_MAX = 102400; # set maximum size of post
|
|
|
|
print $query->header;
|
|
print $query->start_html("Example CGI.pm Form");
|
|
print "<H1> Example CGI.pm Form</H1>\n";
|
|
&print_prompt($query);
|
|
&do_work($query);
|
|
&print_tail;
|
|
print $query->end_html;
|
|
|
|
sub print_prompt {
|
|
my($query) = @_;
|
|
|
|
print $query->startform;
|
|
print "<EM>What's your name?</EM><BR>";
|
|
print $query->textfield('name');
|
|
print $query->checkbox('Not my real name');
|
|
|
|
print $query->filefield('uploaded_file','starting value',50,80);
|
|
# ACCEPT="filetype/*"
|
|
print "<P><EM>Where can you find English Sparrows?</EM><BR>";
|
|
print $query->checkbox_group(
|
|
-name=>'Sparrow locations',
|
|
-values=>[England,France,Spain,Asia,Hoboken],
|
|
-linebreak=>'yes',
|
|
-defaults=>[England,Asia]);
|
|
|
|
print "<P><EM>How far can they fly?</EM><BR>",
|
|
$query->radio_group(
|
|
-name=>'how far',
|
|
-values=>['10 ft','1 mile','10 miles','real far'],
|
|
-default=>'1 mile');
|
|
|
|
print "<P><EM>What's your favorite color?</EM> ";
|
|
print $query->popup_menu(-name=>'Color',
|
|
-values=>['black','brown','red','yellow'],
|
|
-default=>'red');
|
|
|
|
print $query->hidden('Reference','Monty Python and the Holy Grail');
|
|
|
|
print "<P><EM>What have you got there?</EM><BR>";
|
|
print $query->scrolling_list(
|
|
-name=>'possessions',
|
|
-values=>['A Coconut','A Grail','An Icon',
|
|
'A Sword','A Ticket'],
|
|
-size=>5,
|
|
-multiple=>'true');
|
|
|
|
print "<P><EM>Any parting comments?</EM><BR>";
|
|
print $query->textarea(-name=>'Comments',
|
|
-rows=>10,
|
|
-columns=>50);
|
|
|
|
print "<P>",$query->reset;
|
|
print $query->submit('Action','Shout');
|
|
print $query->submit('Action','Scream');
|
|
print $query->endform;
|
|
print "<HR>\n";
|
|
}
|
|
|
|
sub do_work {
|
|
my($query) = @_;
|
|
my(@values,$key);
|
|
|
|
print "<H2>Here are the current settings in this form</H2>";
|
|
|
|
foreach $key ($query->param) {
|
|
print "<STRONG>$key</STRONG> -> ";
|
|
@values = $query->param($key);
|
|
print join(", ",@values),"<BR>\n";
|
|
}
|
|
}
|
|
|
|
sub print_tail {
|
|
$filename = $query->param('uploaded_file');
|
|
|
|
print "<BR><BR>$filename<BR>\n\n";
|
|
|
|
# Read a text file and print it out
|
|
# while (<$filename>) {
|
|
# print;
|
|
# }
|
|
|
|
$type = $query->uploadInfo($filename)->{'Content-Type'};
|
|
print "<BR><BR>$type<BR>\n\n";
|
|
# unless ($type eq 'text/html') {
|
|
# die "HTML FILES ONLY!";
|
|
# }
|
|
|
|
print "<BR><BR>fini<BR>\n\n";
|
|
|
|
# Copy a binary file to somewhere safe
|
|
open (OUTFILE,">/tmp.vbe");
|
|
while ($bytesread=read($filename,$buffer,1024)) {
|
|
print OUTFILE $buffer;
|
|
}
|
|
|
|
print "<BR><BR>fini<BR>\n\n";
|
|
print <<END;
|
|
|
|
<HR>
|
|
<ADDRESS>Lincoln D. Stein</ADDRESS><BR>
|
|
<A HREF="/">Home Page</A>
|
|
END
|
|
}
|