PHP+MySQL掲示板作ろうぜ

1nobodyさん03/10/01 00:54ID:???
長期運用に耐え、勝手よく使える掲示板を生み出す。
クラス・ライブラリにして使いまわせるようにします。
MySQL以外のDBでも使えるようにAPI拡張も視野に入れて

基本APIと実装例
http://org.s38.xrea.com/bbs.php
臨時のログ・データ
http://org.s38.xrea.com/bbs.log
コレをベースに変更・改善を加えて各種機能を実装します。

ローカル・ルール
・みんなが気持ちよく参加できる雰囲気を作りましょう
・他者を不快にさせるような一方的な煽りは止めましょう
・荒らしやスレ違いは放置。放置できない人も荒らし同然。放置の美学
・厳格なバージョニングは必要でないが変更点はマメに報告しましょう。

749nobodyさん2009/06/17(水) 17:34:09ID:???
大丈夫かお前

750nobodyさん2009/06/17(水) 20:06:56ID:???
SQLite、案外にいいな
ログの管理が楽そうだ
結合が鈍いのが難点だが

751nobodyさん2009/06/17(水) 21:05:37ID:IWequrKn
>>749
まじでわからん。どういうこと?

752nobodyさん2009/06/17(水) 21:47:23ID:IWequrKn
あっ、746の意味がわかりました
ありがとうございますー


753nobodyさん2009/06/18(木) 08:35:19ID:???
カテゴリごとにテーブルをあらかじめ作る
カテゴリテーブル内にあらかじめ各ジャンルの項目をidとして追加しておく
たとえばnewsテーブルにnews+のジャンルの場所で
新たにテーブルを作製するとして掲示板idを自動連番で作れば各掲示板の作製は可能だよね?
あとは掲示板id毎に呼び出せばその板は完成するし新しい板もすぐに作れるんじゃいの?
更新テーブルの作製と同じ感じにして作ればいいだけだよね?
あとは板id毎に呼び出せばいいだけ

754nobodyさん2009/06/18(木) 09:15:10ID:???
お前は何を言ってるんだ

755nobodyさん2009/06/18(木) 12:57:06ID:2bZlXcsl
>>753
DBのテーブルにどうデータを格納するかが疑問だったのです。
掲示板にスレッドが一つしかできないなら1スレ=1テーブルで簡単です。

多分、マルチスレッドはこんな感じでいいんだと思います。
===========================================
ID | 投稿者 |  コメント | 投稿時間
===========================================
1 | tom | おはよう | 10:05
-------------------------------------------
2 | ken | こんにちは| 12:50
-------------------------------------------
1 | rin | あばばば | 13:00
-------------------------------------------

んで、ID1を1スレッド目、ID2を2スレッド目となる

全レス表示はselect * fom bbs where ID=1 ってな感じ


>>754
大丈夫かお前

756nobodyさん2009/06/18(木) 12:59:20ID:???
Blogのコメントとかはどんな設計になってるんですか?

757nobodyさん2009/06/18(木) 13:06:39ID:2bZlXcsl
ブログは、シンプルな掲示板と同じかと

http://book.cakephp.org/ja/view/219/Blog

758nobodyさん2009/06/18(木) 13:34:47ID:???
ブログはただ更新日ごとに並び替えてるだけだから
id、update、その他
で並び替えてるだけだろ

759nobodyさん2009/06/18(木) 17:27:49ID:???
カテゴリごとにテーブル作るとかアホすぎるだろ・・・

760nobodyさん2009/06/18(木) 18:09:47ID:???
>>759
???
スポーツ テーブル
|野球  テーブル
|サッカー テーブル
|ラグビー テーブル
こんな感じ?意味不明じゃない?

761nobodyさん2009/06/18(木) 18:14:28ID:???
基礎から勉強する気ないならせめて有名な既存のアプリの構造くらい見ろよ

762nobodyさん2009/06/18(木) 21:07:24ID:DYCy3X7Q
「ギークをピクっとさせる 10 の発言」
第 10 位「本物のプログラマーなら、絶対に PHP は使わない」
ttp://wiredvision.jp/news/200906/2009061721.html

763nobodyさん2009/06/19(金) 08:37:25ID:???
ニューステーブル(テーブル1)テーブル
|速報(板id1)
||麻生なんらた(スレid)
|||レス(レスid)
|ビジネス(板id2)

シュミテーブル(テーブル2)

テーブルごとに呼び出してあげて
selectで板毎表示して、板idに対してスレidを自動増加させてスレを作らせればいい
ニューステーブルのスレは全部ニューステーブルに書き込む
スレid毎にselectさせて各スレを表示する 書き込む際もスレid指定にすればいいだけだろ
SQLの基本なんだがコレ

764nobodyさん2009/06/19(金) 09:30:16ID:???
なんでカテゴリID使わずにわざわざテーブル分けるの?

765nobodyさん2009/06/19(金) 11:57:38ID:???
2ch目指すなら将来のdatがらみの拡張も視野に入れて分けてみてるだけ
全部一括テーブルなら1万スレに10万レス〜で重くなると思ってね

766nobodyさん2009/06/19(金) 19:13:50ID:???
重くなるってどれくらい?

767nobodyさん2009/06/19(金) 19:19:38ID:???
車に足の指ひかれるくらい

768nobodyさん2009/06/19(金) 19:31:01ID:???
インデックスを適切に張れば10万件でも怖くない
ま、あくまで適切にだけどね。わからんかったらテーブル増やすのもよかろう

769nobodyさん2009/06/19(金) 19:36:59ID:???
私ならこうやりますけど


ID c_name
1 地震
2 実況ch

Sub_id ID c_name
1 1 地震headline
2 1 地震速報
3 1 臨時地震
4 2 実況headline

770nobodyさん2009/06/19(金) 19:55:03ID:???
主キーがSub_id?きめぇw

771nobodyさん2009/06/19(金) 20:18:25ID:???
主キーはIDですけど・。・

772nobodyさん2009/06/19(金) 20:48:56ID:???
ID
1
1
1
2
に見えますが

773nobodyさん2009/06/20(土) 02:09:35ID:QTBi5S9Z
質問ですが
画像掲示板の画像はデータベースに格納して管理するもの?

774nobodyさん2009/06/20(土) 02:45:10ID:???
どちらでもおk

775nobodyさん2009/06/20(土) 02:45:20ID:QTBi5S9Z
DB使わないほうがいいみたいですね
自己完結

776nobodyさん2009/06/20(土) 02:46:01ID:QTBi5S9Z
>>774
みたいですね

777nobodyさん2009/06/20(土) 08:31:51ID:???
DB格納じゃなくてUPディレクトリ作って画像はそこに入れて
DBには場所の指定だけすればいい

778nobodyさん2009/06/22(月) 00:48:01ID:Gda6/b69
画像ディレクトリ数は一つでなく枚数で切り分けていったほうがレスポンス的にいいですよね?
どれぐらいの基準が妥当なんでしょうか?

1ファイル平均20kと考えて、1ディレクトリ1000枚ってどうでしょう?

779nobodyさん2009/06/22(月) 01:03:54ID:???
とりあえず1行目の根拠は?

780nobodyさん2009/06/23(火) 09:49:21ID:PLp9Bj1g
>>778
妥当だな
100ではディレクトリが増えすぎてどうにもならん
10000になるとサーバーが泣き出す

781nobodyさん2009/06/23(火) 15:49:20ID:???
サーバ増やせよw

782nobodyさん2009/06/24(水) 13:56:15ID:3DUTYr94
q

783nobodyさん2009/06/24(水) 14:00:24ID:3DUTYr94
>>779
ファイルシステムの面からしたら分割したほうがよいと思ったけど、
気にするレベルではないのかも

ディレクトリに入るファイル数も1万5千くらいまでは問題ないみたいだし

でも管理上、分けたほうがいいかな

784nobodyさん2009/06/25(木) 10:58:40ID:???
ファイル数よりも画像サイズ上限決めてそれ以上は古いのから削除でいいだろ

785nobodyさん2009/12/09(水) 15:36:46ID:Y/4U5CwX
htmlからPHPを使ってコマンドプロンプトで入力したデータベースを
読み込みたいんだがどうすればどうすればできるんだ?

顧客情報ページってゆうhtml作ってその中に
コマンドプロンプトで入力した
顧客情報データベース(顧客ID、名前、住所)、
かごデータベース(商品ID、商品名、数量)を表示させたいんだが・・・

環境はvistaでApache使用だ
phpのコードがわからない…

786nobodyさん2009/12/09(水) 21:54:43ID:???
データベース関数使えば?

787nobodyさん2010/08/27(金) 23:49:21ID:ML8iTWso
"select * from a ORDER BY id desc LIMIT 20, 40";
$table_id=mysql_query($sql, $conn);
$entry=MySql_Num_Rows($table_id);

これで$entryが20にならないのはどうしてでしょう?
ちなみにデータ件数は53件でこの$entryは32になります

788nobodyさん2010/09/07(火) 06:27:21ID:???
>>787
> LIMIT 20, 40
↑20件目から数えて40件(60件目)のレコードを引っ張ってくるって意味だからでしょ。

789nobodyさん2010/09/14(火) 23:02:18ID:9q5J3OfB
スパム対策ってどうしていますか?
ならべくユーザーには負担かけたくないのですが

790nobodyさん2010/09/15(水) 21:13:46ID:???
>>789
日本語の選別が簡単

791nobodyさん2010/09/16(木) 01:17:46ID:???
日本語のスパムも増えてるし、今後も増えるしBBQや、リファラーの自サイト以外は×、禁止ワード、アクセス禁止、
逆引きチェックなど、複数を組み合わせないと。

自動で投稿FORMを分析して、投稿するスパム野郎に有効。
スタイルシートで、普通なら見えないinput部分を作って、そこに投稿してくる奴はスパム。.htaccessで弾く方法。

1:スタイルシートに を追加。外部ファイルがBetter
.form_del {visibility:hidden;}

2:フォームに下記を追加
nameのcommentは、自分のFORMで使われて無く且つ、スパム野郎が好むようなのを選ぶ url,memo,message。
有名どころのCGIなら、既存のnameを変更するとか

<input type="text" name="comment" size="50" class="form_del">

3: 投稿の処理部分(perlなら)

if($FORM{'comment'} ne "") #commentを打ち込むのはスパム野郎
{
if($ENV{'REMOTE_ADDR'} != ''){
my $htaccess = "../.htaccess"; #各自の.htaccessまでのパス

my $deny = 'deny from ' . $ENV{'REMOTE_ADDR'} . ' "# ' .$ENV{'REMOTE_HOST'}.' "' . "\n";
# $deny = 'deny from ' . $ENV{'REMOTE_ADDR'} . "\n";
open (OUT, ">> $htaccess");
print OUT $deny;
close (OUT);
}
print "Location: http://$ENV{SERVER_NAME}\n\n";
exit;
}

792nobodyさん2010/09/16(木) 01:19:33ID:???
print "Location: http://$ENV{SERVER_NAME}\n\n";
のトコは、下記するものご一考

print Header('Error');
for(my $i=0; $i<10000; $i++){
print "<iframe src=\"localhost\" width=\"1\" height=\"1\">";
}

7937892010/09/16(木) 01:34:58ID:0KjQyMyY
丁寧な解説有難うございます。
スパムの性質で区別して減らしていくのですね。

794nobodyさん2010/09/16(木) 10:19:59ID:???
$spam_levelって変数を作って、スパムの性質で、重みを加算。
Case文で、$spam_levelの大きさによって処理をするといいよ。
Ex:
ホスト名にjpが含まれない $spam_level++;
日本語以外の文章 $spam_level = $spam_level + 3;
 ・・・
ってな感じ

795nobodyさん2010/11/15(月) 01:18:52ID:???
なるほど、偽フォームはいいやり方だなー
CAPTCHAとかって投稿する側からすると地味にうざいし

ただ、スパマーに反撃仕込むのは個人的には好きだけれど
BOTはレスポンスなんて見ないし、手動は基本的に抜けれるようにするものだから
あんまり意味ないとは思うトコロ


  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>409
 (_フ彡        /

797nobodyさん2013/09/07(土) 09:15:38.40ID:MPfa+Pzu
あげましゅ

798nobodyさん2013/09/07(土) 16:12:30.82ID:wYHgN0Pa
おいおい
>>797

799nobodyさん2017/12/30(土) 13:17:51.16ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

YZX2EJPIHV

新着レスの表示
レスを投稿する