Have a look at perldoc CGI ... better still, read on on this site, there is a lot about it to be found. For a fast start, proceed to the CGI section in Tutorials
Cheerio, Sören
| [reply] |
Sorry, if I misunderstood the question. If you want to execute a perl script as CGI, you have to mention Happy-the-monks post.
If you want to start a existing perl-script on your server, and you just want a simple frontend, you can do it using a
CGI like this:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw ( fatalsToBrowser );
my $q = new CGI;
my $host = $q->param('host') || '';
if ($host =~ m/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) {
my $result = qx ( ping $host );
print $q->header(),
$q->start_html('ping IP'),
$q->p($result),
$q->end_html;
} else {
die "No IP, no ping!\n";
}
exit();
Remember, to use -t for security reasons.
Some explanation:
it is a simple CGI, you can put it in your /usr/lib/cgi-bin or whereever the cgi-bin directory is on your system.
always validate users input using some regexes.
the above script dies unless the $host looks like an IP.
I use qx to call ping. pings output is assigned to $result. You can call your script this way, if you have the right to do so, else you should try using sudo on a Unix-like system.
I've to thank Happy-the-monk for some advice.
neniro | [reply] [d/l] |
First, take the html, and change all > to <, & to & etc.
Then, make sure the code in the hmtl contains no html tags embedded, like <FONT> for syntax coloring etc.
Make sure that the perl code ends with __END__ or __DATA__.
And then, read about the -x switch in perlrun.
| [reply] [d/l] [select] |