あなたの習慣について教えてください!!

フレーム内ページ(main.shtml)にSSIを使ってリンク元を取得したいのですが、どなたか良い方法はないでしょうか。フレームページはindex.htmlです。

SSIでなければ"parent.document.referrer"を使ってCGIで取得するのは設置したことはありますが、SSIだとリンク元が親フレーム情報しか得られません。なんとかSSIでやりたいのですが…。リンク元以外の取得はできますがリンク元が取れません。SSIの現在の記述は下の通りです。
<!--#exec cgi="./acc.cgi"-->
どうぞ、暑いのにすいません、教えてください。

A 回答 (4件)

むりちゃうかなぁ・・・。

SSIへは動的な引数の渡しようがない気がする。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
無茶苦茶返事が遅くなってしまいました。ごめんなさい。
無理だという結論が完全にでれば良いのですけど…。
やっぱり、無理なんですよね。

お礼日時:2002/08/06 18:10

SSIは、HTMLファイル(*.shtmlなど)を送り出す際にサーバーサイドで


ファイルの出力に手を加えるものです。一方 Java Script はローカルに
ダウンロードされたファイルから読み取って実行されます(と思っています)

ですので明らかに次元が違って、SSI に引数をわたそうと思う場合は、
SSIが理解できる手法でなければなりません。CGIが目的なので cgi などが
取得できる一般的な情報と言うことになります。そしてそのタイミングは
HTMLファイルの要求が飛んでいったときです。今回の最大の問題点は
Java Script の内容をどうやってSSIを通してCGI にわたすか、そのルートがに
あるのです。parent.document.referrer の情報がSSIに送れないと考える理由は以上です。

*具体的な方法を論じるよう求められていますので・・・
案.1 index.htmlでjava scriptで cookie に reffer を食わせておく。
案.2 .htaccess で インデックスを index.cgi にして、index.cgi で
   reffer を取得し保持する、あるいはクッキーに食わせる。
   (フレームも出力する)。
案.3 その方法はあきらめる。


お勧めは 諦めることです。(マテ。
どうしてもというなら2をお勧めします。

この回答への補足

この質問箱の使い方がよく分からなくて戸惑っています。すいません。
現在のSSIでのacc.cgiでのリンク元は
$URL = $ENV{'HTTP_REFERER'};
で取得しています。
main.shtmlには通常のCGIでアクセス解析もやっていますけど、落ちがあるみたいなので、それをSSIで補いたいという補足でした。
欲が深くてごめんなさい。

補足日時:2002/08/06 18:53
    • good
    • 0
この回答へのお礼

結論からだと諦めています。(;_;)ウルウル
.htaccessでインデックスをindex.cgiとか、別のフレーム処理するのだったら私もできるのですが、SSIで訪問者の実数を知りたいというのが本来の目的なんです。
とりあえず、ご回答を有難うございました。

お礼日時:2002/08/06 18:05

> SSIでなければ"parent.document.referrer"を使ってCGIで取得するのは設置したことはありますが、


> SSIだとリンク元が親フレーム情報しか得られません

CGI で出来たなら、SSI でも出来ると思うのですが。(注意:この場合は。
parent.document.referrer を使っているということは
JavaScript ですよね?

parent.document.referrer の情報を
SSIに送ったらどうですか?

どうやって処理しているかによりますので
これはSSIの問題というよりも、acc.cgiの問題だと思いますよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございましたた。
けど、わかりません(;_;)
またよろしくお願いします。

お礼日時:2002/08/06 18:24

素直に、main.shtmlをmain.cgiに作り換えちゃった方が、手っ取り早いのでは。


acc.cgiでやっている事にもよりますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
作り変えたくないので…悲しいというか、私が欲が深いだけかもしれません。

お礼日時:2002/08/06 18:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!