#!/usr/local/bin/perl
#↑perlの存在するパスに変更
#
require "cgi-lib.pl";
require "network.pl";
require "www.pl";
{
$ScN = $ENV{'SCRIPT_NAME'};
$SvN = $ENV{'SERVER_NAME'};
$ThisCGI = "http://$SvN$ScN";
&ReadParse(*input);
select(STDOUT);
$| = 1;
print &PrintHeader;
$url = $input{'URL'};
($status, $memo) = &www'open_http_url(*IN, $url);
if ($status ne 'ok')
{
print &HtmlTop("エラー");
print "
";
print "$memo\nということで、アクセスできません。\n";
print "
";
print &HtmlBot;
}
else
{
$jsst = $input{'JSST'};
$blnk = $input{'BLNK'};
$flbd = $input{'FLBD'};
print "\n";
$url =~ s|(.*/)[^/]*$|$1|;
$server = $url;
$server =~ s|(http://[^ /]*/).*|$1|;
$jsin = 0;
$flin = 0;
$X = "0";
while()
{
if (/href/i)
{
s|(href *= *"? *)(http[^ >]*\.s?html?)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$2|gi;
s|(href *= *"? *)(http[^ >]*/ *"? *>)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$2|gi;
s|(href *= *"? *)/([^ :>]*\.s?html?)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$server$2|gi;
s|(href *= *"? *)([^ :>]*\.s?html?)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$url$2|gi;
s|(href *= *"? *)/([^ :>]*/ *"? *>)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$server$2|gi;
s|(href *= *"? *)([^ :>]*/ *"? *>)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$url$2|gi;
}
if (/frame/i)
{
s|(frame *[^>]*src *= *"? *)([^ :>]*\.s?html?)|$1$ThisCGI?JSST=$jsst&BLNK=$blnk&FLBD=$flbd&URL=$url$2|gi;
}
if ($jsst)
{
if ($jsin == 0)
{
$jsin = 1 if (/< *script.*javascript.*>/i);
}
if ($jsin)
{
s/[^;]*window\.status[\t ]*=[^;]*;/;/gi;
s/[\t ]*status[\t ]*=[^;]*;/;/gi;
$jsin = 0 if (m|< */script *>|i);
}
}
if ($blnk)
{
s|<[\t ]*/?blink[\t ]*>||gi;
}
if ($flbd)
{
if ($flin < 1)
{
if (/<[\t ]*frameset[^>]*>/i)
{
$flin += 1;
if (s/(<[\t ]*frameset[^>]*border[\t ]*=[\t ]*"?)[0-9]*("?[^>]*>)/$1$X$2/gi == 0)
{
s/(<[\t ]*frameset)([^>]*>)/$1 border="0"$2/gi;
}
}
}
if ($flin)
{
s/(< *frame *[^>]*border *= *"?)[0-9]*("?[^>]*>)/$1$X$2/gi;
$flin -= 1 if (m|< */frameset *>|i);
}
}
print;
}
}
}