X



PHP+MySQL掲示板作ろうぜ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
垢版 |
03/10/01 00:54ID:???
長期運用に耐え、勝手よく使える掲示板を生み出す。
クラス・ライブラリにして使いまわせるようにします。
MySQL以外のDBでも使えるようにAPI拡張も視野に入れて

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

ローカル・ルール
・みんなが気持ちよく参加できる雰囲気を作りましょう
・他者を不快にさせるような一方的な煽りは止めましょう
・荒らしやスレ違いは放置。放置できない人も荒らし同然。放置の美学
・厳格なバージョニングは必要でないが変更点はマメに報告しましょう。
0698初心者
垢版 |
2006/06/23(金) 21:00:52ID:NabPhFmx
初歩的な質問ですが、where句の条件指定で、
where A like '%支店%'
or A like '%支社%'
or A like '%営業所%'
これってどうやってキレイにすっきり纏められますか?
0699nobodyさん
垢版 |
2006/06/23(金) 23:02:09ID:???
>>698
なにがしたいのかわからん上に、お前さんのキレイの基準がわからんからニンともカンとも
0700初心者
垢版 |
2006/06/23(金) 23:25:09ID:NabPhFmx
>>699
えっとですね、
where A like ('%支店%','%支社%','%営業所%')
IN条件みたいに、()内のうちどれかにあてはまるみたいに出来ないかなぁって。
ちなみに上記だとコンパイルエラーになります…
0701nobodyさん
垢版 |
2006/06/24(土) 00:50:36ID:???
SQLぐらい勉強したら?
0702初心者
垢版 |
2006/06/26(月) 00:50:30ID:d7MUYCTW
>>701
答えわかりますか?
一応オラクルシルバーフェローは持ってますけど、わからないのです。
0703nobodyさん
垢版 |
2006/06/26(月) 04:11:19ID:???
やっぱり資格ってゴミだな(w
0704nobodyさん
垢版 |
2006/06/26(月) 09:19:15ID:???
>>702
ちょっと待て、お前それ受かっておいて>>700とかそりゃあんまりだろ
0705nobodyさん
垢版 |
2006/06/26(月) 11:40:25ID:3ytL0Y2x
ワロス
0706nobodyさん
垢版 |
2006/06/26(月) 12:04:53ID:???
MySQLではREGEXP(RLIKE)が使えるんだけどね
0707nobodyさん
垢版 |
2006/06/26(月) 12:14:21ID:???
あんまりDB依存のSQLは使わないほうがいいよ。
DB替える必要が出て来た時に困ることに成る。
0708初心者
垢版 |
2006/06/26(月) 20:44:49ID:d7MUYCTW
すいません!本当にバカなのは認めますけど、
どなたか正解を教えてもらえませんか?
0709nobodyさん
垢版 |
2006/06/26(月) 21:41:46ID:???
>>698で良いだろう。
どんな実装してるか知らんが、変にまとめようとするとかえって使い勝手が悪くなる。
SQL文なんざ他人に見えるものじゃなし、もっと別方向に注力するべき。
0710初心者
垢版 |
2006/06/26(月) 23:01:59ID:d7MUYCTW
確かに698で動作的にも問題ないです。
でも、他の書き方も知りたいので是非教えて下さい!!
0711nobodyさん
垢版 |
2006/06/26(月) 23:15:38ID:ZJWTm+xe
>>667
PHP+Mysqlくらい自分で勉強するか、習ってやれよ。
めんどくさいけど、そんなに難しくないよ。
0712nobodyさん
垢版 |
2006/06/27(火) 09:41:14ID:???
今の人は正解を求めるんだよ。努力は嫌い。
0713nobodyさん
垢版 |
2006/06/27(火) 12:40:18ID:???
>>710
LIKEだらけの糞SQL使うぐらいならテーブル設計からやり直す
0714nobodyさん
垢版 |
2006/07/01(土) 02:34:45ID:CpenXlRn
質問です。
あるサーバーを立てて、そこにトラックバックURL、内容、タイトルを
データベースにし、ブログにそれをサーバーからトラックバックさせることは
できますでしょうか?
アドバイスお願いいたします。
0715nobodyさん
垢版 |
2006/07/01(土) 11:17:26ID:aaj8Tdeo
DBを使わないでつくることにこだわりを持っている人がいる。
美しいではないか。
0716nobodyさん
垢版 |
2006/07/01(土) 13:13:58ID:???
できますでしょうか という日本語はおかしい
0717nobodyさん
垢版 |
2006/07/02(日) 07:35:01ID:???
普通にMTでもどうぞって感じだな。
MTが分からなければ有償で教えてもらってくれ。
0718nobodyさん
垢版 |
2006/07/03(月) 05:11:53ID:???
MTのこと知りたかったので自動車学校通って免許取ってきたよ。
0720nobodyさん
垢版 |
2006/07/07(金) 02:04:00ID:???
マルチスレッド難しそう・・・
0721nobodyさん
垢版 |
2006/07/11(火) 15:07:24ID:pP51JUPB
>>720
気のせい
0723nobodyさん
垢版 |
2006/07/11(火) 15:54:42ID:aCy8bHVv
もっと突いて!
0725nobodyさん
垢版 |
2007/04/15(日) 22:23:59ID:???
四年前の書き込みをみるとなんだか寂しくなってくる。
まったく関係ないやつだが。
0726nobodyさん
垢版 |
2007/04/28(土) 14:26:19ID:1benM2SP
徳岡っ誰ですか?いろいろ騒がれてるけど。そいつが何をしたんですか?
0728nobodyさん
垢版 |
2007/04/28(土) 15:07:19ID:???
>>725さん、それ誰か分かりますか。分かったなら教えてください
0729nobodyさん
垢版 |
2007/06/11(月) 19:27:40ID:AV1toBwY
MySQL Query Browserを使ってフィールドの値を全角で書き込むとPHPから読んだ時に文字化けするのですが
どこを設定したら直りますか?
0731nobodyさん
垢版 |
2007/06/13(水) 10:10:05ID:+nMlxARx
mb_convert_encodingしても文字化けしたままです
0732nobodyさん
垢版 |
2007/06/13(水) 10:34:20ID:ERH5kmgS
>>731 教えてgooで環境とコードかいて質問してみ
0733nobodyさん
垢版 |
2007/11/07(水) 09:57:13ID:yFBMsV7F
レスってlongtextとblobってどっちがいいんですか?
それともchar(255)?
0734nobodyさん
垢版 |
2007/11/07(水) 10:26:49ID:7dEVkaOd
>1がいないスレなんて。。。
0735nobodyさん
垢版 |
2007/11/08(木) 18:45:37ID:???
2003年ごろなら、ネタになったんだろうな
0736nobodyさん
垢版 |
2007/12/06(木) 18:39:00ID:N91XublK
今じゃネタにならないPHP+MySQL掲示板作ろうとおもってます・・・

クラス使おうと思ってるんですけど
MySQLの接続もクラスに組み込んで(インスタンス生成したときに)MySQLにアクセスさせてデータのやり取りはクラス内でやるのと
MySQLの接続はべっこにしてクラスからMySQLの関数にデータの受け渡しをするやり方
どっちがいいかなぁって考えてて
前者だと後々データベースを使わないでCSVにしようとしたらまた書き換えなきゃいけなくなるから
後者かなぁと思うんですけど
どうなんでしょう?
0737nobodyさん
垢版 |
2007/12/06(木) 19:15:03ID:???
その程度で悩むならなんかフレームワーク使っちゃえば良いいんじゃないの。
悩みどころがごっちゃな文章なので問題点があまり見えてこないけど、
モデルとコントローラ分ければどっちでもいいと思うよ。
いつ接続していつまで保持するかは、画面遷移やUI/それらに絡む負荷次第で考える所かと。
データ側のモデル実装振り分けも、一度MySQL用にO/Rマッピングでもしときゃ分離すんのは楽なもんだよ。
0739nobodyさん
垢版 |
2008/01/17(木) 01:19:33ID:???
SUNに買収されますた
0740nobodyさん
垢版 |
2009/03/22(日) 13:25:20ID:???
PHP+MySQLの入門書ってどれがいいの?
0742nobodyさん
垢版 |
2009/04/17(金) 00:46:47ID:???
MySQLって商用でもライセンス契約しないでいい方法ってある?
0743nobodyさん
垢版 |
2009/06/09(火) 13:31:17ID:???
mysqlって商用につかっちゃいけねぇの?
0745nobodyさん
垢版 |
2009/06/17(水) 14:16:11ID:IWequrKn
くだらない質問だと思うのですが、教えてください

一般的に、
DBでマルチスレッド掲示板つくる場合、
1レスを1レコードとするんですか?
そして1スレッドを1テーブルと。
では、新規スレの場合create table文を発行する?

システム内でテーブル作成なんてありえないですよね?
0746nobodyさん
垢版 |
2009/06/17(水) 15:07:16ID:???
レスを分けることはないんじゃない?
たとえば代表的なグループ板を作って過リンいid1として
id1はニュースにした場合、テーブル項目でID振り当てて
1つのテーブルにいれればいいだけじゃないの?
テーブル作製はしなくとも項目だけ作成していけば板はいくらでも孵やせれる
0747nobodyさん
垢版 |
2009/06/17(水) 16:21:12ID:IWequrKn
>>746
全スレッドをテーブル1つにして、
ひとつのカラム(縦列)が1スレッドに結びつくということですか?
新規スレッド作成でカラムが増えていくということでしょうか。

alter table文を発行していくと。

0748nobodyさん
垢版 |
2009/06/17(水) 16:41:32ID:IWequrKn
ということは
レス追加は、insertでなくて

先に1000行空を作っといてupdateしていく
というやり方になるのでしょうか
0750nobodyさん
垢版 |
2009/06/17(水) 20:06:56ID:???
SQLite、案外にいいな
ログの管理が楽そうだ
結合が鈍いのが難点だが
0751nobodyさん
垢版 |
2009/06/17(水) 21:05:37ID:IWequrKn
>>749
まじでわからん。どういうこと?
0752nobodyさん
垢版 |
2009/06/17(水) 21:47:23ID:IWequrKn
あっ、746の意味がわかりました
ありがとうございますー

0753nobodyさん
垢版 |
2009/06/18(木) 08:35:19ID:???
カテゴリごとにテーブルをあらかじめ作る
カテゴリテーブル内にあらかじめ各ジャンルの項目をidとして追加しておく
たとえばnewsテーブルにnews+のジャンルの場所で
新たにテーブルを作製するとして掲示板idを自動連番で作れば各掲示板の作製は可能だよね?
あとは掲示板id毎に呼び出せばその板は完成するし新しい板もすぐに作れるんじゃいの?
更新テーブルの作製と同じ感じにして作ればいいだけだよね?
あとは板id毎に呼び出せばいいだけ
0754nobodyさん
垢版 |
2009/06/18(木) 09:15:10ID:???
お前は何を言ってるんだ
0755nobodyさん
垢版 |
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
大丈夫かお前
0756nobodyさん
垢版 |
2009/06/18(木) 12:59:20ID:???
Blogのコメントとかはどんな設計になってるんですか?
0758nobodyさん
垢版 |
2009/06/18(木) 13:34:47ID:???
ブログはただ更新日ごとに並び替えてるだけだから
id、update、その他
で並び替えてるだけだろ
0759nobodyさん
垢版 |
2009/06/18(木) 17:27:49ID:???
カテゴリごとにテーブル作るとかアホすぎるだろ・・・
0760nobodyさん
垢版 |
2009/06/18(木) 18:09:47ID:???
>>759
???
スポーツ テーブル
|野球  テーブル
|サッカー テーブル
|ラグビー テーブル
こんな感じ?意味不明じゃない?
0761nobodyさん
垢版 |
2009/06/18(木) 18:14:28ID:???
基礎から勉強する気ないならせめて有名な既存のアプリの構造くらい見ろよ
0762nobodyさん
垢版 |
2009/06/18(木) 21:07:24ID:DYCy3X7Q
「ギークをピクっとさせる 10 の発言」
第 10 位「本物のプログラマーなら、絶対に PHP は使わない」
ttp://wiredvision.jp/news/200906/2009061721.html
0763nobodyさん
垢版 |
2009/06/19(金) 08:37:25ID:???
ニューステーブル(テーブル1)テーブル
|速報(板id1)
||麻生なんらた(スレid)
|||レス(レスid)
|ビジネス(板id2)

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

テーブルごとに呼び出してあげて
selectで板毎表示して、板idに対してスレidを自動増加させてスレを作らせればいい
ニューステーブルのスレは全部ニューステーブルに書き込む
スレid毎にselectさせて各スレを表示する 書き込む際もスレid指定にすればいいだけだろ
SQLの基本なんだがコレ
0764nobodyさん
垢版 |
2009/06/19(金) 09:30:16ID:???
なんでカテゴリID使わずにわざわざテーブル分けるの?
0765nobodyさん
垢版 |
2009/06/19(金) 11:57:38ID:???
2ch目指すなら将来のdatがらみの拡張も視野に入れて分けてみてるだけ
全部一括テーブルなら1万スレに10万レス〜で重くなると思ってね
0766nobodyさん
垢版 |
2009/06/19(金) 19:13:50ID:???
重くなるってどれくらい?
0767nobodyさん
垢版 |
2009/06/19(金) 19:19:38ID:???
車に足の指ひかれるくらい
0768nobodyさん
垢版 |
2009/06/19(金) 19:31:01ID:???
インデックスを適切に張れば10万件でも怖くない
ま、あくまで適切にだけどね。わからんかったらテーブル増やすのもよかろう
0769nobodyさん
垢版 |
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
0770nobodyさん
垢版 |
2009/06/19(金) 19:55:03ID:???
主キーがSub_id?きめぇw
0771nobodyさん
垢版 |
2009/06/19(金) 20:18:25ID:???
主キーはIDですけど・。・
0772nobodyさん
垢版 |
2009/06/19(金) 20:48:56ID:???
ID
1
1
1
2
に見えますが
0773nobodyさん
垢版 |
2009/06/20(土) 02:09:35ID:QTBi5S9Z
質問ですが
画像掲示板の画像はデータベースに格納して管理するもの?
0775nobodyさん
垢版 |
2009/06/20(土) 02:45:20ID:QTBi5S9Z
DB使わないほうがいいみたいですね
自己完結
0776nobodyさん
垢版 |
2009/06/20(土) 02:46:01ID:QTBi5S9Z
>>774
みたいですね
0777nobodyさん
垢版 |
2009/06/20(土) 08:31:51ID:???
DB格納じゃなくてUPディレクトリ作って画像はそこに入れて
DBには場所の指定だけすればいい
0778nobodyさん
垢版 |
2009/06/22(月) 00:48:01ID:Gda6/b69
画像ディレクトリ数は一つでなく枚数で切り分けていったほうがレスポンス的にいいですよね?
どれぐらいの基準が妥当なんでしょうか?

1ファイル平均20kと考えて、1ディレクトリ1000枚ってどうでしょう?
0779nobodyさん
垢版 |
2009/06/22(月) 01:03:54ID:???
とりあえず1行目の根拠は?
0780nobodyさん
垢版 |
2009/06/23(火) 09:49:21ID:PLp9Bj1g
>>778
妥当だな
100ではディレクトリが増えすぎてどうにもならん
10000になるとサーバーが泣き出す
0782nobodyさん
垢版 |
2009/06/24(水) 13:56:15ID:3DUTYr94
q
0783nobodyさん
垢版 |
2009/06/24(水) 14:00:24ID:3DUTYr94
>>779
ファイルシステムの面からしたら分割したほうがよいと思ったけど、
気にするレベルではないのかも

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

でも管理上、分けたほうがいいかな
0784nobodyさん
垢版 |
2009/06/25(木) 10:58:40ID:???
ファイル数よりも画像サイズ上限決めてそれ以上は古いのから削除でいいだろ
0785nobodyさん
垢版 |
2009/12/09(水) 15:36:46ID:Y/4U5CwX
htmlからPHPを使ってコマンドプロンプトで入力したデータベースを
読み込みたいんだがどうすればどうすればできるんだ?

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

環境はvistaでApache使用だ
phpのコードがわからない…
0786nobodyさん
垢版 |
2009/12/09(水) 21:54:43ID:???
データベース関数使えば?
0787nobodyさん
垢版 |
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になります
0788nobodyさん
垢版 |
2010/09/07(火) 06:27:21ID:???
>>787
> LIMIT 20, 40
↑20件目から数えて40件(60件目)のレコードを引っ張ってくるって意味だからでしょ。
0789nobodyさん
垢版 |
2010/09/14(火) 23:02:18ID:9q5J3OfB
スパム対策ってどうしていますか?
ならべくユーザーには負担かけたくないのですが
0791nobodyさん
垢版 |
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;
}
0792nobodyさん
垢版 |
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\">";
}
0793789
垢版 |
2010/09/16(木) 01:34:58ID:0KjQyMyY
丁寧な解説有難うございます。
スパムの性質で区別して減らしていくのですね。
0794nobodyさん
垢版 |
2010/09/16(木) 10:19:59ID:???
$spam_levelって変数を作って、スパムの性質で、重みを加算。
Case文で、$spam_levelの大きさによって処理をするといいよ。
Ex:
ホスト名にjpが含まれない $spam_level++;
日本語以外の文章 $spam_level = $spam_level + 3;
 ・・・
ってな感じ
0795nobodyさん
垢版 |
2010/11/15(月) 01:18:52ID:???
なるほど、偽フォームはいいやり方だなー
CAPTCHAとかって投稿する側からすると地味にうざいし

ただ、スパマーに反撃仕込むのは個人的には好きだけれど
BOTはレスポンスなんて見ないし、手動は基本的に抜けれるようにするものだから
あんまり意味ないとは思うトコロ
0797nobodyさん
垢版 |
2013/09/07(土) 09:15:38.40ID:MPfa+Pzu
あげましゅ
0798nobodyさん
垢版 |
2013/09/07(土) 16:12:30.82ID:wYHgN0Pa
おいおい
>>797
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況