Hi to all
I have a script to get geo IP which is successfully running on Linux server.but when i run this script on windows server it gives some header error
[CODE=perl]#!C:/Perl/bin/perl.exe
use CGI qw/:standard/;
use LWP::UserAgent;
use HTTP::Request qw(GET POST);
use HTTP::Headers;
use CGI::Cookie;
use CGI::Session;
use CGI::Carp qw(fatalsToBrow ser);
my $q=new CGI;
my $c=new CGI::Cookie;
my $cIP = $ENV{'REMOTE_AD DR'} ;
# replace this value with license key
my $license_key ="key";
my $ua = LWP::UserAgent->new(timeout =>10);
my $h = HTTP::Headers->new;
$h->content_type(' application/x-www-form-urlencoded');
my $request = HTTP::Request->new('POST','ht tp://maxmind.com:801 0/a',
$h,"l=$license_ key&i=$cIP");
my $res = $ua->request($reque st);
my $content = $res->content;
#print "Content-type: text/html\n\n" ;
############ again send request #######
if($content eq "")
{
sleep(1);
$request = HTTP::Request->new('POST','ht tp://maxmind.com:801 0/a',
$h,"l=$license_ key&i=$cIP");
$res = $ua->request($reque st);
$content = $res->content;
}
if($content eq "")
{
sleep(1);
$request = HTTP::Request->new('POST','ht tp://maxmind.com:801 0/a',
$h,"l=$license_ key&i=$cIP");
$res = $ua->request($reque st);
$content = $res->content;
}
if($content eq "")
{
$content="Serve r-Error";
}
my $session = "" ;
my $sid = "" ;
$sid = _Checkcookie();
if($sid eq "")
{
$session = new CGI::Session("d river:File", $q, {Directory=>'/tmp'});
my $server = $ENV{'HTTP_HOST '};
my $path = "/";
$sid = $session->id();
print "Set-Cookie: CGISESSID\=$sid ; path\=$path;dom ain\=$server\n" ;
}
else
{
$session = new CGI::Session(un def, $sid, {Directory=>'/tmp'});
}
my $cFlag = 0 ;
my $referer=$q->param('referer ');
my $albumid=$q->param('albumid ');
my $action=$q->param('action' );
my $shopping_info= $session->param('shoppin g_info');
my %shopping_info= %{$shopping_inf o};
$shopping_info{ geo}=$content;
$session->param("shoppin g_info",\%shopp ing_info);
$session->expire('+12h') ;
if($action eq "direct"){
#print "location: /cgi-bin/elearning/query/el_alb_details. pl?albumid=$alb umid&action=geo \n\n" ;
print "Status: 302 Moved", "\r\n","Locatio n: http://www.mysitename. com/cgi-bin/elearning/query/el_alb_details. pl?albumid=$alb umid&action=geo ", "\r\n\r\n";
exit;
}
print 'Status: 302 Moved', "\r\n",'Locatio n:/cgi-bin/elearning/query/el_show_cat.pl' , "\r\n\r\n";
exit;
sub _Checkcookie{
my %cookies=fetch CGI::Cookie;
my $name=$cookies{ CGISESSID};
my @temp=split(/CGISESSID\=/,$name);
my @temp1=split(/;/,$temp[1]);
return $temp1[0];
}[/CODE]
My error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
Please help on this
Thanks in advance
Rajiv
I have a script to get geo IP which is successfully running on Linux server.but when i run this script on windows server it gives some header error
[CODE=perl]#!C:/Perl/bin/perl.exe
use CGI qw/:standard/;
use LWP::UserAgent;
use HTTP::Request qw(GET POST);
use HTTP::Headers;
use CGI::Cookie;
use CGI::Session;
use CGI::Carp qw(fatalsToBrow ser);
my $q=new CGI;
my $c=new CGI::Cookie;
my $cIP = $ENV{'REMOTE_AD DR'} ;
# replace this value with license key
my $license_key ="key";
my $ua = LWP::UserAgent->new(timeout =>10);
my $h = HTTP::Headers->new;
$h->content_type(' application/x-www-form-urlencoded');
my $request = HTTP::Request->new('POST','ht tp://maxmind.com:801 0/a',
$h,"l=$license_ key&i=$cIP");
my $res = $ua->request($reque st);
my $content = $res->content;
#print "Content-type: text/html\n\n" ;
############ again send request #######
if($content eq "")
{
sleep(1);
$request = HTTP::Request->new('POST','ht tp://maxmind.com:801 0/a',
$h,"l=$license_ key&i=$cIP");
$res = $ua->request($reque st);
$content = $res->content;
}
if($content eq "")
{
sleep(1);
$request = HTTP::Request->new('POST','ht tp://maxmind.com:801 0/a',
$h,"l=$license_ key&i=$cIP");
$res = $ua->request($reque st);
$content = $res->content;
}
if($content eq "")
{
$content="Serve r-Error";
}
my $session = "" ;
my $sid = "" ;
$sid = _Checkcookie();
if($sid eq "")
{
$session = new CGI::Session("d river:File", $q, {Directory=>'/tmp'});
my $server = $ENV{'HTTP_HOST '};
my $path = "/";
$sid = $session->id();
print "Set-Cookie: CGISESSID\=$sid ; path\=$path;dom ain\=$server\n" ;
}
else
{
$session = new CGI::Session(un def, $sid, {Directory=>'/tmp'});
}
my $cFlag = 0 ;
my $referer=$q->param('referer ');
my $albumid=$q->param('albumid ');
my $action=$q->param('action' );
my $shopping_info= $session->param('shoppin g_info');
my %shopping_info= %{$shopping_inf o};
$shopping_info{ geo}=$content;
$session->param("shoppin g_info",\%shopp ing_info);
$session->expire('+12h') ;
if($action eq "direct"){
#print "location: /cgi-bin/elearning/query/el_alb_details. pl?albumid=$alb umid&action=geo \n\n" ;
print "Status: 302 Moved", "\r\n","Locatio n: http://www.mysitename. com/cgi-bin/elearning/query/el_alb_details. pl?albumid=$alb umid&action=geo ", "\r\n\r\n";
exit;
}
print 'Status: 302 Moved', "\r\n",'Locatio n:/cgi-bin/elearning/query/el_show_cat.pl' , "\r\n\r\n";
exit;
sub _Checkcookie{
my %cookies=fetch CGI::Cookie;
my $name=$cookies{ CGISESSID};
my @temp=split(/CGISESSID\=/,$name);
my @temp1=split(/;/,$temp[1]);
return $temp1[0];
}[/CODE]
My error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
Please help on this
Thanks in advance
Rajiv
Comment