少し解らずらい内容なのですが・・すみません、教えてください。
実はアクセスログを設置し、運営しようかと思っております。
そのプログラムがフレームに対応していないとの回答(開発者)をいただき、一番初めに表示されるページにタグのリロードをつけ、そしてフレームページにジャンプさせる・・・、と考えておりました。が、エンドユーザー側がそのページにブックマークをつけると、次回は次のページからスタートしてしまい、正確なログが取れないという問題に直面しました。
図)
|-index.htm(ログ集計・・・リロードにてnext.htmへジャンプ)
|
|-next.htm(エンド側にてブックマークにすると、次回はnxet.htmからとなる)
で何かよい方法はないかと思い、相談しました。
例)
|-index.htm
| |-???.cgi
|
|-index.htm
とできれば、ブックマークをつけても、常にindex.htmとできるのですが・・・?
これは、cgiですか?javaですか?
あと、ソースを教えてください。
No.5ベストアンサー
- 回答日時:
cgiかJavaか?
これは問題ではないです。javaであってもかまわんです。ただ、javaをCGIとして使用している人は少ないとは思いますが。
リロード形式を今一歩補えばできないことはないですが・・・
Perlなどで、
$url[0] = 'http://*****/index.html';
$url[1] = '';
# ほかにあるなら…
$ENV{'HTTP_REFERER'}=~ s/%(..)/pack("C",hex($1))/eg;
if($ENV{'HTTP_REFERER'}){for(@url){if($_&&$ENV{'HTTP_REFERER'}=~ /^\Q$_\E/){$flag=1;last;}}}
if($flag==1){
#直前のページが指定された(トップの)URLだったので、どうやら、順調にはいってきたようだがなや。
すでにindexでアクセス解析してるはずなので、終了しようかいなこりゃ。
exit();
}
#どうやら、サイト外からご訪問なさった模様なので、ログ解析でもいっちょとったるかいなこりゃ。
#以下つらつらとログ解析プログラミングでもどっかからぺちってきてはっ付けとくがやさ。
あ、つらつらつらら。
お・わ・り。
これをindex.htmと、next.htmの両方から呼び出してしまえば良いんではないですかいな?
index→next.htmに来たときには、indexの時だけログ解析が行われる。next.htmでは直前がindexなのでexitし、ログ解析しません。
いきなりnext.htmに来たときには、直前がindexでないので、ログ解析が行われる。
ありがとうございました。
参考にさせていただいて、試しているのですが・・・。
はずかしながら、ど素人にはすごく難しいです。
もう少し教えていただけますか?
No.7
- 回答日時:
友人がちょうどログ解析をつけたというので,そのWebページの解析やっていたら,JavaScriptになかなか使えるプロパティがあることを発見。
######################################
<script language="JavaScript">
<!--
document.write('<img width=0 height=0 src="ログ解析CGI?refer='+document.referrer+'">);
-->
</SCRIPT>
<noscript>
<img width=0 height=0 src="ログ解析CGI?refer=NoJavaScript">
</noscript>
#######################################
JavaScriptを利用してForm type=GETと同じ形式でCGIにreferrerを渡す。
JavaScriptが利用できないときはreferrerあきらめる。
こんな形式で利用できるようにCGI改良すれば,CGI処理が遅くなっても,閲覧者はストレスなくWebの閲覧が可能。
No.6
- 回答日時:
CGIとは,Webサーバプログラムと他のプログラムが協調動作するための仕組み。
JavaやPerlは,他のプログラムとして何を使っているかという事。
Javaに関していえば…
JavaはJavaAppletやCGIとして,Webに利用可能。
ログ回収CGIがnext.htmを吐くという方法もありますね。Perlならこんな感じ
##########################
binmode(STDOUT);
print "Content-type: text/html\r\n";
print "\r\n";
open(MAINHTML,"next.htm");
read(MAINHTML,$myMain,102400); #<-でかい数字で適当に読んでます。
print $myMain;
close(MAINHTML);
ご丁寧にありがとうございます。
色々と調べた結果、フレームに対応したアクセスログができる方法を探した方が良さそうな感じがします。
アクセス元のリモートホストやブラウザ、OS情報、解像度、検索キーワードなどが解析できるも。
ありがとうございました。
No.4
- 回答日時:
No.3
- 回答日時:
>上記の記述ですと、直前のURLが、index.htmとなってしまいます。
解析cgiのあるページを呼んでいるのはindex.htmですよね。
REFFERは直前に見ていたページが表示されるわけですから。:-)
フレームもしかり…なのかな?
フレームで問題がでるのなら index.htmはフレームもなにもきらない
構成にすればいいと思います。よくありますよね、入口ページ。
そこがブックマークされないと心配しているなら、ブックマークして
もらえるような工夫をすればいいだけのことです。更新情報を
載せるとか、絵描きさんなら新作は必ずそこに掲載してからにするとか。
一言日記を載せるとか。
技術技術だけじゃなくてちょっとした工夫だと思いますよ。
それでも私みたいに直接日記、掲示板にブックマークする人はいます(笑)。一番いいのはログを貰えるプロバイダを使うことです。
この回答への補足
アドバイス、ありがとうございました。
確かに・・・・と思うのですが、
困った事に、構造は変えなれないのです。
いやぁ・・・悩んでマス!
No.2
- 回答日時:
ユーザーズグループのASPメーリングとかD-HTMLメーリングの
活用をお勧めします。
プログラムの話は、何回かのやり取りも必要でしょう。
きっと参考になるはずです。
参考URL:http://www.users.gr.jp/
No.1
- 回答日時:
cgiでもjavaでもなく、HTMLでフレームきればいいのでは?
index.htmの内容を、
<html>
<frameset cols="0%,100%">
<frame src="ログを取るcgiのファイル(1)">
<frame src="実際に表示するファイル(2)">
</frameset>
</html>
とやれば、index.htmにアクセスしたときに(1)でログを取り、実際に表示されるのは(2)の画面。
後、画面遷移はそのまま(2)の画面の部分だけ移動するようにすれば、ログが二重に吐き出されることもありません。
(colsはrowsにしても同じです)
ただし、この方法だとURL表示はindex.htmlひとつだけになりますので、URL表示を変更したいという場合にはむきません。
この回答への補足
ありがとうございます。
index.htmの内容を
<html>
<frameset cols="0%,100%">
<frame src="ログを取るcgiのファイル(1)">・・・ue.htm
<frame src="実際に表示するファイル(2)"> ・・・shita.htm
</frameset>
</html>
ですよね。という事は、ue.htmでログを採取する記述を入れる・・・。
はい、やってみました。問題なく動作するのですが、
キーワードや直前のURLの情報が取れないんです。
上記の記述ですと、直前のURLが、index.htmとなってしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
http://tydsu.com/oeder と後ろ...
-
振り分けCGIについて
-
EXCELファイルに誰がアクセスし...
-
CGIでF5連打されたときにガード...
-
《エクセルVBA》「他の人が該当...
-
SSI(<!--#exec cmd="./XXXpl")...
-
実行および文字列の受け渡し
-
CGI禁止って???
-
ロリポップのパーミッション
-
LAN内に接続されているPCをリ...
-
古ーくからフリーのtree.cgi掲...
-
VBAを使用して、外部サーバのフ...
-
Internal Server Errorについて
-
xyzzyで拡張子がcgiやpl, pmの...
-
CGI実行環境下の.jsや.cssが動...
-
リビングのソファー(皮)のキ...
-
ASPから既存のexcelブックを開...
-
FLASHを使用した検索フォーム
-
jcode.pl のパーミッション
-
他サーバMySQLへのアクセス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メールフォームのCGIでデータが...
-
private_htmlについて
-
花の名前を教えてください。 8...
-
トップページにCGI
-
CGIでコードがむきだしの状態で...
-
public_html/index/以下へのCG...
-
ステップサーバーでの.htaccess...
-
htaccessでのクエリ付URLのリダ...
-
第1のPC(192.168.0.1)の/var/ww...
-
apache2でforbiddenになってしまう
-
cgi-binフォルダが空?
-
Mozilla/3.01 (compatible;)と...
-
検索ロボットへの拒否について
-
perlの設定
-
ひとつページに数個のhtmlファ...
-
シェルによるファイル名の拡張...
-
IISのSSIの設定について
-
PCサイトと携帯版サイトを同一...
-
SSIを呼び出した元ファイルの名...
-
携帯サイトのキャリア判別
おすすめ情報