少し解らずらい内容なのですが・・すみません、教えてください。
実はアクセスログを設置し、運営しようかと思っております。
そのプログラムがフレームに対応していないとの回答(開発者)をいただき、一番初めに表示されるページにタグのリロードをつけ、そしてフレームページにジャンプさせる・・・、と考えておりました。が、エンドユーザー側がそのページにブックマークをつけると、次回は次のページからスタートしてしまい、正確なログが取れないという問題に直面しました。

図)
|-index.htm(ログ集計・・・リロードにてnext.htmへジャンプ)
|
|-next.htm(エンド側にてブックマークにすると、次回はnxet.htmからとなる)

で何かよい方法はないかと思い、相談しました。
例)
|-index.htm
|  |-???.cgi
|
|-index.htm

とできれば、ブックマークをつけても、常にindex.htmとできるのですが・・・?
これは、cgiですか?javaですか?
あと、ソースを教えてください。

A 回答 (7件)

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でないので、ログ解析が行われる。
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にさせていただいて、試しているのですが・・・。
はずかしながら、ど素人にはすごく難しいです。
もう少し教えていただけますか?

お礼日時:2001/04/23 15:42

友人がちょうどログ解析をつけたというので,その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の閲覧が可能。
    • good
    • 0
この回答へのお礼

ありがとうございました。
幾分素人なもので・・・、
もう少し詳しく設置方法などを教えてください。

お礼日時:2001/04/23 08:59

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);
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
色々と調べた結果、フレームに対応したアクセスログができる方法を探した方が良さそうな感じがします。
アクセス元のリモートホストやブラウザ、OS情報、解像度、検索キーワードなどが解析できるも。

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

お礼日時:2001/04/23 08:59

イメージタグ<img=でログを取るタイプのものもありますよ。



参考URL:http://hyperbox.com/support/cgi/logmail.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にします。

依然・・・困ってます!

お礼日時:2001/04/20 16:19

>上記の記述ですと、直前のURLが、index.htmとなってしまいます。


解析cgiのあるページを呼んでいるのはindex.htmですよね。
REFFERは直前に見ていたページが表示されるわけですから。:-)
フレームもしかり…なのかな?

フレームで問題がでるのなら index.htmはフレームもなにもきらない
構成にすればいいと思います。よくありますよね、入口ページ。

そこがブックマークされないと心配しているなら、ブックマークして
もらえるような工夫をすればいいだけのことです。更新情報を
載せるとか、絵描きさんなら新作は必ずそこに掲載してからにするとか。
一言日記を載せるとか。

技術技術だけじゃなくてちょっとした工夫だと思いますよ。

それでも私みたいに直接日記、掲示板にブックマークする人はいます(笑)。一番いいのはログを貰えるプロバイダを使うことです。

この回答への補足

アドバイス、ありがとうございました。
確かに・・・・と思うのですが、
困った事に、構造は変えなれないのです。
いやぁ・・・悩んでマス!

補足日時:2001/04/20 11:32
    • good
    • 0
この回答へのお礼

すみません。お礼するつもりが・・・補足になってました。
どーも、すみませんでした!

お礼日時:2001/04/20 16:20

ユーザーズグループのASPメーリングとかD-HTMLメーリングの


活用をお勧めします。
プログラムの話は、何回かのやり取りも必要でしょう。
きっと参考になるはずです。

参考URL:http://www.users.gr.jp/
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にしてみます。

お礼日時:2001/04/20 08:36

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となってしまいます。

補足日時:2001/04/20 08:37
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qブックマークされないようにする

会社でホームページを作成しています。
その中で、メールフォームのようなものを作成し、名前などを入力して、送信してもらった人だけに、
その後のページを見せたいのです。フォームは作成(フリーのものをカスタマイズ)したのですが、
今のものだと、送信してもらった後に見せるページを
ブックマークされてしまうと、同じ方が2回目以降に来られた時に、ブックマークから開くことができてしまいます。
同じ方でも、来られるたびにフォームに入力して頂きたいと考えていますので、ブックマークされない又はされてもブックマークからは正常に表示されないようにしたいのですが、
どのようにすれば良いのでしょうか。
当社のサーバは、SSIは使用不可ですが、CGIは使用可です。
フリーで提供されているCGIのページも探していますが、ユーザー認証(名前とパスワードを入力してもらう)のものは、
その後のページのURLが分からないようにできるのは、見つけたのですが…。

Aベストアンサー

フォーム入力直後に制限したいページを CGIで 表示するのなら特にテクニックは必要ないかと。
フォーム入力がなければ表示もしない。というだけですから。

入力直後ではなく、フォーム入力から時間をおいてアクセスさせるのであればReferrerやクッキー、一回限りのパスワードを発行。などの手が使えます。(一回限りのHTMLファイルを用意する。というのもありかな?)

どちらにしろユーザー側でHTMLソースを保存されたらそれまでなので、
どういう制限が有効か?を判断したほうがよいですよ。

Qperl チャット リロード

chatpad(http://chatpad.jp/)というサイトを利用してみて思ったのですが、リロードっていつしているのでしょうか?(ブラウザのステータスバーを見る限りは一定の間隔でしかリロードしていなくて、リロードしていない時でも発言は更新される)
perlの勉強をしていて、チャットを作ろうと思ったのですが、色々なサイトを調べてみても、「相手が発言したのかどうかを調べるためにはリロードするしかない。」みたいに書いてあったのですが、リロードなしでも相手の発言を取得して随時表示させていくことができるのでしょうか?(できるなら、そのようなプログラムを書きたいです)
javascriptとperlだけで実現するチャットの場合、どのようなアルゴリズムが一番スマートですか?詳しく教えてください。お願いします。

Aベストアンサー

そのチャットを試したわけじゃないけど紹介記事には「Ajaxを利用しており」って書いてありますね。
http://gigazine.net/index.php?/news/comments/20090715_chatpad/

単純に内部的に定期リロードしてるのか・・・うまく作れば他者の発言に合わせて非同期でロードもできるのかな。
http://www.google.com/search?q=chat+ajax+perl&lr=lang_ja

Qキャッシュ効かないリロードじゃないとカウンタ増えない

普通にページをリロードボタンを押してもカウンタが増えません。
カウンタの表示は画像ではなく数字をそのまま表示しています。
コントロールボタン押しながらリロードボタンを押すと
カウンタは増加します。(Win2000、IE6)
画像で数字を表示しないと駄目なんでしょうか?

Aベストアンサー

あの……おっしゃってるカウンターって、画像ですよね?

なにか誤解があるんじゃないかと思うんですが、レスキューさんのグラフィカル・アクセスカウンター(参考にあげられてるアドレスで飛ぶとここになりますが)って、画像(ただしくは数字のgif画像)で表示してますから、「画像で表示」というところは問題点じゃないと思うんです。
それとも、画像を連結処理しないで表示するというのが目的なのでしょうか。

むしろ、ロック機能を外すのが問題で……CGIなら出来るんですけど、SSIなんですよねえ。これはちょっとわからないんですが……。

とにかく数字の画像に関しては、素材サイトで配布しているところもあると思うので好きなのをダウンロードするか、やる気があれば自分で作っちゃったりすれば良いと思います。
それを、リロードでもカウントするタイプのカウンターで使えば良いことですね。

とりあえず、リロードでカウントするタイプのカウンターを配布してらっしゃるサイトさんを御紹介します。
『CJ-Club』
http://www.cj-c.com/

あと、もし本当に画像を使わない、つまりテキスト表示でしかもリロードでカウント出来るものを御望みなら、こちらがあります。
『KENT WEB』(TEXT COUNTER)
http://www.kent-web.com/

参考URL:http://www.kent-web.com/

あの……おっしゃってるカウンターって、画像ですよね?

なにか誤解があるんじゃないかと思うんですが、レスキューさんのグラフィカル・アクセスカウンター(参考にあげられてるアドレスで飛ぶとここになりますが)って、画像(ただしくは数字のgif画像)で表示してますから、「画像で表示」というところは問題点じゃないと思うんです。
それとも、画像を連結処理しないで表示するというのが目的なのでしょうか。

むしろ、ロック機能を外すのが問題で……CGIなら出来るんですけど、SSIなんですよねえ。これはち...続きを読む

Q時間指定でランダムにhtmファイルを表示したい

perlカテゴリでも質問させて頂いたのですがちょっと無理があったようですので改めてこちらに質問させて頂きます。

画像のランダムスクリプトと似たかんじでhtmファイルを差し替えるスクリプトって作ることは可能でしょうか?

あるフォルダに多数のhtmファイルを格納しておけばランダムに指定した間隔時間でそのファイルが表示されるといった仕様にしようと改造を試みたのですがどうもうまくいきません。

どなたかPerl言語に精通されている方がいらっしゃいましたらそのスクリプト例をお教え頂きたいのです。

お手数をお掛けします
どうぞよろしくお願い致します。

Aベストアンサー

#4 です。

>画像ファイルの場合のようにひとつのディレクトリにまとめることは難しいでしょうか?

ムムム。もしや、HTTPの事を正しく理解されていない??
image/* と text/html を同じように考えていませんか?

image/* って、HTMLソースでは無いですよね? って言うことは、ページ遷移はしませんよね??

ここで重要なのは、ページ遷移が発生するかどうか。じゃ無いでしょうか?

なので、ご希望の様な動作はできません。


それにですよ。携帯電話でそんなことやったら(もし、できたとしても。と言う前提の元ですが。)、パケット代が嵩んで大変な事になるんじゃ無いですか? ユーザーはそれで納得されるのでしょうか?
僕は、仕事でCGIなどを作っているのですが、僕だったら、そんな仕様書は門前払いですね。「売れないものに金かけてどうするの?」って感じです(--;)


まぁ、お気持ちは分からなくも無いですが、これを機会にもう少しHTTPについて勉強して見てください。少なくても、ご自分でCGIを作られるのでしょうから、邪魔にはならない知識ですから。
その上で、こんなこと知りたい。とか。あんなこと知りたい。とか。言うのであれば、また質問してみれば良いと思います。僕は、分かる事はお答えします。

#4 です。

>画像ファイルの場合のようにひとつのディレクトリにまとめることは難しいでしょうか?

ムムム。もしや、HTTPの事を正しく理解されていない??
image/* と text/html を同じように考えていませんか?

image/* って、HTMLソースでは無いですよね? って言うことは、ページ遷移はしませんよね??

ここで重要なのは、ページ遷移が発生するかどうか。じゃ無いでしょうか?

なので、ご希望の様な動作はできません。


それにですよ。携帯電話でそんなことやったら(もし、できたとしても。と言...続きを読む

Qtest.htm の133048行目だけを削除したい

10MBぐらいあるファイル(test.htm) の、133048行目を、単に削除したいのですが、perl script (del.pl等のファイル)で、どのように書くのでしょうか? 

awkとかsed とかを昔使った経験がありますが、perlのことをはじめたばかりで、さっぱり解りません. またperl初心者に向く基礎的なことを記したURLがありますでしょうか?

またperl以外で、こうすれば、良い、という別手法情報も今後の参考には、ありがたいです、よろしくお願いします.

Aベストアンサー

> 次に、コマンドラインで実施させる書き方を知りたくなりました

了解、Windowsなんですね。Windowsのシェルはシングルクォートを
理解してくれません。なので、

> c:\>cat test.html | gawk ' NR != 133048 { print } '

は、ダブルクォートに変えて、

c:\>cat test.html | gawk " NR != 133048 { print } "

で OK です。

私も、unix と Windows を行ったり来たりしてますので、
良く間違えます (^^;


このカテゴリの人気Q&Aランキング

おすすめ情報