【お題】NEW演歌

CGIの掲示板を使ってるのですが、
その内容を、トップページで簡易的に表示させる
方法がわかりません。。。
新着書き込みなどがあると、タイトルや内容が自動的に更新表示してくれるようなものです。

例えば、PHPで作ってあるページなどは
そういったことができるみたい
(この教えて!gooのトップみたいなページや、
ブログなどの新着のようなものです。RSSというので
しょうか?)
なのですが、
MYSQLとかよくわからないので、PHPは自信がありません。

一般的にどうやってるのか、仕組みを教えてほしいです。
JavaScriptやSSIでできるものなのでしょうか?
誰か教えてください。
手探りなので、質問があいまいで本当に申し訳ありません。。。

A 回答 (4件)

スクリプトをこんな感じで作る。



###一般の掲示板でいうとこのタイトルを短くしたいと考える###

#まずデータよ読む
open(NOTE,"掲示板データ.dat");
@NAIYOU = <NOTE>;
close(NOTE);

#5行表示させたい
$i=5;

#データを読んで
foreach $eachdata (@NAIYOU){
($date,$name,$mail,$title,$comment) = split(/\t/,$eachdata);


#5行チェック
if($i>0){

#ここまではわかるよね?

#####################################
#文字を少なくしたい場合 これがミソかな?
#####################################

$title = substr($title,0,$text_size);

#タイトルの半角文字数を数える
$hankaku = $title =~ tr/\x00-\x7f/\x00-\x7f/;

#カットするまでの文字の中に半角が奇数個あれば、
#カットする文字数を1文字分なくすこれしないと化ける場合あり

if($hankaku % 2){
$text_size2 = $text_size - 1;
}else{
$text_size2 = $text_size;
}
$dtitle = substr($dtitle,0,$text_size2);

#ココまでいったら後は表示さすだけ
print "$dtitle…<br>";
#一行書いた
$i--;
}}



substrってのが、簡単に言えば頭からいくつか引っ張り出す関数
$text_sizeってのが、何文字引っ張りだしたいかって数字
10文字なら 20っていれりゃーいい
$text_size =20;
これを頭にかけばいいよ

これで、5行の引っ張り出しができるから(微調整はいるが笑)

さて問題のHTMLに表示させたいってことだけど

iframe ってので、他の HTML なり.cgiを呼び出せるから手っ取り早くこれがいいんでねーの?
<IFRAME width="表示させたい横サイズ120" height="表示させたい縦サイズ200" name="frame1" src="http://www.xxxxx/どっかしらないけど、↑のスクリプトの場所" scrolling="NO"> </IFRAME>

古いブラウザやMACがこの機能をつかえるかはしりません。
参考になるかな?

この回答への補足

こんなに詳しく書いてもらって、ほんとにホントにありがとうございます!!!!

で、回答をいただいてからずっとやってみてたんですが、基本的にPerlがわからなくて、また行き詰ってしまいました。。。。すみません。

プログラムの内容はなんとなくつかめたので、
下のように直してみました。

sub tes {

open(NOTE,"$logfile");
@NAIYOU = <NOTE>;
close(NOTE);

#5行表示させたい
$i=5;

#データを読んで
foreach $eachdata (@NAIYOU){
($no,$reno,$date,$name,$mail,$sub,$comment,$url,$host,$pw,$color,$tail,$w,$h,$chk) = split(/<>/,$eachdata);

#5行チェック
if($i>0){

#ここまではわかるよね?

#####################################
#文字を少なくしたい場合 これがミソかな?
#####################################

$sub = substr($sub,0,$text_size);

#タイトルの半角文字数を数える
$hankaku = $sub =~ tr/\x00-\x7f/\x00-\x7f/;

#カットするまでの文字の中に半角が奇数個あれば、
#カットする文字数を1文字分なくすこれしないと化ける場合あり

if($hankaku % 2){
$text_size2 = $text_size - 1;
}else{
$text_size2 = $text_size;
}
$dtitle = substr($dtitle,0,$text_size2);

#ココまでいったら後は表示さすだけ
print "$dtitle…<br>";
#一行書いた
$i--;
}}

}

$logfile っていうのが、もともと定義してあったログファイルだったので、
それをオープンして、
その中身を見ると、
($no,$reno,$date,$name,$mail,$sub,$comment,$url,$host,$pw,$color,$tail,$w,$h,$chk)
こういう風に並んでたので、変えました。
あ、頭に$text_size =20;も書きました。

それで、この"tes"っていう関数を
呼び出すときは、
上の方にmodeの設定があったので、
そこに
elsif ($mode eq "tes") { &tes; }
っていうのを書けば、
***.cgi?mode=tes
っていう形で呼び出せるのかなあ・・・と
思ってたんですが、なんか違うみたい(--;

どうやって呼び出したらいいのでしょうか?
っというか、そもそもメインのcgiに
教えてもらったスクリプトをつけてるのが
間違いなのでしょうか・・・?

なんか、またまた変な質問ですみません。。。(><)

補足日時:2004/12/16 21:21
    • good
    • 0

実におしいね笑



sub tes {

今回のスクリプト

}
で囲ってやれば***.cgi?mode=tesその方法で呼び出せるよ
その作業やってないでしょ?

んで肝心のHTMLに表示だけど
SSIでもよさそうだよね HTMLファイルに
<!-- #exec cgi="パス/***.cgi?mode=tes">
で呼び出せるけど、問題が2つ

・拡張子がshtmlである必要がある場合がある
・cgiと同じサーバにないといけない(パスでたどっていくので)参考URLは載せといた

あとはがんばってみんしゃい

しかしこのgooの掲示板ムカツク
回答する押しても、真っ白になってデータが消えることが多々ありすぎ!2回も打ち込んだわ

参考URL:http://www.scollabo.com/banban/ssi/index.html

この回答への補足

またまたありがとうございます!!(><)

sub tes {

今回のスクリプト

}

これ、やりましたよー!!下見てください。。。
うーん・・・
呼び出し方は一応あってたんですね、、、。

トップはshtmlにしてあるので、
SSIで呼び出してみようと思ってました。

だけど肝心の一覧が引き出せてない・・・(--;

またがんばってみますぅ。。

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

補足日時:2004/12/17 13:25
    • good
    • 0
この回答へのお礼

表示できました~~(T▽T)
HTMLのヘッダ情報を関数のはじめに追加してみたら、
ちゃんと表示されました。

まだ調整が必要ですが、
きっかけがつかめて、ほんとによかったです!

本当にやさしく教えてくださって、
ありがとうございました。

また、困ったときはよろしくお願いします!m(vv)m

お礼日時:2004/12/17 14:10

SSIでPerlを呼び出せばできます。

    • good
    • 0
この回答へのお礼

回答ありがとうございます!
SSIでやるんですね。
わかりました、調べてみます。
きっかけを教えてくださってうれしいです。
もし、参考になるサイトとかありましたら、教えてください(^^)

お礼日時:2004/12/16 13:26

お使いのCGIは、自作ですか?


よくあるレンタル掲示板サービスではないですよね?

> 新着書き込みなどがあると、
> タイトルや内容が自動的に更新表示して
> くれるようなもの
ということですが、なさりたいことがイマイチ
はっきり掴めないのですが‥‥

1)Aさんが自分のPCで掲示板を見ています。
  Bさんも自分のPCで掲示板を見ています。
2)Aさんが書き込みをしました。
  Aさんが書き込みボタンを押して、画面が
  再表示すると、当然最新状態になります。
3)この時、Bさんが何も画面操作をしなくとも
  Aさんの書き込みのタイミングにあわせて
  Bさんの画面が最新状態になります。

ということを考えているわけでは、まさか無いですよね?

イ)掲示板に最初にアクセスすると表示される
  内容は、各記事の例えばタイトルのみです。
ロ)タイトルをクリックすると、その書き込みの
  全文が読めます。

というイメージでしょうか。これならば、ふつうの
Perlで出来ている掲示板でもよくある型ですけども。

この回答への補足

CGIは、KENTさんのところのスクリプトを自分で多言語に改造したものです。レンタルではないです。

えーっと、、、
例えば、トップページがあって、
そのトップページにヘッドラインのような形で
掲示板に書き込まれたタイトルなどを、新着順に並べてるようなものです。ブログの端っこの方に、テーブルがあって、
「新着書き込み」のタイトル一覧みたいのがありますよね?あれなんですが・・・。
例えばこの「教えて!goo」のトップも、そんな感じだと思うのですが・・・。

つまり、自分で作るhtmlのページに、
自分のところの掲示板の簡易的内容を
並べてみたいわけなんです。。。

cgiの内容を引っ張ってくることになるのでしょうか?
仕組みがいまいちわからなくて・・・。

なんかうまく伝わらないみたいでほんとにすみません。。。

補足日時:2004/12/16 02:22
    • good
    • 0

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


おすすめ情報