2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

bbs.cgi開発【WebProg板】

1 :nobodyさん:02/04/19 08:10 ID:20PTEIcN
http://qb.2ch.net/test/read.cgi/jikken/1017071166/l50

2ちゃんねるの、bbs.cgiが、現在住民の手により作られているようです。
WebProg板でも、改良に役立つように、協力しませんか?

2 :nobodyさん:02/04/19 08:49 ID:???
【bbs.cgiのメインフロー】
 1、システム関連設定(タイムゾーン&日付・時刻&連想配列)
 2、POST入力情報を取得($FORM{}に格納)
 3、入力要素の体裁(コントロールコードや<>を除く)
 4、各種ファイルPATH生成(詳細は下記参照)
 5、設定ファイルから規制などを設定(詳細は下記)
 6、ホスト情報($HOST・$PROXY・$IP)
 7、クッキー発行
 8、書きこみ状態のチェック&補完(monazilla&携帯)
 9、書き込み情報のチェック&補完(トリップ&キャップ&節穴&名無し)
10、エラーレスポンス(ポスト情報の判定)
11、要素ごとのサイズや入力の判定(長さや入力無し)
12、ポートチェック
13、新規スレッドと普通書き込みの分岐
14、レス書き込みまたはスレッド立て規制
15、書き込み情報設定(レスポンスアンカー・ID)
16、DATファイルへ書き込み(.dat)
17、関連ファイルの更新(.html・subject・subback・iモード)
18、index.htmlの更新(圧縮)

3 :nobodyさん:02/04/19 08:49 ID:???
【変数の指定】
use vars qw(%FORM);入力情報
use vars qw(%SETTING);設定情報
use vars qw($NOWTIME);現在の時間
use vars qw($DATE);表示日付
use vars qw($IP);ホスト情報(生?)
use vars qw($PROXY);ホスト情報(プロクシ)
use vars qw($HOST);ホスト情報($IP<$PROXY>)
use vars qw($PATH);$PATH = "../" . $FORM{'bbs'} . "/";(板アドレス)
use vars qw($DATPATH);$DATPATH = $PATH . "dat/";(データディレクトリ)
use vars qw($TEMPPATH);$TEMPPATH = $PATH . "html/";(テンポディレクトリ)
use vars qw($INDEXFILE);$INDEXFILE = $PATH . "index.html";
use vars qw($INDEXGZFILE);$INDEXGZFILE = $PATH . "index.html.gz";
use vars qw($SUBFILE);$SUBFILE = $PATH . "subback.html";
use vars qw($SUBGZFILE);$SUBGZFILE = $PATH . "subback.html.gz";
use vars qw($IMODEFILE);$IMODEFILE = $PATH . "i/index.html";
use vars qw($DATAFILE);データファイル
なお、これらについては、変数自体を使わないという選択もありです。

4 :nobodyさん:02/04/19 09:06 ID:???
#!/usr/local/bin/perl

use strict 'vars';



# とりあえずな感じ。
# last modified 2002年 3月 17日 by トオル

use vars qw($version);
$version ="2002年";



#====================================================
# システム関連設定(タイムゾーン)
#====================================================
use vars qw(%FORM);
use vars qw(%SETTING);
use vars qw($NOWTIME);
$NOWTIME = time;

# タイムゾーンをセットする
{
   $ENV{'TZ'} = "JST-9";
}
# シグナル対処関数
sub SigExit {
   exit(0);
}
{
   $SIG{'PIPE'} = $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "SigExit";
}


5 :nobodyさん:02/04/19 09:07 ID:???
use vars qw($IP);
use vars qw($HOST);
use vars qw($PROXY);

$IP = $ENV{'REMOTE_ADDR'};
$IP = gethostbyaddr(pack('c4',split(/\./, $IP)), 2) || $IP;
if ($ENV{'HTTP_VIA'} =~ s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/) {
   $PROXY = $ENV{'HTTP_VIA'};
}
if ($ENV{'HTTP_X_FORWARDED_FOR'} =~ s/^(\d+)\.(\d+)\.(\d+)\.(\d+)(\D*).*/$1.$2.$3.$4/) {
   $PROXY = $ENV{'HTTP_X_FORWARDED_FOR'};
}
if ($ENV{'HTTP_FORWARDED'} =~ s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/) {
   $PROXY = $ENV{'HTTP_FORWARDED'};
}
$PROXY = gethostbyaddr(pack('c4', split(/\./, $PROXY)), 2);
$HOST = $IP;
$HOST .= "<$PROXY>" if ($PROXY);

6 :nobody:02/04/19 09:26 ID:???
一回聞いてみたかったんだけど、こういうスクリプトで
CGI.pmをわざわざ使わないようにする理由ってなに?
どうせならCGI.pmとか色々モジュール使いーの、perl5.6.1使いーの
したほうがよろしいような気がするのですが。

7 :nobodyさん:02/04/19 13:08 ID:???
利用者の多いところでCGI.pmは得策ではないだろう。(mod_perlなら話は別だが)
ただ大量のvarsはいただけないな。
Perl5.6なら"our $var = initvalue"で済むものが見苦しすぎる。

8 :nobodyさん:02/04/19 16:41 ID:eKZPn7So
2chのbbs.cgiってPerlで書かれてるの?
C言語で作られてるって聞いたんだけど・・・・

9 :nobodyさん:02/04/19 16:45 ID:???
>>8
read.cgiはC

10 :nobody:02/04/20 07:52 ID:???
CGI::Simple なんてどうだろう。作者によると同機能でCGI.pmの2倍は速い
との事だけど。

11 :aki:02/04/20 08:19 ID:???
>>10
これかな。
http://tachyon.perlmonk.org/modules/html/CGI-Simple.htm

12 :nobodyさん:02/04/20 09:19 ID:???
そうそう、それよりもう少しあたらしいのがこっち

http://search.cpan.org/search?dist=Cgi-Simple

(↑ただしドキュメンテーションがない模様・・・)

13 :nobodyさん:02/04/20 11:03 ID:???
he.netで使ってるPerlのバージョンは全部5.004_01な模様なので
そこらへんも考慮しなきゃ、、

14 :nobodyさん:02/04/20 12:22 ID:???
perlのバージョンなんてどうやて調べんのよ?
http://oyster.2ch.net/test/check.cgi

15 :nobodyさん:02/04/20 14:01 ID:???
CGI::Simple見てみた。
が、バグが多すぎてまだ実用レベルではないね。
例えば、パラメタのキーに".globals"などのメタデータのキーが入ってるとクラッシュする。
(場合によってはクラッシュせずに予想外の動作をするものもある)
これじゃCGI.pm v3.xの方がまだマシだね。

16 :nobodyさん:02/04/20 16:55 ID:???
速いにこしたことはないけどCGI.pmを使いたくないほど過酷な環境
ならPerlCGIをやめたほうがいいと思うのだが。

17 :nobodyさん:02/04/20 17:27 ID:???
mod_perlマンセー

18 :nobodyさん:02/04/20 21:59 ID:???
CGI.pmを使っても全く影響が感じられないような素晴らしい環境なんてそうは無いだろ。


19 :nobodyさん:02/04/22 09:43 ID:J+MAbrVW
http://www8.ocn.ne.jp/~hoehoe/bbscgi.txt

bbs.cgiのソースです。

20 :nobodyさん:02/04/22 11:06 ID:???
で、なにを改良するんさ?

21 :nobodyさん:02/04/22 11:08 ID:???
この板が激しく適切ですね

22 :aki:02/04/22 12:02 ID:???
(´-`).oO(なんか、実験板方面が閉鎖的なんだよなぁ……。)

23 :nobodyさん:02/04/22 17:13 ID:???
>>22
(´-`).。oO(禿げ同・・)
 

24 :nobodyさん:02/04/22 21:03 ID:oJQeFi6r
実験場とは別に、この板で作ってみるとか。
2ちゃんねるで使われるかどうかは別にして。

25 :nobodyさん:02/04/23 01:31 ID:Og/loODO
一応リンク

monazilla Part 3
http://pc.2ch.net/test/read.cgi/tech/1012544484/l20

2ちゃん専用ブラウザ「かちゅ〜しゃ」Part60
http://pc.2ch.net/test/read.cgi/software/1018022445/l20

2ちゃんねる用ブラウザ「ホットゾヌ」 Part10
http://pc.2ch.net/test/read.cgi/software/1018096103/l20

2ちゃんねる用ブラウザ「A Bone」Vol.15
http://pc.2ch.net/test/read.cgi/software/1017916153/l20

新鋭2ちゃんねるブラウザ「Jane2ch」 part 3
http://pc.2ch.net/test/read.cgi/software/1016550175/l20

2ちゃんねる用ブラウザ「ギコナビ」 Part2
http://pc.2ch.net/test/read.cgi/software/1015310037/l20


26 :aki:02/04/23 16:38 ID:???
>>24
賛成。
とりあえずおおざっぱな方針かな?

個人的には、もはや軽量化はどうでもよくて、
「使いやすい」2ch互換スクリプトにしたいところ。
もちろん、無駄は省かれるべきだけど。

27 :nobodyさん:02/04/23 20:42 ID:M/9S6Mh9
age

28 :nobodyさん:02/04/25 00:36 ID:Dqy3iBWZ
>>26
じゃあ、このbbs.cgiを参考にしつつ、
17氏スクリプトを作りつつ、使いやすい2ch掲示板クローンを作るって方向でどうですか?
17氏が引退して、「2chスクリプトくれくれ君」が増えてうざいし。。

29 :nobodyさん:02/04/25 00:44 ID:mY6Jeycp
http://tolkien.s7.xrea.com/paranoia/

全部perlで1から作り上げたらしいよ。

30 :nobodyさん:02/04/25 01:32 ID:EeJjolbS
というか、どう考えても17氏スクリプトと2ch互換は、転送量とか考えたら設計が古くてだめでしょ。
アハンと12chくらいじゃないかな?

31 :nobodyさん:02/04/25 11:32 ID:???
完全なクローンなんて作っても仕方ない。
プロトコル互換の「もっとずっと使いやすい」BBSを設計してみてはどうだろう。

.
.
.
.
.
.

でも専用ブラウザで見るなら同じことなんだよな。

32 :nobodyさん:02/04/28 01:08 ID:???
>>30-31


bbs.cgi開発【WebProg板】

1 :nobodyさん :02/04/19 08:10 ID:20PTEIcN
http://qb.2ch.net/test/read.cgi/jikken/1017071166/l50

2ちゃんねるの、bbs.cgiが、現在住民の手により作られているようです。
WebProg板でも、改良に役立つように、協力しませんか?

33 :nobodyさん:02/05/05 22:52 ID:dTR58Yl2
ちょっと話は違うけど、PHPとDBを利用して作ったほうが
負荷も少なく、早くて、しかもログが壊れにくいと思うんだけど、
どうなんでしょうか。

34 :nobodyさん:02/05/05 23:01 ID:???
んでもひろゆきとかドル猫達はいじれない罠

35 :nobodyさん:02/05/05 23:46 ID:???
漏れはperlがなんとなく好きなんだが、
速さとかを突き詰めていけばphpとかそういう方向に行くんだろうな

36 :nobodyさん:02/05/06 00:03 ID:???
>>35
phpって速いの?Perlより遅い気がするんだけど。
もしかして4.2xは速いの?

37 :nobodyさん:02/05/06 00:18 ID:???
>>36
モジュル版が速いって事では?

38 :nobodyさん:02/05/06 00:59 ID:???
>>36
mod_perlを使えばperl早いけど、
夜勤さんが使わないっていってるからなぁ。

39 :nobodyさん:02/05/06 23:09 ID:???
c++

40 :nobodyさん:02/05/06 23:18 ID:???
++c;

41 :nobodyさん:02/05/07 08:43 ID:???
+c+

42 :nobodyさん:02/05/07 08:43 ID:???
(+c+)

43 :名無しだよもん:02/05/07 08:50 ID:???
>>42 >>http://pc.2ch.net/test/read.cgi/php/1019673146/

44 :nobodyさん:02/05/07 08:50 ID:???
>>43
(+c+)b

45 :nobodyさん:02/05/07 09:52 ID:???
コラボ ワラタヨ

46 :nobodyさん:02/05/08 03:10 ID:???
test
http://isweb43.infoseek.co.jp/art/mm2ch/cgi-bin/admin/kanri.cgi

47 :aki:02/05/08 03:51 ID:???
これなに?
なんかとても面白そうな雰囲気が。

48 :nobodyさん:02/05/08 16:36 ID:???
>>46
ほー。いいねそれ。

49 :nobodyさん:02/05/09 14:48 ID:???
>>46
17スクリプトだろ、、、

50 :nobodyさん:02/05/10 14:23 ID:???
それはどうかな。

51 :nobodyさん:02/10/03 16:43 ID:???
ここでいいのかな

トリップをメール欄に書くとおかしくなるの既出?
例えば、
名前[#hogehoge]メール欄[sage]
   →名前[ ◆/Re6aTC.]メール欄[sage]
名前[#hogehoge]メール欄[sage #hogehoge]
   →名前[ ◆jG/Re6aTC.]メール欄[sage]

52 :nobodyさん:02/10/03 16:46 ID:???
>>51
昨日からトリップ10桁になったんだよ
メール欄とは無関係、メール欄の#以降が削除されるのは以前からの仕様

53 :nobodyさん:02/10/03 16:49 ID:???
ホントだ。
思い切り誤解ですた。ごめんなさい。

54 :nobodyさん:02/11/04 15:34 ID:???
>>1の軽量化コンペのログ、HTML化されてた模様
http://ooo.2ch.net/jikken/kako/1017/10170/1017071166.html

55 :nobodyさん:02/11/14 15:48 ID:???
843 名前:夜勤 ★ 投稿日:02/11/14 15:22 ID:??? ???
ex , ex2 うまくいっているのかなぁ。
結局は、極端にいえば「もう一行も bbs.cgi にはコード追加できません」
ってことのような感じ、もちろんコードの内容にもよりますけど。

人が増えすぎて、コードを削らなきゃならない段階のようです。

解決策は
(1) コードを削る。
(2) サーバを増設する。

ということでしょうが、どっちにしろ なんともかんとも


さーおまいら出番ですよ。

56 :nobodyさん:02/11/29 01:10 ID:???
夜勤って頭悪いと思う。

57 :ゆかりぼん:02/12/28 22:19 ID:mkbLi1ni
うん。

58 :nobodyさん:02/12/29 00:49 ID:kIUCOKS/
>>55
夜勤が本気でそんなこと言ってるなら夜勤は真性のアフォ。

59 :nobodyさん:02/12/29 04:37 ID:???
「サーバを増設したいから、●買ってくれ」が正解。

60 :山崎渉:03/01/15 13:39 ID:???
(^^)

13 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)