bbs.cgi開発【WebProg板】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/19 08:10ID:20PTEIcN2ちゃんねるの、bbs.cgiが、現在住民の手により作られているようです。
WebProg板でも、改良に役立つように、協力しませんか?
0002nobodyさん
02/04/19 08:49ID:???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の更新(圧縮)
0003nobodyさん
02/04/19 08:49ID:???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);データファイル
なお、これらについては、変数自体を使わないという選択もありです。
0004nobodyさん
02/04/19 09:06ID:???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";
}
0005nobodyさん
02/04/19 09:07ID:???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);
0006nobody
02/04/19 09:26ID:???CGI.pmをわざわざ使わないようにする理由ってなに?
どうせならCGI.pmとか色々モジュール使いーの、perl5.6.1使いーの
したほうがよろしいような気がするのですが。
0007nobodyさん
02/04/19 13:08ID:???ただ大量のvarsはいただけないな。
Perl5.6なら"our $var = initvalue"で済むものが見苦しすぎる。
0008nobodyさん
02/04/19 16:41ID:eKZPn7SoC言語で作られてるって聞いたんだけど・・・・
0010nobody
02/04/20 07:52ID:???との事だけど。
0011aki
02/04/20 08:19ID:???これかな。
http://tachyon.perlmonk.org/modules/html/CGI-Simple.htm
0012nobodyさん
02/04/20 09:19ID:???http://search.cpan.org/search?dist=Cgi-Simple
(↑ただしドキュメンテーションがない模様・・・)
0013nobodyさん
02/04/20 11:03ID:???そこらへんも考慮しなきゃ、、
0014nobodyさん
02/04/20 12:22ID:???http://oyster.2ch.net/test/check.cgi
0015nobodyさん
02/04/20 14:01ID:???が、バグが多すぎてまだ実用レベルではないね。
例えば、パラメタのキーに".globals"などのメタデータのキーが入ってるとクラッシュする。
(場合によってはクラッシュせずに予想外の動作をするものもある)
これじゃCGI.pm v3.xの方がまだマシだね。
0016nobodyさん
02/04/20 16:55ID:???ならPerlCGIをやめたほうがいいと思うのだが。
0017nobodyさん
02/04/20 17:27ID:???0018nobodyさん
02/04/20 21:59ID:???0019nobodyさん
02/04/22 09:43ID:J+MAbrVWbbs.cgiのソースです。
0020nobodyさん
02/04/22 11:06ID:???0021nobodyさん
02/04/22 11:08ID:???0022aki
02/04/22 12:02ID:???0024nobodyさん
02/04/22 21:03ID:oJQeFi6r2ちゃんねるで使われるかどうかは別にして。
0025nobodyさん
02/04/23 01:31ID:Og/loODOmonazilla 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
0026aki
02/04/23 16:38ID:???賛成。
とりあえずおおざっぱな方針かな?
個人的には、もはや軽量化はどうでもよくて、
「使いやすい」2ch互換スクリプトにしたいところ。
もちろん、無駄は省かれるべきだけど。
0027nobodyさん
02/04/23 20:42ID:M/9S6Mh90028nobodyさん
02/04/25 00:36ID:Dqy3iBWZじゃあ、このbbs.cgiを参考にしつつ、
17氏スクリプトを作りつつ、使いやすい2ch掲示板クローンを作るって方向でどうですか?
17氏が引退して、「2chスクリプトくれくれ君」が増えてうざいし。。
0029nobodyさん
02/04/25 00:44ID:mY6Jeycp全部perlで1から作り上げたらしいよ。
0030nobodyさん
02/04/25 01:32ID:EeJjolbSアハンと12chくらいじゃないかな?
0031nobodyさん
02/04/25 11:32ID:???プロトコル互換の「もっとずっと使いやすい」BBSを設計してみてはどうだろう。
.
.
.
.
.
.
でも専用ブラウザで見るなら同じことなんだよな。
0032nobodyさん
02/04/28 01:08ID:???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板でも、改良に役立つように、協力しませんか?
0033nobodyさん
02/05/05 22:52ID:dTR58Yl2負荷も少なく、早くて、しかもログが壊れにくいと思うんだけど、
どうなんでしょうか。
0034nobodyさん
02/05/05 23:01ID:???0035nobodyさん
02/05/05 23:46ID:???速さとかを突き詰めていけばphpとかそういう方向に行くんだろうな
0039nobodyさん
02/05/06 23:09ID:???0040nobodyさん
02/05/06 23:18ID:???0041nobodyさん
02/05/07 08:43ID:???0042nobodyさん
02/05/07 08:43ID:???0043名無しだよもん
02/05/07 08:50ID:???0045nobodyさん
02/05/07 09:52ID:???0046nobodyさん
02/05/08 03:10ID:???http://isweb43.infoseek.co.jp/art/mm2ch/cgi-bin/admin/kanri.cgi
0047aki
02/05/08 03:51ID:???なんかとても面白そうな雰囲気が。
0050nobodyさん
02/05/10 14:23ID:???0051nobodyさん
02/10/03 16:43ID:???トリップをメール欄に書くとおかしくなるの既出?
例えば、
名前[#hogehoge]メール欄[sage]
→名前[ ◆/Re6aTC.]メール欄[sage]
名前[#hogehoge]メール欄[sage #hogehoge]
→名前[ ◆jG/Re6aTC.]メール欄[sage]
0053nobodyさん
02/10/03 16:49ID:???思い切り誤解ですた。ごめんなさい。
0054nobodyさん
02/11/04 15:34ID:???http://ooo.2ch.net/jikken/kako/1017/10170/1017071166.html
0055nobodyさん
02/11/14 15:48ID:???ex , ex2 うまくいっているのかなぁ。
結局は、極端にいえば「もう一行も bbs.cgi にはコード追加できません」
ってことのような感じ、もちろんコードの内容にもよりますけど。
人が増えすぎて、コードを削らなきゃならない段階のようです。
解決策は
(1) コードを削る。
(2) サーバを増設する。
ということでしょうが、どっちにしろ なんともかんとも
さーおまいら出番ですよ。
0056nobodyさん
02/11/29 01:10ID:???0057ゆかりぼん
02/12/28 22:19ID:mkbLi1ni0058nobodyさん
02/12/29 00:49ID:kIUCOKS/夜勤が本気でそんなこと言ってるなら夜勤は真性のアフォ。
0059nobodyさん
02/12/29 04:37ID:???0060山崎渉
03/01/15 13:39ID:???0061nobodyさん
03/02/16 00:43ID:???誰かまじめにbbs.cgi開発する人いないの?
0064nobodyさん
03/02/16 19:20ID:???っていうのは置いておいて、真面目にやっている人がいるなら
ソースコードを提供してもいいよ。ただし再配布は禁止。
どうよ?
0065nobodyさん
03/02/16 19:28ID:???フリーメールはNGです。
kigaru2@kigaru2.net
(正体ばればれだなぁ。)
006763
03/02/16 22:18ID:???0069nobodyさん
03/02/16 23:19ID:???どあほー^^;
0071nobodyさん
03/02/18 20:43ID:pPA3E1lhhttp://pc.2ch.net/test/read.cgi/unix/1044371176/826
0072nobodyさん
03/02/18 21:52ID:???0073nobodyさん
03/02/18 22:17ID:???勉強してみるか(お。
0074山崎渉
03/03/13 17:13ID:???0075山崎渉
03/04/17 12:24ID:???0076nobodyさん
03/04/17 12:33ID:9xDxcLAxhttp://jbbs.shitaraba.com/computer/bbs/read.cgi?BBS=2095&KEY=1050545010
夜勤さんが助手を募集しているらしい。
来たれ猛者。
http://www.kigaru2.net/cbp/
0078山崎渉
03/04/20 06:04ID:???( ^^ )< ぬるぽ(^^)
0080nobodyさん
03/04/20 23:39ID:???PATHINFO対応に改造するにはどうすればいいでつか?
0082 ◆garnetGnNk
03/05/05 19:13ID:o0tvPWt6一応動くんだけどなー。
誰か試してくれないかなー。
0083nobodyさん
03/05/05 19:20ID:uopb4ZqDこれはbbs.cgiをCで書いたやつとかですか?
0084 ◆garnetGnNk
03/05/05 20:13ID:o0tvPWt6まだ足りない機能もあるけど^^;
0085nobodyさん
03/05/05 21:06ID:xzfVtRncダウンロードとコンパイル出来ました。
RedHat8です。
2ch初心者で申し訳無いんですけど、起動の方法がわかりません。
「ERROR:POSTしてください!」とか出ました。
0086動画直リン
03/05/05 21:10ID:lHdchtO/0087 ◆garnetGnNk
03/05/06 07:24ID:VK0iAUmqgcc -O2 -Wall -o bbs.cgi bbs.c
とやればいいと思ふ。
>85
コンソールじゃなくて、CGIで起動しているんだよね?
環境変数がセットされてないのかなぁ?
ごめん、よくわからないや^^;
0088nobodyさん
03/05/06 09:35ID:???staticのついていない関数の宣言はヘッダーファイルでした方がいいよ。
getenvがNULLを返さないかどうか監視しないと、strcmp等で悲惨な結果を生むことがあるだろう。例え(環境変数が)定義されていないはずがないと思っても。
もしもデコード対象の文字列が%で終わっていたらhex_packでまずいことになるかもね。hex_packでもきちんと文字列をチェックするか、decodeで2バイトstrncpyしてstrtolするといいよ。
mallocの戻り値をチェックしているところもあればしていないところも・・・
ところで、なんで*.hファイル(ヘッダーファイルだよね?)で関数の定義をしているの?(^_^;)
>>85
書き込み用のフォームを用意していないからでしょ。直接bbs.cgiにアクセスすればそりゃあそのエラーが出るよ。
あとはPOSTじゃなくて小文字でpostだったりすると(そこは非標準関数のstrcasecmpを使えばうまくゆくね)。
>>87
コンソールから起動すれば多分Segmentation Faultが出るよ(理由は上述)。
0089nobodyさん
03/05/06 11:12ID:ODhBfC+QSETTING.TXTが2chとは違うようだけど。
0090 ◆garnetGnNk
03/05/06 11:17ID:VK0iAUmq突っ込み多謝ですm(_ _)m
>ところで、なんで*.hファイル(ヘッダーファイルだよね?)で関数の定義をしているの?(^_^;)
他のコードを書くのに便利そうな関数は別ファイルにしようかなぁと。
それなら*.cにしる!ってことなんですけれども^^;
0091 ◆garnetGnNk
03/05/06 11:20ID:VK0iAUmq実験室仕様です。
2chに合わせるにはbbs.hを書き換えればいいと思います。
若干(でもないけど)テンポラリファイルの仕様も違うけど、
多分大丈夫^^;
0092nobodyさん
03/05/06 13:26ID:ODhBfC+Q書き換えるのがめんどいのでSETTING.TXTもアップしてけろ
0093nobodyさん
03/05/06 13:27ID:???0094 ◆garnetGnNk
03/05/06 14:00ID:VK0iAUmq88さんの指摘と、ID生成部分の修正、DATファイルの書き込み判定を追加。
>92
http://www90.sakura.ne.jp/~hoehoe/temp/kigaru/SETTING.TXT
bbs.hの書き換えは俺も面倒い^^;
>93
文字列を分割する処理だよね?<パース
これのことではない?
value = split( key, '=' );
split( value, '\n' );
0095nobodyさん
03/05/06 21:29ID:???0096nobodyさん
03/05/17 23:03ID:KafpXCdl■ 新しいサーバで read.cgi が正しく動かない問題。
http://qb.2ch.net/test/read.cgi/operate/1047840578/
bbs.cgi 再開発プロジェクト
http://qb.2ch.net/test/read.cgi/operate/1053067870/
0098山崎渉
03/05/22 02:01ID:???0099山崎渉
03/05/28 17:20ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0100コナン ◆Hj.s1.SYl2
03/06/01 18:47ID:??? ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
01014 ◆Vqdc2LXgwQ
03/07/05 09:28ID:???ワラタ
ところで話変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)
このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。
この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。
突然こんな事いいだしてすまそ・・
GBAと比べてみてどうなんでしょうか?(シェアのことは抜きで)
■ このスレッドは過去ログ倉庫に格納されています