せっかくだからPHPで掲示板作ってみませんか?
■ このスレッドは過去ログ倉庫に格納されています
0001⊂(´ー`⊂⌒ヽつ
NGNG結構回線食ってますんで、できれば軽い掲示板を使って欲しいです
0237名無しさん@お腹いっぱい。
02/01/19 13:40ID:???再帰呼び出ししてます。
・[ 1 ] 逝ってヨシ *0
・[ 2 ] あぼーん *1
・[ 4 ] あぼーん*2
・[ 3 ] ワショーイ *1
0238nobodyさん
02/03/29 09:41ID:???0240nobodyさん
02/03/30 11:55ID:???0241nobodyさん
02/08/09 14:18ID:???http://bbs.rakusagashi.com/free/sample/bbs.php?db=sample
↑の掲示板、メールアドレス入力するところに
'>'>'>">">'>">'><IMG src='mailto:unko.ne.jp'><xmp>
って入力して投稿するとローカルでのみ、凄い事になるんだけど・・・。
他にもこの掲示板にセキュリティホールありますか?
教えて君でスマソ。
0242nobodyさん
02/08/19 10:07ID:???0243nobodyさん
02/08/19 10:12ID:???0244nobodyさん
02/10/27 04:08ID:ZBwddCFf0246nobodyさん
02/11/09 17:59ID:FW57v7fVごめんなすわぁい
0247nobodyさん
02/11/09 18:16ID:2u49zYCGhttp://cgi.aaacafe.ne.jp/
PHPなら これで十分
0249nobodyさん
02/11/10 03:38ID:CKDMXs5s厨でもCGIが使えるよ
これ使えばね
0250nobodyさん
02/11/11 20:27ID:???0251nobodyさん
02/11/12 17:44ID:84Orx8vW0252nobodyさん
02/11/17 00:06ID:rKD6R3WV教えて下さい。あと、素材があったら貼っといて下さい。
0253nobodyさん
02/11/17 00:37ID:???さっさと責任取ってくれんか?クソ人間。
2chの掲示板は何を使ってますか?
http://pc.2ch.net/test/read.cgi/php/1037459580/l50
各位。
PHPで掲示板なら昔作ったけど。ソースいる?
0254nobodyさん
02/11/17 23:26ID:qfDL9fIH0257nobodyさん
02/12/06 10:10ID:???0258でもさぁ
02/12/06 15:56ID:???便利そうな関数がごまんとあるし(perlでも多いと思ったのに・・)
データベースをそこそこさわり始めるとある程度の事までは
わかるんだけど、バキュームとかバックアップやらの事が出てきはじめると
ワケワカメになる。
掲示板とかでDB使うとそうとうグシャグシャな状態になりそうな気が
するんだが、大丈夫なもんなのか?
容量の問題もあるし・・・
0259でもさぁ
02/12/06 16:01ID:e3P89aGIテーブルの構造はどんな感じになるんだろうか?
PHPの側からテーブル作ったりできんのか?
なんかイメージするにスレッド毎にテーブルがあった方が
スッキリ管理しやすいようにおもうんだが、、、、、
でも、それじゃぁDB使う意味ないのか?
まぁ、厨房の独り言でし。
0260nobodyさん
02/12/06 16:19ID:???PHPに5万も標準の関数はありませんとか言ってみるテスト
>もし、2ch型の掲示板をPHP+RDBMで作る場合、
>テーブルの構造はどんな感じになるんだろうか?
1つの板につきスレッドテーブルと記事テーブルを各1個
0261でもさぁ
02/12/06 19:13ID:e3P89aGIそんだけでいいんだ。そうだよなぁDBでしかもリレーショナルだもんね(ワ。
漏れがPerlで作ったBBSはしこたまファイルが出来るから
dataやらのディレクトリをのぞく度に鬱になる。
0262nobodyさん
02/12/06 19:15ID:???Perl + CGI
って何?
0263nobodyさん
02/12/06 19:25ID:e3P89aGIそれは、もしかしてPerl + CGIの事ですか?
0265nobodyさん
02/12/06 22:09ID:???親スレで検索すればいいだけじゃん。テーブルを分ける必要は無いと思うのだが。。
0266でもさぁ
02/12/06 23:13ID:e3P89aGIスレッドのデータがグチャグチャに入ってて、そのグチャグチャを
DBは一生懸命検索しなきゃいけないわけでしょ。
もし、1スレッドに1テーブルだと検索する手間が省けてかなり
早くなりそうな気がするんだが・・・・。
メンテ的にも1掲示板で持てるスレッド数が決まっている場合、
さくっとテーブルの削除ができる。
ところでスレッドの順位のテーブルも必要なんじゃないか?
0267265
02/12/06 23:20ID:???検索し、並び替えるのが得意なDBにとって、順番やスレッドがぐちゃぐちゃなんてたいした手間じゃないと思うけどな。
0268nobodyさん
02/12/07 06:29ID:???まさか、perl == CGI とか思ってやしないよな。
と煽り返してみる。
0269workaholic
02/12/07 09:59ID:???あと、like で or な検索連発してみたり(しないか)。
つーか、BBS程度のシステムなのに、絶賛稼動中なロジックの中で create table するのって、
ちょっと正気の沙汰とは思えない、とか。
1スレ=1テーブルって、どういう設計よ。
0270nobodyさん
02/12/07 10:08ID:???>ちょっと正気の沙汰とは思えない
禿同
0271workaholic
02/12/07 10:51ID:???"板コード"をpKeyにして、"スレコード"で別テーブルぶらさげて、
他になんか文言とか付随データをVARCHARでいくつか付けておいて、
その後その別テーブル上に「書き込みindex」をキー、スレコードはfKeyで、
カキコの中身はVARCHAR(256)位でまとめればいいんじゃないのかな。
0272nobodyさん
02/12/07 16:40ID:???テキストファイルだと削除が大変。
漏れは
1) 該当スレのログファイルをオープン
2) ファイル全体を配列に読み込む
3) 該当行を配列から削除
4) 元ファイルに書き込む
5) スレッドインデックスファイルの「レス数」を変更
という風にやっています。
なんかいい方法ありませんかね。
0273workaholic
02/12/07 17:43ID:???その処理って、ナニでやってるの?Perl?
オレは基本的にJava野郎で、Perlはすでにウロ覚え状態です。
前にServlet(&JSP)で、個人的にソレっぽいもの作った時は、
TextFileとして記録されるLogのフォーマットを、HTTPのPOST内容っぽい
(つまりバウンダリ文字列で区分する)形で記録するようにしました。
それ専用の汎用ParserClassを作って、Servletで使用って感じで。
でも、結局TextFileに記録って時点で、あまり凝った事はやりづらいです
よね。
Stringの塊を整形して、取り出す時は部分取得して...。
それでもPerlの場合正規表現は最初からあったけど、JavaにRegExpが標準パッケージ
として含まれたのって最近だし...。
やっぱDBがイイすね。楽。
0274nobodyさん
02/12/08 18:03ID:???1) 該当スレのログファイルをオープン
2) 新しいファイルを作る
ループ{
1) ログファイルから次の「1行ダケ」読み込む
2) 該当行じゃなければ、新しいファイルに行を書込む
}
3) 元ファイルを削除
4) 新しいファイルを元ファイル名に変更
5) 「レス数」とやらを変更
とやるのが一般的だよっと。
世間の参考書は全行読むのが多いよなあ。
出版社にはこの辺チト配慮してほすぃ。
0275272
02/12/08 19:00ID:???どもです。
確かにメモリ食いまくりですね。
私も最初は、
1) インデックスファイルなど小さいモノはそのまま読み込む
2) 大きいモノは1行づつ読み込む
としていましたが、
掲示板の内容をhtmlに書き出すときに、
<html>から</html>まで全部変数に入れて、
一気に書き出す。
という方法をとってからは、ファイル全部読み込むことにしました。
まあ、ログサイズは大きくならないようにしてますけど。
0276272
02/12/08 19:06ID:???たとえば「最新10レスを表示」する場合、
最初の設計時には
1) 最新10レスが何番目のレス(start)から何番目のレス(end)なのかを計算
2) ログファイルをオープン
3) 1行づつ読んで、(1)のstartにきたら内容を配列に読み込む
endにきたらファイルを閉じる
という風に考えていたのですが、
よく考えてみれば、(1)を計算するにはファイルをあけて何行あるかを
feof まで1行づつ読み込むループをして調べなくてはならないですね。
それなら最初から全部読み込んでしまえ。となったわけです。
それからstart、endを計算して、いらない部分を配列から消すと。
0277nobodyさん
02/12/08 19:54ID:???例えば、PHPで初めの10行をとばすなら、
$begin = 10;
while($rec = fgets($FP,'12345') and $begin) {$begin--;}
while($rec = fgets($FP,'12345')) {読み込みたい件数だけ配列に入れてループ抜ける}
Perlかもしれないから一応補足。
while($rec = <FH>) {$begin--; last if(!$begin);}
while($rec = <FH>){読み込みたい件数だけ読み込む}
てな感じでやりなって。
HDへのアクセス時間短縮&メモリ空間になるでしょ。
0278nobodyさん
02/12/08 22:51ID:fkqPp+lS板毎にファイルを2つ作りそれぞれ
A:書き込みに番号を付け1行にまとめて追記
B:スレッドの構造を1スレ1行に書き込み番号を連ねて収納
スレッドを表示する時はB内の所望の行を読み、それに基づきA内の行を吐く。
age処理はBの行の順番を入れ替える。レス削除はBの該当番号を消し、
スレッド削除はBの1行を消す。Aは出来るだけいじらない。
lockの手順とかしっかりしないと嵌る。
SQLはいじった事ないけどねヽ( ´ー`)ノ
0279nobodyさん
02/12/08 23:02ID:???read.cgiではseekするようにしてる。
0280nobodyさん
02/12/08 23:11ID:???2chの発言内容って、htmlタグを全て排除してるじゃないですか。
でも、http://www.yahoo.co.jp
は、別画面が出てくるように、http://***.2ch.net/"""
はスレッドを表示する…
それと、>>n はスレ内のレスを直接表示…と、
よく出来ていると思うのですが、これに近い処理をするPHPやPerlの
ソースはありませんか。Javaで書いてみたいのですが…もしくは、
同じ処理をするJavaソースがあれば教えて下さい。。。
PHPとPerlはうろおぼえでGoogle探しても色々あって、どれがいいのか、はて、、です。
0281nobodyさん
02/12/08 23:19ID:???0283272
02/12/09 16:55ID:???レスありがとうございます。
while($rec = fgets($FP,'12345') and $begin) で and $begin という使い方は知りませんでした。
これは便利ですね。早速使ってみます。
さて、上述の、「ファイルを舐めないと総レス数がわからないので、たとえば「最近10レス」が
どのレスからどのレスまでを計算するには、ファイルを舐めないといけない」を
上手く解決する方法はありますか? この問題さえ解決できれば、必要な行だけを配列に
読み込む方式に移行できます。
よろしくお願いします。
0284nobodyさん
02/12/09 18:37ID:???じゃあ Shift_JIS + html もいいのかw
誰も変だと思わないのか?
0285nobodyさん
02/12/09 19:07ID:???何故最新10レスを計算する必要があるのかナスカの地上絵よりも謎だが、
ツリー形式掲示板なら、記事追加時に記事の情報を別に記録しておくとか
最新記事がファイルの先頭に記録するタイプなら、最初の10件だけ読み込む
2ch式掲示板なら、書込み時にftellして、読み込み時にfseekする
固定長ファーマットにしてランダムアクセスする手もある
そもそも277と279が答え出してるだろ
0287nobodyさん
02/12/09 22:54ID:???別スレでも話題になってるが♪のならこのへん。perlだけね。
ttp://www.onpuch.jp/files/onpuch.zip
0288nobodyさん
02/12/10 01:21ID:???いっぱいファイル開いたり閉じたり面倒で気が遠くなりそうだったんで
DBにしました。DBでも面倒なので放置気味ですが。
2ch型作っても、書き込み少なくてスカスカで見苦しいサイトがほとんどだし
もっと一般人向けの良いアイディアの掲示板ってないですかね。
0290nobodyさん
02/12/12 16:16ID:vEZAWx5Mまだ居るのか期待してageっ!
0291289
02/12/12 23:48ID:???というわけで、ついでに1年以上前のことですが質問させてください。
>>95で
>BbsThread は自分のスレッドの全メッセージにアクセスでき、
てことは、BbsThreadは自分のスレッドの全メッセージを配列で持っているの?
それともメッセージ取得メソッドが呼ばれるたびにファイルを開いて読み込むのかな?
でもそうだとDBを使うかファイルを使うかで変わってくるからMesseageStoreのように
MessageReaderを複数種類用意するってこと??
0293nobodyさん
02/12/13 08:59ID:zYYQGitahttp://news2.2ch.net/test/read.cgi/newsplus/1039690102/l50
グローバルビジョンは、すべてのWebページに勝手に掲示板を作成
できるシステムを開発した。http://www.petitmedia.com/
ここのシステム、PHP+ PostgreSQLでできてるらしい。
0294289
02/12/13 20:00ID:???レスありがとうございます。やはり後者でしたか。
ということはThreadStoreやThreadReaderも複数用意するってことかな。
ああ、電動ナナシ氏作成の掲示板見てみたいなぁ。
0295あし
02/12/20 12:19ID:7MV1a4/S0296nobodyさん
03/01/09 16:27ID:???前に掲示板のクラス設計途中までやったよね
0297289
03/01/13 11:39ID:???http://tohoho.wakusei.ne.jp/soft/wbord.htm
みたいな掲示板作ってみませんか?
これなら簡単そうだし。
>>92 のメッセージクラスも流用できそうだし。
0298山崎渉
03/01/15 13:41ID:???0299nobodyさん
03/02/22 02:01ID:???0300山崎渉
03/03/13 17:13ID:???0301山崎渉
03/04/17 12:24ID:???0302山崎渉
03/04/20 06:09ID:???( ^^ )< ぬるぽ(^^)
0303山崎渉
03/05/22 02:11ID:???0304山崎渉
03/05/28 17:15ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0305ぴえ〜る ◆zowdz.TJ/Q
03/06/06 09:07ID:cm0eL4ze完成したけど、まだまだ付けたい機能あるし、バグチェック不十分だからソース公開してない。
http://earth.s13.xrea.com:8080/obb/index.php
ほいな
0306動画直リン
03/06/06 09:10ID:6EFZr+OJ0308ぴえ〜る ◆zowdz.TJ/Q
03/06/07 04:28ID:???フリーで配布するから、もし見たいなら待ってください。
まだ付けたい機能あるし、バグのチェックが不十分。量も多いし…(汗。
遅くなっても6月中には公開します。
0309ぴえ〜る ◆zowdz.TJ/Q
03/06/07 04:29ID:???0310山崎 渉
03/07/15 11:13ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0311nobodyさん
03/07/17 08:37ID:???.(・∀・ )
と )
ガッ Y /ノ
人 / )
__∧_..< > _/し'_
|(.. `Д´ V (_フ彡
|\⌒⌒⌒\←>>310
\ |⌒⌒⌒~|
0312山崎 渉
03/08/02 02:38ID:???( ^^ )< ぬるぽ(^^)
0313ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:22ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0314山崎 渉
03/08/15 22:56ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0315nobodyさん
04/01/12 23:10ID:???(。・ヮ・);
゚し-J゚
0316nobodyさん
04/01/18 11:29ID:U9Y4F/+3サーバーによっては、書き込みデータに
"(半角ダブルクォーテーション)と'(半角シングルクォーテーション)と\(円マーク、バックスラッシュ)
の文字があると、これらの文字の前に勝手に\マークを挿入して記録してしまうんです。
" → \" ' →\' \→\\
こんな感じに。何が原因なんでしょうか?
0317316
04/01/18 12:00ID:U9Y4F/+3xrea.comサーバーだけは挿入されませんでした。
もちろん、挿入するような処理はスクリプト側では一切やってません。
0318316
04/01/18 12:29ID:U9Y4F/+3ttp://search.net-newbie.com/php/faq.using.html#faq.using.stripslashes
これが原因のようですね。
しかしfwrite関数で書き込みデータをファイルに書き出す直前に
$message = stripslashes($message);を入れてみましたがそれでも\が除去されません。
どうしてでしょうかね?
0320nobodyさん
04/01/18 17:52ID:???取れない事ないっしょ。。。
まずその処理を具体的にどうしてるのか出してみないとなんとも。
ってかここ質問すれじゃないし。
http://pc2.2ch.net/test/read.cgi/php/1073291978/l50
0322nobodyさん
05/02/16 20:26:17ID:N2q6vGgG君は
まず、htmlを覚えた方がいい。
なんだfont sizeって・・・・・
0324nobodyさん
05/02/17 09:23:15ID:???0326nobodyさん
05/02/20 03:38:05ID:???0327nobodyさん
05/02/25 23:26:12ID:???0328NetScape
05/02/27 00:21:12ID:???0329nobodyさん
05/02/28 20:35:01ID:???0330nobodyさん
05/03/06 20:55:44ID:???0331you
2005/09/24(土) 17:25:42ID:xejww78B0332nobodyさん
2005/10/04(火) 19:58:56ID:???view-source:http://pc8.2ch.net/php/
0333nobodyさん
2005/11/06(日) 11:25:46ID:szZvbyxNこのスレ終了 ーーーー
0334nobodyさん
2005/11/14(月) 18:15:04ID:???0335nobodyさん
2007/07/28(土) 03:05:25ID:???0336nobodyさん
2007/08/03(金) 16:40:33ID:???■ このスレッドは過去ログ倉庫に格納されています