IMG SRC と FRAME SRC を同時に実行すること

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: liesl : 2003/12/20 02:29
 SSIが使えないサーバーで、htmlファイルからbbsへ飛ばすと同時にアクセスカウントをしたいのです。そのhtmlファイルに次の行を書くと、カウントできることを知りました。
<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">

 しかしhtmlファイルに上の行を書くと、下の3行でbbsへ飛ばすことができなくなりました。
<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
</FRAMESET>

 htmlファイルのうえで、IMG SRC と FRAME SRC とを同時に実行することは無理なのでしょうか。

1   名前: ico : 2003/12/20 17:27
<A HREF="bbs.cgi"><IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0"></A> とし、
掲示板へのページを開くと同時に、CGIスクリプトでクリックされた回数をカウント、
さらにそれらをフレームを使ったページで実行したいのですよね?

まず、
<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">
このタグですが、おそらくこの1行を記述しただけではカウントされないでしょう。
最初に書いたように、イメージタグをリンクタグで囲み、それをクリックするとカウントが実行される形になっているのだと思います。
その辺はCGIスクリプト配布サイトの説明をじっくりお読み下さい。

次ぎに、lieslさんの記事に書いてあったフレームタグですが、
掲示板があらかじめ表示されるような形になっています。
これだと、先程のCGIスクリプトを使う機会がまったくないという事になってしまいますね。

つまり、リンクで掲示板を表示させるようにすればいいわけです。


最後に。

<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
</FRAMESET>
とされていますが、縦2つにページを分割しているにも関わらず、
もう1つの子フレームが見当たりませんよ。

2   名前: liesl : 2003/12/20 23:20
 icoさん、ご親切に教えてくださり、ありがとうございました。私の知識が不足していてうまく説明できず、すみませんでした。

 もともとはCGI RESCUEを見てフレーム機能の利用について知り、htmlファイルにアクセスしたら自動的にbbs.cgiへ飛ぶと同時にSSIでアクセスカウントをしていました。そのときは、下の3行+SSIでうまくいっていました。
<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
</FRAMESET>

 しかしSSIが使えないサーバーになったので、ある人がつくったcount.cgiファイルを利用することにしました。そのCGIファイルは、htmlファイルに次の行を書くと、そのhtmlファイルへのアクセスをカウントするものです。
<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">

3   名前: liesl : 2003/12/20 23:22
(つづきです)
 でも私が本当にしたいのは、htmlファイルにアクセスしたらフレーム機能で自動的にbbs.cgiへ飛ぶと同時に、アクセスカウントすることです。htmlファイルで<FRAME SRC>と<IMG SRC>とを同時に実行できたら、飛ぶと同時にカウントできるように思ったのですが、根本的に間違っているでしょうか。
 icoさんが親切に想像してくださったように<A HREF="bbs.cgi"></A> でリンクをクリックしてもらって飛ばすのではなく、htmlファイルからbbs.cgiへ自動的に飛ばすと同時にカウントしたいのです。もともと無理なのかもしれません。
 素人の私の望みをいえば、できればbbs.cgiファイルのなかにアクセスカウンタを設けたいのですが。でもそのようなCGIファイルを公開している方はおられないので、たぶん無理であり、htmlファイルからフレーム機能で飛ぶさいにカウントするしかないのだろうと思います。そこで<IMG SRC>によるカウントと結合できないかと考えたのですが、ありえない質問でしたでしょうか。そうでしたらすみません。

4   名前: ico : 2003/12/21 02:07
こちらのほうこそ、勝手な解釈で進めてしまい申し訳ありませんでした。

アクセスカウントの使用方法については理解できました。

>フレーム機能で自動的にbbs.cgiへ飛ぶ
この文章で頭がこんがらがってしまいました。
フレーム機能というのは、通常のごく普通の、縦2つに割ったフレームページの事を指しているのでしょうか?
親記事のタグを見るかぎりは、普通のフレームなのですが・・・。
もし、通常のフレームページを作っていて、FRAME SRC=""で指定したファイルに対し、「飛ばす」と表現するのはおかしいと思います。

以下からは、通常のフレームページだったと想定してのお返事となります。
(また勝手な解釈をしてしまっているかもしれませんが…/^^;)

><FRAME SRC>と<IMG SRC>とを同時に実行
lieslさんのやりたい事が何となく分かってまいりました。
ファイルが1つ増えますが、こういった方法はどうでしょうか。

<HTML>
<HEAD></HEAD>

<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
<FRAME SRC="***.html">
</FRAMESET>

</HTML>

この親フレーム名が、仮にoya.htmlだったとします。
そして、子フレームの***.htmlには、
例のcount.cgiを組み込みます。
結果として、
oya.htmlが読み込まれたと同時に、
掲示板が表示され、さらに同時にcount.cgiが実行されます。


こんな感じなのですけど・・・。
CGIスクリプトをカスタマイズしたいとおっしゃられていたlieslさんの意にそぐわない解答かもしれませんね。
私、スクリプト関連に関しては素人なもので。^^;

5   名前: liesl : 2003/12/21 10:27
 icoさん、再度のご教示、ありがとうございました。
 なるほど、oya.htmlを別につくって、bbs.cgiが読み込まれると同時に、oya.htmlが読み込まれてcount.cgiが実行されるというやり方があったのですね。ファイルが一つ増えるのは、カウンタの常ですから、気になりません。
 何かやり方がありそうなのに、素人ゆえに解決できず、質問も要領を得ませんでしたが、ずばり答えていただいて感謝しています。

6   名前: mar : 2003/12/22 12:12
横レス失礼します。

認識のされ方が気になったので余計な口出しをさせて下さい(笑)。
上記のicoさんの方法ならば、、、
>oya.htmlを別につくって、bbs.cgiが読み込まれると同時に、oya.htmlが読み込まれてcount.cgiが実行されるというやり方が
別に作る必要はないのではないですか?今までのモノに1行書き足すだけですから。
で、動作としては、「oya.htmlにアクセスするとbbs.cgiとcount.cgiがそれぞれ実行される」ということになるのだと思います。

さて、本題です。
まず、lieslさんのご使用のbbs.cgiは、スクリプト+サーバ共にレンタルですか?
それともフリースクリプトをご自身のCGIサーバで使っているのでしょうか?
いずれにしても、bbs.cgiにある程度のカスタマイズ機能があればbbs.cgiの中にcount.cgiを入れてしまうことができる様な気がします。
レンタルでもカスタマイズの際にイメージタグが使えないとか、フリー配布でも改ざん不可だとか、ダメな場合もあるでしょうけれど。

>できればbbs.cgiファイルのなかにアクセスカウンタを設けたいのですが
ということでしたので。
icoさんの方が簡単な方法ですけどね。
(いつも身になるレス、感心しながら拝見しています>icoさん)

7   名前: 司co : 2003/12/22 18:02
marさん

と、とんでもない、実は少しだけ詳しい程度で・・・。
でも有難うございますっ。m(_ _)m

>別に作る必要はないのではないですか?
今までの親フレームに
<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">
を書き足すと掲示板が表示されなくなったと
親記事でlieslさんがおっしゃられていたので、
<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
<FRAME SRC="***.html">
</FRAMESET>
とし、***.htmlに
<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">
を書き足してみてはいかがでしょう・・・と、
HTMLで解決できる方法でレスしてみたのですが・・・。
私は何か変な誤解をしているのでしょうか?^^;
(実を言うと、No.3までの内容が中々ややこしてくて、完全には理解できていないのです)


CGIスクリプトのカスタマイズについては、
marさんのおっしゃる通りですね。
先日のレスの最後

8   名前: ico : 2003/12/22 18:04
(つづきです)

先日のレスの最後の方では、ちょっと軽率な返事をしてしまいました。

# パスワードを設定し忘れていたので修正できませんでした。
なぜか「司co」となっていますが、「ico」です。

9   名前: liesl : 2003/12/23 01:42
marさん
 横レスありがとうございます。icoさんのご教示で解決したと思ったので、しばらくこの相談ルームを訪れていませんでした。
 素人ゆえ何をしたいのか、何を聞きたいのか、我ながらよくわからずに書いた面があり、混乱が生じて申し訳ありません。htmlファイルを別に作るということについては、icoさんが再説されたように私も認識しています。
 しかしそれよりも、bbs.cgiファイルのなかにアクセスカウンタを設けたいという私の望みは実現可能でしょうか。htmlファイルでアクセスカウントする方法は、bbs.cgiをFavoritesに登録されてしまうとカウントできなくなってしまうことが大きな難点です。
 私が使っているbbs.cgiファイルは、CGIレスキュー(http://www.rescue.ne.jp/cgi/minibbs1/)で公開されているMinibbs ver.8.94で、カスタマイズ可能だと思います。といっても、どのようにカスタマイズしたらよいのか、素人の悲しさ、試みてはみましたが、うまくいきませんでした。CGIレスキューも、htmlファイルのフレーム機能でアクセスカウントすることを薦めているので、無理なのだろうと思っていました。
 bbs.cgiファイルのなかに、<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">さえ埋め込めればよいのでしょうが。何か教えてくださればありがたく存じます。

10   名前: mar : 2003/12/24 12:24
こんにちわ。
上記サイトで改造可を確認しました(時間がなかったのでチラッとですが…)。

>bbs.cgiファイルのなかに、<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">さえ埋め込めればよいのでしょうが。
そういうことになりますね。
で、結論から書くと、以下の部分がminibbs.cgiにあるはずなので(スクリプトはオリジナルのままであることを前提として書きます)
そこに以下の1行を書き加えます。

#--- 入力フォーム画面 --------------------------------#

print "Content-type: text/html\n\n";

print "<html><head><title>$title</title></head>\n";
print "$body\n";
print "<div align=\"right\"><img src=\"count.cgi\" border=\"0\" width=\"0\" height=\"0\"></div><br>\n"; # ←この1行を追加
print "<h1>$title</h1>\n";

こんな感じですかね。
<div>はお好みでどうぞ(勿論無くてもOKです)。

11   名前: mar : 2003/12/24 12:35
icoさんへ

>私は何か変な誤解をしているのでしょうか?^^;
いえいえ。私の方こそ誤解をまねく表現をしてしまってスイマセンでした。

lieslさん:>>なるほど、oya.htmlを別につくって…
に対しての
mar:>>別に作る必要はないのではないですか?
であり、icoさん宛ではなかったのです。。。

lieslさんの書き込みから、1つ増えるファイルは***.htmlではなくoya.htmlとご理解されたかのと思ったので
oya.htmlは新規にたてる必要はなく今までの<frameset>したファイルを使えばいいのでは?と
横から口を出させて頂いた次第でした。
icoさんのレスは完璧です(笑)。

12   名前: liesl : 2003/12/25 05:27
marさん
 できました、教えていただいた通りにしたら。ありがとうございました。
 bbs.cgiファイルで直接アクセスカウントすることは多年の願望でしたから、嬉しくてなりません。フレーム式のhtmlファイルで間接的にカウントするしかないのだろうとあきらめていたら、たった1行の追加でできるとは。しかし素人が少し勉強したくらいでは、その1行には到底辿りつけませんでした。本当にありがとうございました。

 それから、たしかに私は、「1つ増えるファイルは***.htmlではなくoya.html」と誤解していました。icoさんが親フレーム名を仮にoya.htmlとされたとき、その「親フレーム」の意味がわからなかったわけです。すみません。
 ただ、ど素人の私の最初の疑問は、htmlファイルに下のように書いたらなぜ動かないのだろうかということでした。今となってはもういいのですが、もしこの#行が正しく書けたら、ファイルも増えないですむでしょうし、名人同士の鞘当ても招かないですんだでしょうが。

<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
<FRAME SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0"> #
</FRAMESET>
または
<IMG SRC="count.cgi" BORDER="0" WIDTH="0" HEIGHT="0">  #
<FRAMESET ROWS="100%,*">
<FRAME SRC="bbs.cgi">
</FRAMESET>

 ともかくicoさん、marさん、ご親切に心からお礼申し上げます。

13   名前: てふ : 2003/12/25 14:24
lieslさん

上の例は動きそうな気がしますが、無理ですか?

下の例では、<img>が出てきた時点で、
<body></body>があるものと認識されています。
<body></body>と<frameset></frameset>は共存し得ないので、
後者が無視されているということでしょう。

それから、ファイルを増やしたくないのなら、
bbs.cgiにカウンタを埋め込んだ上で、
そもそもフレームを使わずに、目次から
<a href="bbs.cgi">掲示板</a>
というようにリンクさせれば良いのでは?
と思います。

14   名前: mar : 2003/12/25 14:40
解決してよかったですね。

最初の質問に関してですが、
私はSSIについてはよくわからないのでHTMLの観点で書きます。
基本的に<frameset>を書いたファイルはフレーム分割を指定するだけのファイルなので(例外として<noframes>はありますが)
本文に相当するものを書いても反映されないと思います。
カウンタCGIを発動させる<img>も却下されてしまったのではないですかね?
それからカウンタCGIの方がどういう風になってるのかわからないので何とも言えませんが、
count.cgiは<img>で呼び出された時のみ機能する様になってるのかも知れませんね。

15   名前: liesl : 2003/12/26 09:54
てふさん
 ありがとうございました。おかげさまで、<img>の働きが少しわかってきました。トップページに今までフレームを使っていたのは、アクセスカウントしているのを知られないでbbs.cgiへ「飛ばす」ことを考えたからですが、もはやその必要もなくなりましたので、これからはご教示のようにします。

marさん
 またもありがとうございました。<frameset>の意味も大分わかってきました。おっしゃる通り、count.cgiは<img>で呼び出された時のみ機能するもののようです。でも、すでに解決できましたので、もう結構です。おかげさまで宿願を果すことができて、本当に感謝しています。

16   名前: ico : 2003/12/31 03:53
解決したんですね、よかったです。

>marさん
わ、私ってばまた文章を読み間違えて…。
こちらこそすいませんでした。

# 今頃このスレッドを上げてしまい申し訳ないです。

一覧へ戻る