Using Socket to call a Perl CGI
use IO::Socket;
$name = 'Tom';
$email = 'a@a.com';
$string = '?' . "name=" . $name . "&" . "email=" . $email;
$string =~ tr/ /+/;
$socket = IO::Socket::INET->new
(
Proto => "tcp",
PeerAddr => "yourserver.com",
PeerPort => 80,
);
$socket->autoflush(1);
print $socket "GET /reg.cgi$string ', 'HTTP/1.0\015\012\015\012";
while ($line = <$socket>) {
$results .= $line
}
close $socket;
print $results;
if ($results =~ /Thanks for registering./mg) {
print "Success."
} else {
print "Sorry, there was an error."
}
#File: reg.cgi
#!/usr/local/bin/perl
use CGI;
$co = new CGI;
print $co->header,
$co->start_html(
-title=>'CGI Example',
-author=>'yourName',
-meta=>{'keywords'=>'CGI Perl'},
-BGCOLOR=>'white',
-LINK=>'red'
);
if ($co->param()) {
$! = 0;
open FILEHANDLE, ">>reg.log";
print FILEHANDLE "Date: " . `date`;
print FILEHANDLE "Name: " . $co->param('name') . "\n";
print FILEHANDLE "email: " . $co->param('email') . "\n";
close FILEHANDLE;
unless ($!) {
print "Success.";
} else {
print "Sorry, there was an error: $!";
}
}
print $co->end_html;
Related examples in the same category