PHP+MySQL掲示板作ろうぜ
■ このスレッドは過去ログ倉庫に格納されています
長期運用に耐え、勝手よく使える掲示板を生み出す。 クラス・ライブラリにして使いまわせるようにします。 MySQL以外のDBでも使えるようにAPI拡張も視野に入れて 基本APIと実装例 http://org.s38.xrea.com/bbs.php 臨時のログ・データ http://org.s38.xrea.com/bbs.log コレをベースに変更・改善を加えて各種機能を実装します。 ローカル・ルール ・みんなが気持ちよく参加できる雰囲気を作りましょう ・他者を不快にさせるような一方的な煽りは止めましょう ・荒らしやスレ違いは放置。放置できない人も荒らし同然。放置の美学 ・厳格なバージョニングは必要でないが変更点はマメに報告しましょう。 >>698 なにがしたいのかわからん上に、お前さんのキレイの基準がわからんからニンともカンとも >>699 えっとですね、 where A like ('%支店%','%支社%','%営業所%') IN条件みたいに、()内のうちどれかにあてはまるみたいに出来ないかなぁって。 ちなみに上記だとコンパイルエラーになります… >>701 答えわかりますか? 一応オラクルシルバーフェローは持ってますけど、わからないのです。 >>702 ちょっと待て、お前それ受かっておいて>>700 とかそりゃあんまりだろ MySQLではREGEXP(RLIKE)が使えるんだけどね あんまりDB依存のSQLは使わないほうがいいよ。 DB替える必要が出て来た時に困ることに成る。 すいません!本当にバカなのは認めますけど、 どなたか正解を教えてもらえませんか? >>698 で良いだろう。 どんな実装してるか知らんが、変にまとめようとするとかえって使い勝手が悪くなる。 SQL文なんざ他人に見えるものじゃなし、もっと別方向に注力するべき。 確かに698で動作的にも問題ないです。 でも、他の書き方も知りたいので是非教えて下さい!! >>667 PHP+Mysqlくらい自分で勉強するか、習ってやれよ。 めんどくさいけど、そんなに難しくないよ。 >>710 LIKEだらけの糞SQL使うぐらいならテーブル設計からやり直す 質問です。 あるサーバーを立てて、そこにトラックバックURL、内容、タイトルを データベースにし、ブログにそれをサーバーからトラックバックさせることは できますでしょうか? アドバイスお願いいたします。 DBを使わないでつくることにこだわりを持っている人がいる。 美しいではないか。 普通にMTでもどうぞって感じだな。 MTが分からなければ有償で教えてもらってくれ。 MTのこと知りたかったので自動車学校通って免許取ってきたよ。 四年前の書き込みをみるとなんだか寂しくなってくる。 まったく関係ないやつだが。 徳岡っ誰ですか?いろいろ騒がれてるけど。そいつが何をしたんですか? >>725 さん、それ誰か分かりますか。分かったなら教えてください MySQL Query Browserを使ってフィールドの値を全角で書き込むとPHPから読んだ時に文字化けするのですが どこを設定したら直りますか? mb_convert_encodingしても文字化けしたままです >>731 教えてgooで環境とコードかいて質問してみ レスってlongtextとblobってどっちがいいんですか? それともchar(255)? 今じゃネタにならないPHP+MySQL掲示板作ろうとおもってます・・・ クラス使おうと思ってるんですけど MySQLの接続もクラスに組み込んで(インスタンス生成したときに)MySQLにアクセスさせてデータのやり取りはクラス内でやるのと MySQLの接続はべっこにしてクラスからMySQLの関数にデータの受け渡しをするやり方 どっちがいいかなぁって考えてて 前者だと後々データベースを使わないでCSVにしようとしたらまた書き換えなきゃいけなくなるから 後者かなぁと思うんですけど どうなんでしょう? その程度で悩むならなんかフレームワーク使っちゃえば良いいんじゃないの。 悩みどころがごっちゃな文章なので問題点があまり見えてこないけど、 モデルとコントローラ分ければどっちでもいいと思うよ。 いつ接続していつまで保持するかは、画面遷移やUI/それらに絡む負荷次第で考える所かと。 データ側のモデル実装振り分けも、一度MySQL用にO/Rマッピングでもしときゃ分離すんのは楽なもんだよ。 MySQLって商用でもライセンス契約しないでいい方法ってある? くだらない質問だと思うのですが、教えてください 一般的に、 DBでマルチスレッド掲示板つくる場合、 1レスを1レコードとするんですか? そして1スレッドを1テーブルと。 では、新規スレの場合create table文を発行する? システム内でテーブル作成なんてありえないですよね? レスを分けることはないんじゃない? たとえば代表的なグループ板を作って過リンいid1として id1はニュースにした場合、テーブル項目でID振り当てて 1つのテーブルにいれればいいだけじゃないの? テーブル作製はしなくとも項目だけ作成していけば板はいくらでも孵やせれる >>746 全スレッドをテーブル1つにして、 ひとつのカラム(縦列)が1スレッドに結びつくということですか? 新規スレッド作成でカラムが増えていくということでしょうか。 alter table文を発行していくと。 ということは レス追加は、insertでなくて 先に1000行空を作っといてupdateしていく というやり方になるのでしょうか SQLite、案外にいいな ログの管理が楽そうだ 結合が鈍いのが難点だが あっ、746の意味がわかりました ありがとうございますー カテゴリごとにテーブルをあらかじめ作る カテゴリテーブル内にあらかじめ各ジャンルの項目をidとして追加しておく たとえばnewsテーブルにnews+のジャンルの場所で 新たにテーブルを作製するとして掲示板idを自動連番で作れば各掲示板の作製は可能だよね? あとは掲示板id毎に呼び出せばその板は完成するし新しい板もすぐに作れるんじゃいの? 更新テーブルの作製と同じ感じにして作ればいいだけだよね? あとは板id毎に呼び出せばいいだけ >>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 大丈夫かお前 Blogのコメントとかはどんな設計になってるんですか? ブログはただ更新日ごとに並び替えてるだけだから id、update、その他 で並び替えてるだけだろ カテゴリごとにテーブル作るとかアホすぎるだろ・・・ >>759 ??? スポーツ テーブル |野球 テーブル |サッカー テーブル |ラグビー テーブル こんな感じ?意味不明じゃない? 基礎から勉強する気ないならせめて有名な既存のアプリの構造くらい見ろよ 「ギークをピクっとさせる 10 の発言」 第 10 位「本物のプログラマーなら、絶対に PHP は使わない」 ttp://wiredvision.jp/news/200906/2009061721.html ニューステーブル(テーブル1)テーブル |速報(板id1) ||麻生なんらた(スレid) |||レス(レスid) |ビジネス(板id2) | シュミテーブル(テーブル2) テーブルごとに呼び出してあげて selectで板毎表示して、板idに対してスレidを自動増加させてスレを作らせればいい ニューステーブルのスレは全部ニューステーブルに書き込む スレid毎にselectさせて各スレを表示する 書き込む際もスレid指定にすればいいだけだろ SQLの基本なんだがコレ なんでカテゴリID使わずにわざわざテーブル分けるの? 2ch目指すなら将来のdatがらみの拡張も視野に入れて分けてみてるだけ 全部一括テーブルなら1万スレに10万レス〜で重くなると思ってね インデックスを適切に張れば10万件でも怖くない ま、あくまで適切にだけどね。わからんかったらテーブル増やすのもよかろう 私ならこうやりますけど ID c_name 1 地震 2 実況ch Sub_id ID c_name 1 1 地震headline 2 1 地震速報 3 1 臨時地震 4 2 実況headline 質問ですが 画像掲示板の画像はデータベースに格納して管理するもの? DB格納じゃなくてUPディレクトリ作って画像はそこに入れて DBには場所の指定だけすればいい 画像ディレクトリ数は一つでなく枚数で切り分けていったほうがレスポンス的にいいですよね? どれぐらいの基準が妥当なんでしょうか? 1ファイル平均20kと考えて、1ディレクトリ1000枚ってどうでしょう? >>778 妥当だな 100ではディレクトリが増えすぎてどうにもならん 10000になるとサーバーが泣き出す >>779 ファイルシステムの面からしたら分割したほうがよいと思ったけど、 気にするレベルではないのかも ディレクトリに入るファイル数も1万5千くらいまでは問題ないみたいだし でも管理上、分けたほうがいいかな ファイル数よりも画像サイズ上限決めてそれ以上は古いのから削除でいいだろ htmlからPHPを使ってコマンドプロンプトで入力したデータベースを 読み込みたいんだがどうすればどうすればできるんだ? 顧客情報ページってゆうhtml作ってその中に コマンドプロンプトで入力した 顧客情報データベース(顧客ID、名前、住所)、 かごデータベース(商品ID、商品名、数量)を表示させたいんだが・・・ 環境はvistaでApache使用だ phpのコードがわからない… "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になります >>787 > LIMIT 20, 40 ↑20件目から数えて40件(60件目)のレコードを引っ張ってくるって意味だからでしょ。 スパム対策ってどうしていますか? ならべくユーザーには負担かけたくないのですが 日本語のスパムも増えてるし、今後も増えるし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; } 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\">"; } 丁寧な解説有難うございます。 スパムの性質で区別して減らしていくのですね。 $spam_levelって変数を作って、スパムの性質で、重みを加算。 Case文で、$spam_levelの大きさによって処理をするといいよ。 Ex: ホスト名にjpが含まれない $spam_level++; 日本語以外の文章 $spam_level = $spam_level + 3; ・・・ ってな感じ なるほど、偽フォームはいいやり方だなー CAPTCHAとかって投稿する側からすると地味にうざいし ただ、スパマーに反撃仕込むのは個人的には好きだけれど BOTはレスポンスなんて見ないし、手動は基本的に抜けれるようにするものだから あんまり意味ないとは思うトコロ ∧_∧ ( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ ←>>409 (_フ彡 / 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 YZX2EJPIHV ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる