CGI-BBS > CGI > Perl > 掲示板CGIを起動すると、ただ2桁の数字だけ表示されます。


カレッヂ
カレッヂ


質問者 Ryo Fujita  投稿日 12/24(火) 18:52:58
どうもはじめまして。
初歩的な質問かと思いますがどうか聞いて下さい。

今、自作のHTMLスキン型の掲示板の作成に挑戦しているのですが、
一応一通り作り終えて、アップしてアクセスすると、

「83」

とだけ表示されて掲示板の画面が表示されないのです。
文法チェッカーで文法上の間違いは潰して、
パーミッションはちゃんと設定して、
「jcode.pl」へのパスも適切に設定したので、
サーバーエラーにはならないんですが、上記の数字だけポツンと
表示されるという状態になります。

自作掲示板のソース:
http://www.neverland.to/~ryo_f/sky_board.txt
実際の掲示板CGI:
http://www.neverland.to/cgi-bin/chat/RF-cgi/sky_board.cgi
参考までに、スキンHTMLファイルのソース:
http://www.neverland.to/~ryo_f/sora_skin.txt

きちんと掲示板画面が表示される状態にしたいのですが、
どうやればいいかわからず迷っています。

多忙の所申し訳ありませんが、改善策を教えていただけませんでしょうか。
よろしくお願いいたします。
ではでは。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Win95系
エディタ:秀丸エディタ
FTPソフト:FFFTP
サーバ移転:していない
改造:している 改造前不動
CGI習熟度:advanced

回答者 しあわせのツボ  [削除]  投稿日 12/24(火) 20:16:24
たぶんこれでしょう。

## ヘッダ,フォーム,親ログ,フッタに分割
 ($s_head,$s_form,$s_p_log,$s_hoot) = split(/<!-- skin_cut -->/,@sora);

スカラーに対して用いる関数splitを、@soraという配列に対して使っています。
Perlはスカラー値「配列の要素数」を返し、それがsplitされた結果
$s_head,$s_form,$s_p_log,$s_hootにはそれぞれ
「@soraの要素数」「空白」「空白」「空白」が入ります。
HTMLの内容としてprintされているのはこの4つの変数だけなので、
最終的にスキンファイルの行数である83とだけ出力されている訳です。

配列を分割する方法を考えてみるのも面白いですが、

## スキンファイル読み込み

の所で
@sora = <SKIN>;
を
$sora .= $_ while <SKIN>;
に変更し、splitにかけるのをスカラー変数$soraにすれば、
とりあえずはご所望の動作になると思います。
質問者 Ryo Fujita  [削除]  投稿日 12/24(火) 21:23:28
指摘されたところを修正したところ、
一応、スキンの内容を表示させることが出来ました!

しあわせのツボさん、有り難うございました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技