プロが教える店舗&オフィスのセキュリティ対策術

静的HTMLで出力可能なスレッド式掲示板のスクリプトを教えてください。
レンタルではなく、自分で用意したサーバーに設置するタイプのものです。
このサイトのような掲示板が理想的です。
www.e-mansion.co.jp
musyoku.com/bbs
PHP SQL CGIなどではなく、CMSなどを利用しているのでしょうか?
よくある2ちゃんねる型スクリプトのように、read.cgiで出力してないスレッド式のものはありますか?
出力したhtmlに、最終投稿日時を表示させているものが望ましいです。

A 回答 (2件)

質問の意味がわかりませんが、静的HTMLを誤解されているように見受けます。


Windows使いだと、拡張子に束縛されている可能性が大きい。
PHP:スクリプトを使用した動的なサイトを作るとき
SQL:データベースのことです。PHPからも他の言語からも使える
CGI:Perl,AWK,C,C++,C#など標準入力,環境変数が扱える言語なら何でも
CMS:CGIの一種と考えても良いし、PHPでも構築できます。
 これらはすべて、まったく異なる概念です。

 サーバーにページを要求するときに、サーバーに渡すデータは
PATH_INFO・・・サーバー名以降 http://hoge.com の後に続く文字で?より前
QUERY_STRINGS・・・・?以降の文字列で#があればそれより前。GETのとき
標準入力(STDIN)・・・標準入力要求ヘッダー以降に連続した改行以降。POSTのとき
        これはURL欄に現れない

 拡張子を含めてPATH_INFOは単なる情報です。それをサーバー側のプログラム(CGIでもPHPでも)がデータとして処理すれば良いのです。拡張子なんてのは完全にそのひとつで意味はありません。
[例]たとえば、URLに今日の日付やあなたの名前を含めたければ
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/arisa …
だろうと
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/20130 …
だろうと
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/20130 …

だって構わないのです。(最後のものは質問文自体がURLに含まれているはず)

言い換えれば、
read.cgiというファイル名+拡張子には、まったく無関係なのです。
CGIにしろPHPにしろ、任意の拡張子(あるいは拡張子なしでも)でCMS(掲示板もCMSのひとつ)を実行できます。
 スレッド式のCGIなりCMSなりを探してきて、PATH_INFOなり、QUERY_STRINGSから要求を拾い出せるよう書き直せばよいです。

>出力したhtmlに、最終投稿日時を表示させているものが望ましいです。
 新聞社のサイトなんかはそうなってますね。

 一般に配布されているもので、URL欄に表示するものは少ないと思います。ただ難しくはありません。
 Perlだと、$ENV{'QUERY_STRING'}となっている部分に$ENV{'PATH_INFO'}の処理を加えるだけです。

この回答への補足

>質問の意味がわかりませんが
単純に、すべてのページをhtmlで出力するスレッド型掲示板はありますか?という意味です。
CGIやPHPでフォームを受け渡してもなんでもかまいませんが、htmlで出力するフリーのスクリプトを探しています。

補足日時:2013/03/05 22:56
    • good
    • 0

>htmlで出力するフリーのスクリプトを探しています。


 ですから、これはとても簡単で、例えばboard.cgiという、気に入ったスレッド型の掲示板を見つけたとします。
 そのスクリプトの拡張子をboard.htmlに変更します。そして、それが置かれているディレクトリに
AddType application/x-httpd-cgi board.html ;
と書いた.htaccessファイルをおきます。
 これで、そのディレクトリ以下では、board.htmlはCGIとして動作します。

>出力したhtmlに、最終投稿日時を表示させているものが望ましいです。
 これが、urlの末尾が日付.html [例] /board/20130310.html というものがお望みなら
AddType application/x-httpd-cgi board ;
 としておいて、boardというファイルがCGIとして動作するようにするのです。
 そして、ユーザーが/board/20130310.htmlを要求してくると、20130310.htmlなんてファイル(もディレクトリも)はありませんから、サーバーはこの[/20130310.html]という情報を環境変数{PATH_INFO]に格納して、その上のboardを探します。.htaccessでCGIだと指定されているので、boardに他の環境変数と共にデータを渡して、boardに処理を引き継ぎます。
 boardは、手を加えて$ENV{'PATH_INFO'}を処理して、(しなくても構いませんが)HTTP応答ヘッダーに
 content-type: text/html;
をつけてHTMLを出力します。URL欄は、/board/20130310.htmlになっているはずです。

 拡張子やパスと言うものを一旦忘れてください。
    • good
    • 0

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