WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:CGIに登録したURLをhtmlに変数(ID)でリンクしたい。

0:[投稿] ひろひろ [2003/03/08 12:58 ][環境:IE6 UNIX]

はじめまして、こんな質問よろしいでしょうか?
どうしても欲しいCGIがありまして、もし簡単に作成可能でしたら
ご教授願えればと思い、探しに探してこちらにたどり着きました。
なぜ自作なのかと申しますと、欲しいスクリプトを2ヶ月間
探しまくったのですが、それらしき物を見付ける事が出来ません。
どうしても作りたかったので ActiveCGI(CGIメーカー)
を購入しましたが、CGIの作成支援ツールであり 知識が無ければ
作成出来ませんでした(汗
作りたい物は簡単に出来るのか、難しいのか判断も付きません。
作りたいCGIですが、例えば

$ID1='http://www.google.co.jp/'
$ID2='http://www.excite.co.jp/'
$ID3='http://www.yahoo.co.jp/'


$ID6='http://www.microsoft.com/'

のように CGIにURLを登録して(出来れば無制限に)、htmlからは

<A HREF="hoge.cgi?url=ID1">グーグル</A>

のように 貼り付け、 元々のURLを隠したいのです(クイズのように)
さらに CGIでホストをチェックしCGIのURLを直打ちしてもCGI内容を
見れないようにしたいのです。(キャッシュからも)

理屈では簡単に構想が練れるのですが、書式が全くわかりません。
CGIにはURLが登録出来ればいいので、日本語は不要です。

欲を言えば、

http://www.hoge.com/cgi/hoge.cgi?url=ID1

とURLを直打ちしても

http://www.google.co.jp/

にジャンプ出来ないようになれば完璧なのですが、
これだと 矛盾が生じそうです・・・いや矛盾だなこれは・・・・・

とほほさんやKENTさんのCGI講座をよく見たのですが、
私には 英語より難しくて理解出来なかったです (^^;;;
検索が足りないのでしょうか?

翻訳しながら 韓国語サイトでそれらしき物を発見したのですが、
CGIサンプルページではありませんでした・・・・

ttp://www.crezio.com/cgi/asx.cgi?title=007&url=live4$kbs$classic65_m

動画のURLをCGIから読み込んでいる様子です。

http://www.parkcity.ne.jp/~chaichan/src/javasc32.htm

ここが似ているかと思い読んでみましたが解読不能でした・・・・・
(/_-。)
んんん欲しいですぅ。
宜しくお願いいたします。。。


1:[回答] しなのむし [2003/03/08 15:04 ]

>欲を言えば、
>http://www.hoge.com/cgi/hoge.cgi?url=ID1
>とURLを直打ちしても
>http://www.google.co.jp/
>にジャンプ出来ないようになれば完璧なのですが

という部分以外はかなり初歩的な知識でも作れるはずなので
これが自力で出来ないとなると結局全部書いてくれっちゅう話になっちゃいますよね。(^^;

>にジャンプ出来ないようになれば完璧なのですが
もreferer情報を使うとかcookieで制御するとかで実装可能ではあると思います。


2:[回答] ひろひろ [2003/03/08 16:48 ]

あらら

やっぱり素人には無理ですぅ。
車の部品があっても組み立てられましぇん。
またまた 検索の旅にでます。
あ〜 ActiveCGIなんか買わないで 最初から業者に作ってもらえばよかった〜〜〜〜
o(>_< *)(* >_<)o ジタバタ

どうもすいません m(_ _)m


3:[回答] しなのむし [2003/03/08 19:53 ]

http://www.kent-web.com/data/index.html
ここのCOSMO NAVIGATORなんか近いんじゃないですか?


4:[回答] ひろひろ [2003/03/08 20:05 ]

わざわざありがとうございます m(_ _)m
しなのむし さんの他スレも読ませて頂きましたが、
?チンプン?ヽ(゜◇。)ノ?カンプン?
でした・・・・・・

#!/usr/bin/perl

$permit_host="hirohiro.oracchi.com";

$file{'ID_1'}="hoge.js";

&GetForm;
&checkHost;
&returnJS;

sub checkHost
{
    $ref=$ENV{'HTTP_REFERER'};
    ($a,$ref)=split(/\/\//,$ref);
    ($ref)=split(/\//,$ref);
    if ($in{'nc'} eq "get") { &returnJS; }
    if (($ref ne $permit_host) || (!$in{'nc'})) { &error; }
}

sub returnJS
{
    require './jcode.pl';
    
    open(IN,"$file{$in{'id'}}");
    @js_source=<IN>;
    close(IN);
    $js_source=join("",@js_source);
    
    &jcode'convert(*js_source,'sjis');
    
    print "Content-type: application/x-javascript\n\n";
    print $js_source;
    exit;
}

sub error
{
    print "Content-type: application/x-javascript\n\n";
    print "//許可されていません";
    exit;
}
sub GetForm
{

    if ($ENV{'REQUEST_METHOD'} eq "POST")
    {
        read(STDIN, $buffer, $ENV{CONTENT_LENGTH});
    }
    else
    {
        $buffer=$ENV{'QUERY_STRING'};
    }
    
    @dat=split(/&/,$buffer);
    
    foreach (@dat)
    {
        ($name , $value)=split(/=/,$_);
        $in{$name}=$value;
    }
}

これは 外部JSをCGIで書き出すスクリプトみたいなのですけど、
これをうまく改造すれば出来るような気がしてきました。
JSを読み込んで CGIで書き出す部分の削除さえ出来ればぁぁあ
ε〜( ̄、 ̄;)ゞフー
知り合いに頼んでみたら、「Plは最初から作るのだるいからなぁ〜お金もらってもちょっと・・・・」とあっさり・・・
(_ _。)・・・シュン


5:[回答] しなのむし [2003/03/08 22:44 ]

$permit_host="http://hirohiro.oracchi.com";

if($ENV{'HTTP_REFERER'} !~ /^\Q$permit_host\E/)
{
print "Content-type: text/html\n\n";
print 'Error';
exit;
}


6:[完了] ひろひろ [2003/03/09 10:58 ]

(ToT)うるるん

これは、リファラーで弾く部分ですね〜〜〜〜!
しかも書き出しが html になってるぅ。

しなのむし さんありがとうございます。
これで出来ると思います。
後とはこのHPのリファレンス部分をよく読んで、
チャレンジしてみます。

わがまま素人書き込みにお付き合い頂きましてとっても感謝しています。

ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World