トップページ⇒php
352コメント118KB

せっかくだからPHPで掲示板作ってみませんか?

■ このスレッドは過去ログ倉庫に格納されています
0001⊂(´ー`⊂⌒ヽつ NGNG
Perl + CGI とか色々ありますけど、サーバ管理してるものとしては重いんですよ
結構回線食ってますんで、できれば軽い掲示板を使って欲しいです
0174名無しさん@お腹いっぱい。01/09/08 03:37ID:???
>>173
ピカチュウ警報
0175名無しさん@お腹いっぱい。01/09/08 10:09ID:???
>>172
.phpにすればクッキーが使える。
SSIは動かないだろ
0176名無しさん@お腹いっぱい。01/09/08 12:56ID:KBW0zPWM
>>175
javaスクリプトで抜けばいいだろ。
.phpなんかでファイル吐いたらセ
キュリティーも糞も無くなる。
初心者は黙って名。藁
0177名無しさん@お腹いっぱい。01/09/08 15:17ID:???
>>176
>.phpなんかでファイル吐いたらセ
>キュリティーも糞も無くなる。

詳しく知りたいのですが...
0178名無しさん@お腹いっぱい。01/09/08 16:23ID:???
>>176
意味不明なんですが・・・
> .phpなんかでファイル吐いたらセキュリティーも糞も無くなる。
htmlファイルを吐いてブラウザにはそれを見せるのは危険ってこと?
って事は.phpで直接表示しろって事だよね?

> javaスクリプトで抜けばいいだろ。
ならPHPでクッキー使えばいいじゃん。
0179名無しさん@お腹いっぱい。01/09/08 16:59ID:h6rIpquU
php吐いてる?
http://php.s3.to/bbs/fstyle/
0180ちたん01/09/08 21:30ID:9w.nIrBA
PHPってCGI使えてPHP3とか使えないとダメなの?
0181名無しさん@お腹いっぱい。01/09/08 22:41ID:???
意味不明...
0182ちたん01/09/08 22:44ID:9w.nIrBA
ごめん
PHPは手を出した事が無いんだけど
今いろいろ乗ってるサイトで調べたら
PHPは全くCGIとは別物なんだね
ribbon.toってとこのスペースにでも置くか
0183名無しさん@お腹いっぱい。01/09/09 21:54ID:YAPKaUzk
厨房でスマソ。
indexにphpファイル使うのがヤヴァイってことですか?
ファイル名がindexでなければ大丈夫?
index.htm置いても関係なっしんぐですか?
ribbon.toのスペース借りたので、PHPも挑戦してみようと
思ってるんですが、さっぱり進みません。
018416301/09/09 23:05ID:FMpp59YY
>>183
index.htmlなら大丈夫。index.phpで吐いてphpタグの除去漏れが
あったりすると悲惨な攻撃を喰らう可能性が。
例えばディレクトリ内の全ファイル削除するphpスクリプトを書き
込まれたり。
0185名無しさん@お腹いっぱい。01/09/09 23:29ID:wbHvU30k
>>184
どうやって書き込むんですか?
パスワードをハックするんですか?
0186名無しさん@お腹いっぱい。01/09/09 23:40ID:FMpp59YY
>>185
あくまでPHPで掲示板やチャット作る場合ね。
フォームからの入力を受け付けないスクリプトなら
問題無いです。
018718501/09/09 23:45ID:wbHvU30k
フォームからスクリプト書き込まれたら危ないのか…。
知らなかった ありがとうございます。
0188名無しさん@お腹いっぱい。01/09/09 23:56ID:???
PHPは使ったこと無いからあんま知らないけど、
たとえばフォームから$varにPHPコード入ってる入力受けたとして、
echo $var ってやったら $var に入ってるコードが実行されるの?
そんなわけないよね?
$var を直接unlinkやsystemやexecやevalとかしなけりゃ問題ないでしょ?
他には$varにSSIのコードが入っててPHPからhtml「ファイル」を
書き出すときに$varをそのまま埋め込んでそのhtmlにアクセスされた時に
SSIが実行されちゃうとかでしょ。
なんか勘違いしてる人ばっかりっぽい。
それとも俺が勘違い?
018918301/09/10 00:30ID:???
>184
早々レスありがとうございます!
自分がいかに厨房か身にしみました。
レンタルなんで、他のユーザに迷惑かけるのもアレだし、
もっと勉強してから設置します。
0190名無しさん@お腹いっぱい。 01/09/10 00:30ID:???
俺も使ったこと無いからあんま知らないけど
それが出来るのがphpなのでわ?
$varは汚れているってやつ
019116301/09/10 00:37ID:nli.P4co
あくまでクッキー使うとかの理由で「.php」ファイルを吐く
場合に限りってことですので。
019218801/09/10 00:47ID:???
あ、「.phpファイル」を吐くって話だったのか。やっと納得した。
そりゃ気を使わないといけないね。
「indexをPHPで吐いてる」
を単にindex.phpが動的にデータ読んでHTML生成してる
という意味だと思ったよ。
019318501/09/10 01:16ID:WNjUYDFQ
…。>>192と同じ事考えてました…。
phpがphpを吐く場合ですか。そりゃそうかも。
まだよく分かってないけど…。
019416301/09/10 12:00ID:???
2ちゃんタイプの掲示板だとログをMySQLとかのDBに持たせる
のと従来通りスレッド毎にファイルで持たせるのだとどっちが
効率いいんでしょう?
なんかDB化すると書き込み時にSELECT連発になりそうで不効
率なイメージがあるんだけどDB詳しくないので分かんないや。
0195名無しさん@お腹いっぱい。01/09/10 13:45ID:RS6j19mI
漏れも知りたいage
0196ちたん01/09/10 14:22ID:NewyOZz.
俺は公開を待つだけで何もしてやれないのが残念だ
0197名無しさん@お腹いっぱい。01/09/10 14:23ID:unceqOvo
ちたんってFFDQ板にいる奴と同一人物か?
0198ちたん01/09/10 14:26ID:NewyOZz.
おう>>197
0199名無しさん@お腹いっぱい。01/09/10 14:52ID:LD3E6s7.
スレッドテープル、レステーブルの2テーブル作る感じで考えたけど、
スレ立て時にINSERT二回、レス時にSELECT,UPDATE,INSERT各一回
でできると思う。
020016301/09/10 15:23ID:RS6j19mI
>>198
インデックスページ吐くときに表示スレッド数だけのSELECTが必要
になりますね。
あと、全板のログが入り乱れたテーブルからSELECTで必要な発言持
ってくるのって凄い効率悪そうに思えるんですけど、レスの数が膨大
になった場合の不可なんかはどんなもんなんでしょう?
020116301/09/10 15:24ID:???
ミスった。↑のは>>199さんへ。
0202名無しさん@お腹いっぱい。01/09/10 16:05ID:KqO6xo7o
ところで、PHPってオブジェクト指向?
0203名無しさん@お腹いっぱい。01/09/10 16:29ID:LD3E6s7.
>>200
ファイルでやったら表示スレッド数だけのファイルを開いて閉じてを
繰り返さなければダメですよね?それよりは速いとおもう。

きちんとレステーブルにスレッドIDのフィールド作って
インデックス張っておけば問題ないレベルでしょう。

>>202
も出来る。
020467201/09/13 13:48ID:7asnw6oI
>>202
PEAR使うとOOPが、でけそう気配だ。
0205名無しさん@お腹いっぱい。01/09/13 22:50ID:Nq5e6DE2
スレッドごとにテーブル作ってテーブルの数がいっぱいになるのと
テーブル一つに全スレッド放り込むのとどっちがいいですか。

あるいは板ごとにテーブル作って(以下同文)

ようするにテーブルはいっぱい作らない方がいい?
020620201/09/14 04:28ID:YRsOR1eU
PHPのオブジェクト指向には、あんまり期待できなさそうな。(^-^;
PerlのOOと似たようなもんかな。。
020716301/09/14 14:44ID:NHumwnBY
>>205
とりあえずスレッド一覧とレス格納用のテーブル一つずつ作って
PHP+MySQLでやってみました。今んところ問題ないみたい。
http://popee.gasuki.com/bbs_db/test/
0208ななしさん01/09/14 21:40ID:I5Sj1HiA
わーいありがとう。大丈夫そうだね。
0209名無しさん@お腹いっぱい。01/09/14 21:48ID:5kAOJ0Zk
>>207
ageってどうやってんの?
書き込まれたらスレッドの順番書いてあるフィールド書き換えてるの
か?何か効率悪っぽいな。ファイルの方がいいんじゃねぇ?
0210163じゃないけど01/09/14 22:10ID:???
スレッド一覧テーブルにDATETIME型とかのフィールド作って
ageの時は現在時刻入れておいて降順で並べればよいと思われ。
0211けん01/09/19 11:08ID:hhAgINVo
ぜんぶPHP+MySQLですよ。
さらにDHTMLをかました掲示板もあります。
興味のある方は見てください。

http://www1.development-network.net/~ken/index.php
0212名無しさん@お腹いっぱい。01/09/19 13:45ID:???
デザインださ・・・しかもこみゅこみゅって(プ
0213名無しさん@お腹いっぱい。01/09/19 17:45ID:tSRZDv1c
>>211
(・∀・)イイ!!
0214名無しさん@お腹いっぱい。01/09/22 16:41ID:G0469FQk
>>211のようなレンタルの場合は、MySQLのライセンス料の支払は必要?
0215名無しさん@お腹いっぱい。01/09/22 16:52ID:hg/f7G7g
http://www2u.biglobe.ne.jp/~hole/

あります
0216名無しさん@お腹いっぱい。01/09/22 17:05ID:???
http://www1.development-network.net/~ken//reg/profeel.php?name=KEn

綴り、ハァハァ……
0217けん01/09/23 07:40ID:gaxvcfRo
なんかからかわれてますね〜
このサーバーは友達がADSLで構築しています。
\200/月
で使用できます。
0218けん01/09/23 22:29ID:5jHAZsXA
>>214
MySQLってフリーだからいらないですよ。
0219ちたん01/09/24 02:26ID:???
けんってネカマ?
0220名無しさん@お腹いっぱい。01/09/28 21:01ID:yatlQWYk
あげ
0221名無しさん@お腹いっぱい。01/09/30 06:52ID:Adl10q6o
PHPだと文法エラー等がある場合、エラーメッセージが出ると聞いたのだが、
そんなもんは出なくて、
白紙(IEでソース見るとレンタルサーバの広告のみ)しか出ない。
これはいったい何のエラーなんだか。
0222名無しさん@お腹いっぱい。01/10/05 01:08ID:vTyw9JIM
http://p.wakatiai.com/soft/raib_plh/raib.shtml
↑これはPHPですか?
0223名無しさん@お腹いっぱい。01/10/09 12:21ID:ATYJfjH.
PHPよく分からんage
0224名無しさん@お腹いっぱい。01/11/06 22:17ID:BzxtU/sO
>>221
同じ症状だよ。ここのスクリプト使ってみたんだけど。
http://www.charling.net/php/chat.html
0225名無しさん@お腹いっぱい。01/11/07 01:45ID:FJMcKMjy
>>221
サーバによっちゃエラーメッセージでないよ。
0226名無しさん@お腹いっぱい。01/11/07 01:56ID:jj1CZs+f
ファーストキスはエラー吐く。
しかし奴はECUで書かなないとあかんのでめんどいのー。

ところでレンタルスペースのミルトクラブはトップからphpなのはいいが、
エラーメッセージさらしっぱなしでひじょうにみっともないんだが…。
直す気ないのか?
0227名無しさん@お腹いっぱい。01/11/07 02:14ID:FJMcKMjy
>>221
ちなみに何処のサーバ?
0228名無しさん@お腹いっぱい。01/11/07 03:13ID:MaWgfgVW
ここはphpで開発中みたいだね
http://kawara.adam.ne.jp/php/read.php?bbs=test
0229名無しさん@お腹いっぱい。01/11/08 09:54ID:???
PHPの掲示板でお勧めのLOCKあります?

$fp = fopen ("$logfile","a");
flock($fp,2);
fputs($fp, $hoge);
flock($fp,3);
fclose($fp);
で効きますか?
配布などは考えてません。
0230名無しさん@お腹いっぱい。01/11/08 12:53ID:A2A4Idoa
>>228
(・∀・)イイ!
0231名無しさん@お腹いっぱい。01/11/09 16:15ID:t6/s73d3
>>229さんではありませんが、私も良いLOCK方法を知りたいっす。
Cのflockと同じものなのか、それともPHPらしくもちょっと実用的にっていうか
229さんが書いたコードでオッケーな感じになっているのか……。
PHPのflockの中身を知りたいです。
あ。ソースを見ればいいのか。逝ってきます……。
0232柚鈴車 ◆sMGFahw. 01/11/26 10:28ID:???
PHP初心者だけどPHPを学習しつつ
スレッドフロート式掲示板の開発を進めている。
学習しながらなんで非常に時間掛かってるけど。
只今の進行状況:3%ってとこか?
0233柚鈴車 ◆sMGFahw. 01/11/26 10:28ID:???
でもPerlの心得はあるからそれほど苦労はしてないけどね。
0234hogehoge01/12/20 16:19ID:gQq9NcEn
PHP+RDBMSを使ったツリー型のBBSで、
ツリー表示をする際のアルゴリズムとデータベースの構成を説明して貰えませんかのう。
PHP-Nukeのソース読んだけど理解出来ない...(・ A ・)

・[ 1 ] 逝ってヨシ
 ・[ 2 ] あぼーん
   ・[ 4 ] あぼーん
 ・[ 3 ] ワショーイ

↑こういう表示がスマートにできるようなアルゴリズム.....。

レスのテーブルに子レスIDのデータを持たせようとすると、
複数のレスがついた場合を考えて配列にしなきゃいけない。

レスのテーブルに親レスIDのデータを持たせると、
こんどは描画の際に面倒。

あとはレスに階層の深さテーブルを持たせるとか、
子レスの「数」を親レスに持たせるとか...。 ああ面倒。

php-nukeはいったいどうやって。
ttp://phorum.org/support/list.php?f=1&collapse=0
0235名無しさん@お腹いっぱい。01/12/21 02:58ID:???
>>234
データベースは知らんが

W1・新規スレッドの>>1とそれに対するレスを区別しないで時間順にテーブルにぶち込む。
その際、ユニークなメッセージIDを振る。

W2・レスはその返信先のIDをリファレンスとして保持、>>1は空欄のまま。

R1・書き出し時にリファレンスの項目を参照して1を取り出す。(時間順に並んでいれば普通は最初だが)

R2・1のメッセージIDでリファレンスを検索。一致するものを配列として取り出す。見つからなければreturn。

R3・とりだした配列の要素へR2の手順を実行。

な感じじゃないか?
要はただの再帰呼び出しだが。
0236名無しさん@お腹いっぱい。02/01/19 09:39ID:???
0237名無しさん@お腹いっぱい。02/01/19 13:40ID:???
ウチは、IDとか親記事のIDと階層の数字(*)を持たせて
再帰呼び出ししてます。

・[ 1 ] 逝ってヨシ *0
 ・[ 2 ] あぼーん *1
   ・[ 4 ] あぼーん*2
 ・[ 3 ] ワショーイ *1
0238nobodyさん02/03/29 09:41ID:???
PHPでアプロダのソース教えれ
0239nobodyさん02/03/29 14:06ID:???
>>238
レッツPHPにでも行け
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:ZBwddCFf
(´-`).。oO(>>163はどこに逝ってしまったんだろう…?)
0245nobodyさん02/10/28 00:34ID:???
>>244
クソスレあげるな
0246nobodyさん02/11/09 17:59ID:FW57v7fV
>>245
ごめんなすわぁい
0247nobodyさん02/11/09 18:16ID:2u49zYCG
>>238
http://cgi.aaacafe.ne.jp/
PHPなら これで十分
0248nobodyさん02/11/09 19:00ID:???
>>247
厨房
0249nobodyさん02/11/10 03:38ID:CKDMXs5s
>>248
厨でもCGIが使えるよ
これ使えばね
0250nobodyさん02/11/11 20:27ID:???
bbsxml.php$B$H$+$G7G<(HD$,(BXML$B=PNO$5$l$k$H$J$*M3(B
0251nobodyさん02/11/12 17:44ID:84Orx8vW
??247
0252nobodyさん02/11/17 00:06ID:rKD6R3WV
2ちゃんねる風の掲示板はどの様に作ればいいのですか?
教えて下さい。あと、素材があったら貼っといて下さい。
0253nobodyさん02/11/17 00:37ID:???
>>252
さっさと責任取ってくれんか?クソ人間。

2chの掲示板は何を使ってますか?
http://pc.2ch.net/test/read.cgi/php/1037459580/l50


各位。
PHPで掲示板なら昔作ったけど。ソースいる?
0254nobodyさん02/11/17 23:26ID:qfDL9fIH
つーか瓦番でいいだろ
0255nobodyさん02/11/18 02:14ID:???
>>253
>PHPで掲示板なら昔作ったけど。ソースいる?
俺も作った。好感しようか(w
0256nobodyさん02/11/19 09:44ID:???
>>253
ぜひソース見せてほしいです。
0257nobodyさん02/12/06 10:10ID:???
age
0258でもさぁ02/12/06 15:56ID:???
簡単な掲示板ならperlでかくより、PHPのほが楽じゃないすか?
便利そうな関数がごまんとあるし(perlでも多いと思ったのに・・)
データベースをそこそこさわり始めるとある程度の事までは
わかるんだけど、バキュームとかバックアップやらの事が出てきはじめると
ワケワカメになる。
掲示板とかでDB使うとそうとうグシャグシャな状態になりそうな気が
するんだが、大丈夫なもんなのか?
容量の問題もあるし・・・
0259でもさぁ02/12/06 16:01ID:e3P89aGI
もし、2ch型の掲示板をPHP+RDBMで作る場合、
テーブルの構造はどんな感じになるんだろうか?
PHPの側からテーブル作ったりできんのか?
なんかイメージするにスレッド毎にテーブルがあった方が
スッキリ管理しやすいようにおもうんだが、、、、、
でも、それじゃぁDB使う意味ないのか?
まぁ、厨房の独り言でし。
0260nobodyさん02/12/06 16:19ID:???
>便利そうな関数がごまんとあるし

PHPに5万も標準の関数はありませんとか言ってみるテスト

>もし、2ch型の掲示板をPHP+RDBMで作る場合、
>テーブルの構造はどんな感じになるんだろうか?

1つの板につきスレッドテーブルと記事テーブルを各1個
0261でもさぁ02/12/06 19:13ID:e3P89aGI
>1つの板につきスレッドテーブルと記事テーブルを各1個
そんだけでいいんだ。そうだよなぁDBでしかもリレーショナルだもんね(ワ。
漏れがPerlで作ったBBSはしこたまファイルが出来るから
dataやらのディレクトリをのぞく度に鬱になる。
0262nobodyさん02/12/06 19:15ID:???
つーか


     Perl + CGI


って何?
0263nobodyさん02/12/06 19:25ID:e3P89aGI
>>262
それは、もしかしてPerl + CGIの事ですか?
0264nobodyさん02/12/06 21:43ID:???
>>262
+ = de

Perl + CGI = Perl de CGI
0265nobodyさん02/12/06 22:09ID:???
php+MySQLで掲示板作っているけど、スレッドテーブルなんか使わないなぁ。
親スレで検索すればいいだけじゃん。テーブルを分ける必要は無いと思うのだが。。
0266でもさぁ02/12/06 23:13ID:e3P89aGI
でも、想像してみるに、記事用のテーブルはいろんな
スレッドのデータがグチャグチャに入ってて、そのグチャグチャを
DBは一生懸命検索しなきゃいけないわけでしょ。
もし、1スレッドに1テーブルだと検索する手間が省けてかなり
早くなりそうな気がするんだが・・・・。
メンテ的にも1掲示板で持てるスレッド数が決まっている場合、
さくっとテーブルの削除ができる。
ところでスレッドの順位のテーブルも必要なんじゃないか?
026726502/12/06 23:20ID:???
親スレを示すフィールドと、スレッドの順番を示すフィールドがあれば、ソート出来るじゃん。
検索し、並び替えるのが得意なDBにとって、順番やスレッドがぐちゃぐちゃなんてたいした手間じゃないと思うけどな。
0268nobodyさん02/12/07 06:29ID:???
>262
まさか、perl == CGI とか思ってやしないよな。
と煽り返してみる。
0269workaholic02/12/07 09:59ID:???
必要以上にテーブル分けして、外部ジョイーンとか連発しなければ遅くはならないとYO。
あと、like で or な検索連発してみたり(しないか)。

つーか、BBS程度のシステムなのに、絶賛稼動中なロジックの中で create table するのって、
ちょっと正気の沙汰とは思えない、とか。
1スレ=1テーブルって、どういう設計よ。
0270nobodyさん02/12/07 10:08ID:???
>つーか、BBS程度のシステムなのに、絶賛稼動中なロジックの中で create table するのって、
>ちょっと正気の沙汰とは思えない

禿同
0271workaholic02/12/07 10:51ID:???
ありがちな例:
"板コード"をpKeyにして、"スレコード"で別テーブルぶらさげて、
他になんか文言とか付随データをVARCHARでいくつか付けておいて、
その後その別テーブル上に「書き込みindex」をキー、スレコードはfKeyで、
カキコの中身はVARCHAR(256)位でまとめればいいんじゃないのかな。
0272nobodyさん02/12/07 16:40ID:???
DBだと記事の削除とか楽だからいいよね。
テキストファイルだと削除が大変。

漏れは
1) 該当スレのログファイルをオープン
2) ファイル全体を配列に読み込む
3) 該当行を配列から削除
4) 元ファイルに書き込む
5) スレッドインデックスファイルの「レス数」を変更
という風にやっています。
なんかいい方法ありませんかね。
0273workaholic02/12/07 17:43ID:???
>>272 さん。
その処理って、ナニでやってるの?Perl?
オレは基本的にJava野郎で、Perlはすでにウロ覚え状態です。
前にServlet(&JSP)で、個人的にソレっぽいもの作った時は、

TextFileとして記録されるLogのフォーマットを、HTTPのPOST内容っぽい
(つまりバウンダリ文字列で区分する)形で記録するようにしました。
それ専用の汎用ParserClassを作って、Servletで使用って感じで。

でも、結局TextFileに記録って時点で、あまり凝った事はやりづらいです
よね。
Stringの塊を整形して、取り出す時は部分取得して...。

それでもPerlの場合正規表現は最初からあったけど、JavaにRegExpが標準パッケージ
として含まれたのって最近だし...。

やっぱDBがイイすね。楽。
0274nobodyさん02/12/08 18:03ID:???
>>272
1) 該当スレのログファイルをオープン
2) 新しいファイルを作る
ループ{
  1) ログファイルから次の「1行ダケ」読み込む
  2) 該当行じゃなければ、新しいファイルに行を書込む
}
3) 元ファイルを削除
4) 新しいファイルを元ファイル名に変更
5) 「レス数」とやらを変更

とやるのが一般的だよっと。
世間の参考書は全行読むのが多いよなあ。
出版社にはこの辺チト配慮してほすぃ。
■ このスレッドは過去ログ倉庫に格納されています