掲示板最終書き込みの時刻を他のhtmlに書き込むには?

[上に] [前に] [次に]
hoekiti [HomePage] [E-Mail] 1998/09/28(月) 02:48:06
はじめまして。よろしくお願いします。
実は掲示板を設置したのですが、この掲示板に最後の人が書き込んだ時刻を、その掲示板をリンクしている、トップページ(index.html)のそのリンクの横に表示させたいのですが、どうすればよいでしょうか?
ご教示頂ければ幸いです。

moci [E-Mail] 1998/09/28(月) 05:08:17
掲示板のデータファイルの更新日時を取得すればいいと思います。
ただし、この場合はメンテナンス等で直接データファイルを操作すると、
その日時を表示することになりますから、より厳密には、最後に
書き込まれたデータの書き込み日時を取得する必要があります。

取得した日時を表示するには、いくつかの方法が考えられます。

1.SSIで表示
 SSIが使えるのであれば、比較的簡単でしょう。

2.CGIを画像として呼び出し、画像で日時を表示
 けっこうややこしいことになるかとは思いますが、
 不可能ではないでしょう。

3.HTML全部をCGIで出力
 掲示板へのリンクを含むHTML文書そのものをCGIで出力し、
 その中で日時を取得、表示する。

と、ここまで書いてきて、まさかレンタルの掲示板だったり…
などと考えてメールアドレスを見ると、ジオシティじゃないですか(^_^;;
ジオシティのページで、表示したいのでしょうか?
だとすると、上記の案は、全部ダメです…

hoekiti [HomePage] 1998/09/28(月) 11:21:51
mociさん、早速のご回答どうもありがとうございました。
ジオシティのページとのことですが、indexなどHTMLのみをジオシティのページにおき、掲示板は契約しているサーバー(cgiのみでssiは使えません)におき、フレームでindexから呼び込むという形態をとっています。
そこで以下の皆様のご発言で、javaファイルをHTMLに呼び込み、表示できるという項目がございますが、もし、掲示板のcgiを起動した日時を取得して、javaファイルへ上書きしていけばうまく行くような気がしたのですが、もしその方法をご存知であればご教示くだれば幸いです。
もし、的外れな質問ならお許しください。

Tiot [E-Mail] 1998/09/28(月) 14:11:00
たぶんJavaでなくてJavaScriptですね。
まず、掲示板の有る所にlastday.jsとかファイルを作ります。
内容は日付。
lastday="98年1月1日1時1分";
とかにしておきます。
掲示板自体を改造して、書き込みがあるとそのファイルを
更新するようにします(日付の部分)。
index.htmlからはそのファイルを読み込んで、
(<script src="http://aaa.bbb.ccc/lastday.js">)
index.htmlの中でlastdayを表示するようなスクリプトを
書けばできるでしょう。
JavaScriptで外部ソースファイルを読み込む方法は、
ラウンジの中の別題に詳しくあるのでそちらを参照して下さい。
cgiとJavaScriptの知識が多少必要ですが、この方法なら
SSIを使わずに掲示板とindex.htmlがまったく別のサーバでも
できると思います。

hoekiti [E-Mail] [HomePage] 1998/09/28(月) 18:00:45
[[解決]]
Tiotさん、お返事ありがとうございます。
おかげさまで、リンクの横に更新時間を表示することができました。
cgiに関しては、設置しかできない全くの素人でしたが、やってみればできるものですね。表示できたときには感動ものでした。
mociさん、Tiotさん、どうもありがとうございました。

Tiot 1998/09/28(月) 18:12:15
致命的エラーがでてしまってますよ。(NC4.04)
もとの*.jsファイルの方で。
ソースを見れないのでどこかわかりませんが。

hoekiti [E-Mail] [HomePage] 1998/09/28(月) 18:45:15
僕のブラウザはIE4,0なので、エラーには気づきませんでした。
cgiと同じディレクトリに何も書いてないlastday.jsを用意しまして、cgi上から
       WriteLink(); function WriteLink(){
       document.write("  <時刻>   ");
                }
と、jsファイルに書き込むように設定しました。
それをindex.html上で、
<SCRIPT language="JavaScript" src="http://aaa/~bbb/ccc/lastday.js">
WriteLink();
</SCRIPT>
と表示したわけです。IE4.0では、多少読み込みが遅い以外は問題なく動いたのですが、他のブラウザではうまく行かないと言うことでしょうか。

Tiot 1998/09/28(月) 21:10:26
>他のブラウザではうまく行かないと言うことでしょうか。
多少手直しすれば大丈夫だと思います
(でも、IEの3.00ぐらいまでは*.jsファイルの取り込み自体をサポートして
いないのでだめですが。3.02あたりから大丈夫だったかな)。
まず*.jsに書き込む内容を
function WriteLink(){
document.write(" <時刻> ");
}
としてください。
そして、インデックスページの方は、
<SCRIPT language="JavaScript" src="http://aaa/~bbb/ccc/lastday.js">
</script>
で、一度すぐに閉じておいてから(これは<head>部分に入れるのが一般的)、
日付を入れる場所に
<script language="JavaScript">
WriteLink();
</script>
と書いて、2セクションにわけたら駄目ですか。
JavaScriptに関してはIEとNNでだいぶ動作が違いますので、事前に両方でチェックする
必要があると思います。
JavaScriptに関してはNNの方が動作が正確だと思うのは僕だけかな?
この際ですのでNNを入れて両方で動作確認するようにしたらどうでしょう。
###↑余計なお世話モード###
あと蛇足ですが
>IE4.0では、多少読み込みが遅い
これは、1ファイル余分に読みにいっているのでしょうがないです。

hoekiti [HomePage] 1998/09/29(火) 01:05:10
Tiotさん、かさねがさねありがとうございます。
*.jsに書き込む内容を
function WriteLink(){
document.write(" <時刻> ");
}
に、とのことですが、
WriteLink(); function WriteLink(){
               document.write(" <時刻> ");
                }
と、WriteLink(); がないと動作せず、表示されませんでした。
また、<SCRIPT language="JavaScript"src="http://aaa/~bbb/ccc/lastday.js">
</script>
と一度閉じてから、
<script language="JavaScript">
WriteLink();
</script>
とのことですが、、<SCRIPT language="JavaScript・・・のほうをヘッダーに入れると、17個も同様のスクリプトがあるせいか、意図しないところに時刻が表示されてしまいました。
とりあえず 、
<SCRIPT language="JavaScript" src="http://aaa/~bbb/ccc/lastday.js ">
  </SCRIPT><SCRIPT>
<!--WriteLink(); // -->
</SCRIPT>
とコメントアウトしておきました。明日、職場のNNででも試してみるつもりです。

Tiot 1998/09/29(火) 04:21:29
indexページの方のソースを見たのですが、複数の*.jsファイルを
読み込んでますね。
その時に関数の名前はそれぞれ別なものにしていますか?
関数の名前がかぶってしまっていると、うまく動きません。
失礼かとも思ったのですが、ソースに書いてある*.jsファイルの
一つをこちらで作ったhtmlファイルの中の、
<script>タグ内で指定したところエラーは出ませんでした。
#このファイルは既に消去済みです。念の為。
関数の名前をそれぞれ、WriteLink1()、WriteLink2()など、別なものに変えた後に
(1)*.jsファイルの内容を
function WriteLink1(){
document.write("日付")
}
という形にし
(2)indexページでは
<head>
<script language="JavaScript" src="http://aa.bb.cc/xx1.js></script>
<script language="JavaScript" src="http://aa.bb.cc/xx2.js></script>
<script language="JavaScript" src="http://aa.bb.cc/xx3.js></script>
</head>というかんじでヘッダ部分で必要なファイルを読み込んで
本文中の必要な位置で
<script language="JavaScript">
WriteLink1(); ←関数の名前は適宜ふさわしいもの
</script>
というふうに、関数を呼び出してみてください。
(1)と(2)は片方だけでなく両方やってください。

hoekiti [HomePage] 1998/09/29(火) 07:47:30
たびたびで大変恐縮しております。早速、ファイル名、変数をそれぞれ適宜変更いたしまして、ヘッダーは以下のように変更いたしました。
<head>
<scriptlanguage="JavaScript"src="http://aaa/~bbb/ccc/lastdayba.js"></script>
<scriptlanguage="JavaScript"src="http://aaa/~bbb/ccc/lastdayya.js ">;</script>
・・・・・
<scriptlanguage="JavaScript"src="http://aaa/~bbb/ccc/lastdayc.js ">;</SCRIPT>
</head>
すると、なぜかヘッダー部分のスクリプトが、画面の一番上に表示されてしまい、本文中のスクリプト部分には何も表示されないと言う状態となりました。同時にヘッダー中に組み込まれている、スタイルシートが原因かと思いましたが、これを削除しても巧く行かず、geocityゆえの問題を疑って、自身のサーバーで表示してみましたがこれも同様にヘッダー部分のスクリプトが読み込まれてしまうと言う結果でした。
大変恐縮ですが、お知恵を拝借できれば幸いです。

Tiot 1998/09/29(火) 21:49:27
hoekitiさんのホームページを見てみたのですが、<head>部分の<script>がなかったのはやってみて駄目で消したからですよね?
<head>の方の<script>はフレームのなかの呼び出したいファイル(日付を表示したい子ファイル)に書きましたか?
ちょっと、これだけですと何が原因でそうなったのかわかりませんので、そのうまくいかなかったファイルを、どこかにアップして見せていただけませんか。
あと、もとの*.jsファイルも中身が分かるように、テキストか何かに拡張子を変えてどこかにアップしておいていただければ、解決しやすいかと。

一度はIEでうまく表示されたということですから、サーバの方の設定は問題ないと思うのですが、
http://home.netscape.com/eng/mozilla/3.0/relnotes/windows-3.0.html#JavaScript
などを念のため目を通して見てください。

hoekiti [E-Mail] [HomePage] 1998/09/30(水) 04:23:06
Tiotさん、おそれ入ります。
NNをインストールしていろいろ試してみたところ、誤りは当方の文法ミスでした。javaスクリプトに関する解決法は全くTiotさんのおっしゃるとうりで、NNでうまく動作しなかったのはjavaスクリプトの構文内で、余計なところでスペースを空けていたのが問題でした。これを知って情けないやら、申し訳けないやら・・・Tiotさんには度々お手数をかけてしまって申し訳ありませんでした。これを期に自分の不勉強を恥じ、javaスクリプトやcgiについて勉強しようと思います。Tiotさん、本当にありがとうございました。

[上に] [前に] [次に]