#!/usr/bin/perl #namazu.cgiのURL $url = "http://foo.bar.ne.jp/namazu/namazu.cgi"; #-----------設定終了------------------------------------------- require "./jcode.pl"; &decode; $buffer2 = $ENV{'HTTP_REFERER'} || &error("検索キーワードがありません"); $buffer2 =~ s/$url//; $buffer2 =~ s/\?//; @pairs2 = split(/&/,$buffer2); foreach (@pairs2) { ($name2, $value2) = split(/=/, $_); $FORM2{$name2} = $value2; } $search = $FORM2{'query'}; $search2 = $search; $search2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $code_name = &jcode'getcode(*search2); if ($engine eq 'google'){ if($code_name eq 'sjis'){ print "Location: http://www.google.co.jp/search?lr=lang_ja&q=$search&ie=Shift_JIS&\n\n"; }else{ &jcode'convert(*search2,'sjis'); $search2 =~ s/(\W)/'%'.unpack("H2", $1)/ego; print "Location: http://www.google.co.jp/search?lr=lang_ja&q=$search2&ie=Shift_JIS&\n\n"; } }elsif($engine eq 'yahoo'){ print "Location: http://search.yahoo.co.jp/bin/search?p=$search\n\n"; }elsif($engine eq 'goo'){ print "Location: http://search.goo.ne.jp/web.jsp?from=query&MT=$search&web.x=0&web.y=0&DC=10\n\n"; }elsif($engine eq 'excite'){ if($code_name eq 'sjis'){ print "Location: http://www.excite.co.jp/search.gw?search=$search\n\n"; }else{ &jcode'convert(*search2,'sjis'); $search2 =~ s/(\W)/'%'.unpack("H2", $1)/ego; print "Location: http://www.excite.co.jp/search.gw?search=$search2\n\n";} }elsif($engine eq 'fresh'){ print "Location: http://search.fresheye.com/?kw=$search\n\n"; }elsif($engine eq 'infoseek'){ print "Location: http://www.infoseek.co.jp/Titles?qt=$search\n\n"; } sub decode { if ($ENV{'REQUEST_METHOD'} eq "POST"){ if ($ENV{'CONTENT_LENGTH'} > 200) { &error ("フォーム入力文字列のサイズが大きすぎます。"); } read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{QUERY_STRING}; } @pairs = split(/&/,$buffer); foreach (@pairs) { ($name, $value) = split(/=/, $_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s//>/g; #htmlタグを禁止する $value =~ s/\r//g; #改行コードの\rを消去 $FORM{$name} = $value; } $engine = $FORM{'engine'}; } sub error { print "Content-type: text/html\n\n"; print <<"EOF"; エラー

$_[0]


戻る
EOF exit; }