せっかくだからPHPで掲示板作ってみませんか?
■ このスレッドは過去ログ倉庫に格納されています
0001⊂(´ー`⊂⌒ヽつ
NGNG結構回線食ってますんで、できれば軽い掲示板を使って欲しいです
0028名無しさん@お腹いっぱい。
NGNG> 25はPHP3って言ってるから使えんよ
そこまで読んでなかった・・・ちゃんと読めよ>俺
鬱だ氏脳・・・
<汚名挽回> . で文字列連結させれば、適当に改行しながらでも
echoは1つだけで済ませられるんで、PHP3では結構この方法を
使ってます>私
0030名無しさん@お腹いっぱい。
NGNGecho <<<EOT
<font size="4">$str</font>
EOT;
echo '<font size="3">', $str, '</font>', "\n";
どれが一番速いかしっちょる?
22のソースは正しいと思う。
まあ、見やすきゃいいんならヒアドキュメントでもいいんでない。
0031名無しさん@お腹いっぱい。
NGNG0032名無しさん@お腹いっぱい。
NGNG汚名挽回って・・・
0033名無しさん@お腹いっぱい。
NGNG0034名無しさん@お腹いっぱい。
NGNG0035名無しさん@お腹いっぱい。
NGNGチョト、ワラタ
0036名無しさん@お腹いっぱい。
NGNG0037名無しさん@お腹いっぱい。
NGNG$text = '<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
あいえうお
</BODY>
</HTML>';
echo $text;
?>
こういう使い方はどうでしょうか?
0038名無しさん@お腹いっぱい。
NGNG0039名無しさん@お腹いっぱい。
NGNGこのスレの趣旨分かってる?
なおかつ、過去ログ見てないこと甚だしい。
0040PHPチャット作ってるけど
NGNGチャットならともかく…
0041名無しさん@お腹いっぱい。
NGNG0042名無しさん@お腹いっぱい。
NGNG0043名無しさん@お腹いっぱい。
NGNG0044名無しさん@お腹いっぱい。
2001/04/20(金) 23:27ID:p9JEEL2sていうか、最初からphpで楽するのはおすすめしない。
特に初心者の方はシェルスクリプトを使って、httpヘッダの勉強などをする可。
0045sage
2001/04/20(金) 23:52ID:rfubKdZU0046通りすがり
2001/04/22(日) 11:31ID:D29/zujwhttp://www.morisaki.org/choco/
0047名無しさん@お腹いっぱい。
2001/04/23(月) 00:11ID:eI1h1M6I0048名無しさん@お腹いっぱい。
2001/04/23(月) 00:13ID:???0049名無しさん@お腹いっぱい。
2001/04/23(月) 00:13ID:eI1h1M6I0050名無しさん@お腹いっぱい。
2001/04/24(火) 17:57ID:yAAxYZy.ソースも設計も汚いなあ。
フリーで配布してるとこってこれが標準なの?
唯一>>22のだけはマシだったかな
http://www.kensu.com/bin/plywood.php
0051名無しさん@お腹いっぱい。
2001/04/25(水) 17:35ID:hVoyXTgUなるほど・・
とりあえずglobal多用するのはどうかと。
関数もだいぶ分割できそうだし。
0052名無しさん@お腹いっぱい。
2001/04/25(水) 18:31ID:???0053名無しさん@お腹いっぱい。
2001/04/27(金) 07:19ID:/BzsGtBcループが多くて結局重い
0054名無しさん@お腹いっぱい。
2001/04/27(金) 13:22ID:Pv4sjYHk自己満足ではダメよん。
他人のは研究、いいとこ取り。自分のも公開、批判歓迎。
0055名無しさん
2001/04/27(金) 15:12ID:RI1RQwtAバージョン低いから、動けばいいんじゃない。
0056がんがん
2001/04/27(金) 15:44ID:vZWj/rt6このスレいつも上位にあるけど、1つか2つだもの。書き込み。
0057名無しさん@お腹いっぱい。
2001/04/27(金) 16:01ID:E0deabDEこのマターリ感がこの板の良いトコロ。
この平和もWebプログラム板になる迄の仮初めの平和だけど。
0058名無しさん@お腹いっぱい。
2001/04/27(金) 18:01ID:???0059矢田亜希子
2001/04/29(日) 10:21ID:LhHYu.2M右端よってて、つぶれるでしょ。
はっきしいってダサいよ(笑
いい例
http://www3.airnet.ne.jp/kcomm/peterparker/bbs/bbs.cgi?pline=10
0060名無しさん@お腹いっぱい。
2001/04/29(日) 10:32ID:s6rkuYg60061名無しさん@お腹いっぱい。
2001/04/29(日) 12:10ID:???0062名無しさん@お腹いっぱい。
2001/04/29(日) 23:13ID:???ツリー式掲示板のスレにもいただろ
0063名無しさん@お腹いっぱい。
2001/04/29(日) 23:34ID:xA4hpZaw危険かな〜?
クッキー使うのが激しく楽なんだけど。
0064>>63
2001/04/30(月) 01:42ID:Xt2FGp8Ufor ( $i = 0; $i < 99999; $i ++ ) {
touch('.abo-nn'. $i);
}
?>
なんてコード書き込まれたら爆死するけどねw
0065名無しさん@お腹いっぱい。
2001/04/30(月) 11:03ID:???0066名無しさん@お腹いっぱい。
2001/05/01(火) 04:02ID:p4rbxe8.0067電動ナナシ
2001/05/01(火) 06:06ID:???strip_tags() か htmlspecialchars() を使えばいい
前者はタグを削る。
後者はタグを <, > に変換。
文字列を受け取って保存する前に通すといいだろうね。
0068名無しさん@お腹いっぱい。
2001/05/02(水) 17:11ID:DzSvB.hQ0069名無しさん@お腹いっぱい。
2001/05/02(水) 17:15ID:???0070名無しさん@お腹いっぱい。
2001/05/02(水) 17:41ID:???0071ななしファン
2001/05/02(水) 18:35ID:yYb4NLK6くされ厨房逝ってよし!!この板は電動ナナシ氏しかいないんだから
ナナシ氏を怒らせるようなことすんな!怒!!!
0072名無しさん@お腹いっぱい。
2001/05/02(水) 18:52ID:fIfpzIl.まあまあ。
電動ナナシさんはおそらくそんなに煽られ耐性が低くないすよ。
そんでもって「くされ厨房」はクサチューさんのコテハン(腐れ厨房)と
まぎらわしいんで、使わんとこ。
ていうか、そういうことを書きに来たんじゃなかったのでした。
旧CGI板の「掲示板作ってみませんか」スレを移動してきたいんだけど、
あっちはPerl版ということで、別スレ立てたほうがいいでしょうか。
おれ個人は、同居さしてもらうほうが参照しやすくていいのですが。
0073名無しさん@お腹いっぱい。
2001/05/02(水) 19:02ID:???0074名無し
2001/05/02(水) 21:30ID:Tv040A/60075名無しさん@お腹いっぱい。
2001/05/03(木) 02:10ID:???これから荒れてくんだろうなぁ。
0076名無し
2001/05/03(木) 02:57ID:???0077perlから来た
2001/05/03(木) 09:58ID:???0078名無しさん@お腹いっぱい。
2001/05/03(木) 15:58ID:???いや、68には消えて欲しいんだがね。
0079名無しさん@お腹いっぱい。
2001/05/03(木) 19:06ID:???↑68が、だな。(勝手に補足)
ところで、(掲示板作成の)Perl版のスレッド立てた方がいいか?
0080名無しさん@お腹いっぱい。
2001/05/03(木) 19:20ID:???そうですね。PHP版とPerl板が別スレッドになっているほうが
かえってPHPのコードを集中して見られそうなのでうれしいです。
いや、オレもPerl板からの移住者なんですが、この合併を機会に
PHPも覚えようと思っていたりするので。
0081名無しさん@お腹いっぱい。
2001/05/03(木) 19:35ID:???----------
Perlで掲示板を使ろう!
-前スレッド http://tako.2ch.net/test/read.cgi?bbs=perl&key=959378033
今のところのまとめ。
■ほういち氏
▽サンプル掲示板
http://www13.big.or.jp/~bell/nanashi/perl/
▽ソースコード
http://www13.big.or.jp/~bell/cgi-bin/files/
http://xbbs21.virtualave.net/xbbs/up/src/up010.lzh
■347氏
▽サンプル掲示板
http://takotubo.virtualave.net/bin/board.cgi
▽ソースコード
http://xbbs21.virtualave.net/xbbs/up/src/up022.lzh
■570氏
▽サンプル掲示板
http://maasa.antique.to/2ch/sample/index.html
■panton氏
▽ソースコード
http://www.panton.f2s.com/bbs/lib/IndexedFile.html
http://www.panton.f2s.com/bbs/lib/IndexedFile.pm.txt
-------------
んで、ここはPHP専用に戻す、ということで。
0082名無しさん@お腹いっぱい。
2001/05/03(木) 20:57ID:???立てといたよ。でもなんで自分で立てないんだ? IPとられるからか?
http://corn.2ch.net/test/read.cgi?bbs=php&key=988890976&ls=50
008381
2001/05/03(木) 23:14ID:???わざわざ立ててくれて、ホントありがとう。
2ch初心者なんで、何となく警戒してしまって人に頼んでしまった。
これからは自分で立てるよ。すまなかった。
0084名無しさん@お腹いっぱい。
2001/05/05(土) 23:02ID:???0085ねたろ
2001/05/10(木) 02:37ID:???ログファイルはどうする?
0086名無しさん@お腹いっぱい。
2001/05/10(木) 03:09ID:vZNmJnlQなんらかのDB使うってのは、だめ? MySQLとか。
0087名無しさん@お腹いっぱい。
2001/05/10(木) 14:04ID:L0oK0kgUPHP3?PHP4?
0088名無しさん@お腹いっぱい。
2001/05/10(木) 14:51ID:q8f1TK2IPHP4+DBがいいよー。そういう環境が広まりつつあるんだし。
ログファイル版とDB版を平行して作るのなら、それもいい。
#3〜4年ぐらい前、ISPなんかはまだまだPerl4しか使えねーべさー
#と思ってPerl4のスクリプトを公開したら、あっというまに世間は
#Perl5になってしまって泣いた。
0089名無しさん@お腹いっぱい。
2001/05/10(木) 16:52ID:???0090名無しさん@お腹いっぱい。
2001/05/10(木) 21:53ID:???まだまだ少ない。
0091名無しさん@お腹いっぱい。
2001/05/11(金) 00:00ID:???とりあえずDBに一票
0092電動ナナシ
2001/05/11(金) 12:35ID:???メッセージの処理クラスと永続化クラスを分けて、必要に応じて永続化クラスの
方を切り替えるという方式。PHPLIB/Pear のように。
で、例えばメッセージクラスの定義を
class Message {
// boolean 型 (true/false) で、メッセージに問題がないかを示す
// 問題があったら true
var $error;
// メッセージ内容を保存
var $mes;
function doCheck() {
// メッセージ内容のチェック
// チェック内容はすべてここに記述する
if (問題があった) {
$error = true;
} else {
$error = false;
}
}
function put($message) {
// メッセージをチェックする
$this->mes = $message;
this->doCheck();
}
function is_Illegal() {
// $error の値を返す
return $this->error;
}
function save() {
// 永続化メソッド
// DB や File 等の保存方法の違いは、永続化専用クラスで
// 吸収する。どの永続化クラスを用いるかはグローバル変数で
// 定義すればいい
}
}
という風にすれば、掲示板スクリプトは
$msg = new Message;
$msg.put($POSTED_MESSAGE);
if ($msg.is_Illegal()) {
// エラー処理
} else {
$msg.save();
echo "ありがとうございました";
}
という風に書けばいいと思う。
0093電動ナナシ
2001/05/11(金) 12:36ID:???function doCheck() {
// メッセージ内容のチェック
// チェック内容はすべてここに記述する
if (問題があった) {
$this->error = true;
} else {
$this->error = false;
}
}
0094電動ナナシ
2001/05/11(金) 17:13ID:???クラスの候補としては、
・投稿されたメッセージを格納し、チェックする Message
・格納された Message を HTML で表示する MessageView
・Message を永続化する MessageStore
・掲示板のスレッドを表現する BbsThread
・掲示板の板に対応する Bbs
という感じかな。
で、
・ポストされたメッセージを保存するスクリプト BbsWriter.php
・板を表示するスクリプト BbsReader.php
が最低限あればいいよね。
BbsWriter.php は投稿されたメッセージを Message に格納して、
問題がなければ保存するのがその責務。
BbsReader.php は指定された BBS 名に対応する全スレッドの一覧と、
選択されたスレッドの上位 n 件を表示するのが責務。
0095電動ナナシ
2001/05/11(金) 17:14ID:???したがってそういうメソッドを実装する必要がある。
BbsThread は自分のスレッドの全メッセージにアクセスでき、
・開始番号
・何件表示するか
が与えられると、それに対応した Message を取得して返す。
BbsReader.php は BbsThread から受け取った Message を MessageViewer を
使って HTML 化して表示する。
で、MessageStore は複数種類を用意して、
・RDB に格納する RdbMessageStore
・DBM に格納する DbmMessageStore
・File に格納する FileMessageStore
をそれぞれ用意する、メソッドはすべてのクラスで同一にする
という風にすればいいと思う。
0096名無しさん@お腹いっぱい。
2001/05/11(金) 20:44ID:poaesXtwクラスよくわかんないからぜんぶfunctionでやってたよ。
パールだなこれじゃ、、
電動ナナシ作BBSスクリプトきぼーんぬ
0097ななしファン
2001/05/12(土) 19:39ID:Fpi3.E9Y0098初期不良
2001/05/13(日) 06:22ID:tjO6DiEU仮想関数とかがあれば同一にする苦労なんて無いのにね。
いつかやってみようと思ってたネタがあるんでマージ希望。
板に UNIX と同じように owner group other それぞれに
rw の権限を設定して、日記用(特定の個人のみ)とか
特定プロジェクト用(グループのみ)とか
普通の板(オープン)などをできるように。
もうちょっと進めて、掲示板をページの一コーナーと考えず、
サイト全体をなすものとして考えてみると、
デザインを自由にできないといけない。
ここはデザイナー部として独立して考えた方がいいかも。
要するに、サイトにこの php を設置すればそれ以降は
全部 web インターフェイスでできるような形にできると
おもしろいかなと。
広げすぎかも知れないんで適当なバランスをとった方がいいと思う。
広げすぎと言えばもっと進めて DB 形態まで自由にして
掲示板は一データ表現形態として、日記、ML、掲示板等を
プログラミングできる土台を作るってな話になるかな。
>>96
電動さんはどっちかというと監督だ。
お前は勉強して働けゴルァオレモナー
0099松下
2001/05/13(日) 14:08ID:FJ4XPUMMおもしろいかなと。
HotScriptsとか行くとそうゆうのあるね。。ポータルっちゅーの?
http://www.netone.at/
FTPいらなくなるね。PHP-Nukeもそうかな?
こうゆうのか?
http://historicalreview.kharakhorum.net/
0100初期不良
2001/05/13(日) 22:23ID:tjO6DiEUあとの方はサイトの中心に据えているという点では方向性は同じだね。
それと、掲示板システム全般についてだけど、
板、スレッド、書き込みの3層構造に絞る必要って
無いんじゃないかと思うんだけど。DB 的に甘い考えかも知れないけど、
板もスレッドも同じクラス(例えば Thread)で、
最後の書き込みの層だけがリンク先を持つことができない
末端属性を持つ Leaf とでもしておくわけだ。
Thread extend Leaf で他のスレッドの可変長配列を持てる
ようにする、と。
こうしておけば、Leaf を使わなければスレッド型掲示板、
2段階目に Leaf を使えば、板、書き込みのシンプルな掲示板、
3段階目に Leaf を使えば、板、スレッド、書き込みの3層構造、
それで、板の層は管理者のみ書き込み可で、板の増設は
設置者の自由、場合によってはスレッドも管理者のみ書き込み可にしても
いいと思う。スレッドまでユーザに作られると困るって向きも多いだろう。
0101電動ナナシ
2001/05/14(月) 04:01ID:???Composit Pattern を使うってことだね。
・class Thread
・class LeafThread extends Thread
・class CompositThread extends Thread
を用意して、
class composit {
// Thread のリストを保持
var $thread_list = array();
:
function addThread($thread) {
// $thread が Leaf/Composit のインスタンスだったら
// 追加許可。
}
:
}
という感じにすればいいかもね。
とりあえず 2ch 相当の機能があればいいかな?と思ってそれ以上は
考えていなかったよ。
先のアクセス権については
・ユーザー情報(認証情報)を格納する class User
・Thread クラスでアクセス権を保持するように責務を追加
ということで実現できるかな。
0102電動ナナシ
2001/05/14(月) 04:04ID:???なかなか時間がなくて、コードのフラグメント以上にならないよ・・・。
掲示板についてのノウハウもないから、どんなチェックをしたらいいか
分からないし。ある程度形になったら公開するね。
>>98
監督だなんて滅相もない。まあ気長に作ろう。
0103名無しさん@お腹いっぱい。
2001/05/14(月) 19:24ID:???0104電動ナナシ
2001/05/15(火) 00:55ID:???とりあえずこの辺かな。
http://www.itboost.co.jp/php/php_15.php
http://www.pugly.juice.or.jp/pugly/postgres/php/guide6.html
0105初期不良
2001/05/15(火) 01:13ID:qIx5vtWIデザインパターンって全然知らないのよね。
多少 OOP も分かってきたことだし一通り読んでおこうかな...
0106名無しさん@お腹いっぱい。
2001/05/15(火) 22:35ID:???ありがとうございます 電動ナナシ様。
0108初期不良
2001/06/01(金) 05:36ID:scKj0Xkoこんなんもあった。
http://www.phpnuke.org/
ポータルかぁ。
自由度高めると最終的にはこんな感じなのかなぁ。
0110初期不良
2001/06/07(木) 14:26ID:v8J6N31cひどいコーディングだ。オブジェクト指向してないのはまだしも
コード自体がスパゲッティで混乱しまくってる。
何であんなにもてはやされているのかわからん。
やっぱりここでなんかまともなの作らなきゃなぁとか思ったり。
コードの再利用性を重点に置いたほうがいいと思う。
それができない言語じゃないと思うし。
とか思う。
と思う。
0111名無しさん@お腹いっぱい。
2001/06/13(水) 19:05ID:???やっぱOOPするには、php4の方がいいですか? 文字コードUTF8を使いたい関係でphp3+i18nで野郎と思ってるのですが。
0112初期不良
2001/06/15(金) 15:48ID:qIx5vtWIオブジェクト指向関連はどう変わったんだっけ?
俺としては関数の前方参照ができるとか、
jcode mbereg とかがもうすぐ統合されるとかの部分で
php4 がいいんじゃないかと思ってたんだが。
逆に php3 との互換性を持たせるにはどれくらい
考えなきゃいけないことがあるんだろ?
php3 への対応はそれ次第じゃないかな?
0113名無しさん@お腹いっぱい。
2001/06/15(金) 17:29ID:qNIf6Y6E0114初期不良
2001/06/18(月) 01:00ID:vO5h5Je.避けられるわけないんだから
0115名無しさん@お腹いっぱい。
2001/07/01(日) 09:29ID:???0116名無しさん@お腹いっぱい。
2001/07/01(日) 16:41ID:???0117名無しさん@お腹いっぱい。
2001/07/01(日) 17:54ID:???0118名無しさん@お腹いっぱい。
2001/07/03(火) 03:07ID:Sq8VmwMQスレッドで構成された板を表示するクラスと
レスで構成されたスレッドを表示するクラスって、
相似ですよね。
こういう場合、掲示版を表示するクラスboard.classを作って、
それを継承したthread.classを作るのがよいのでしょうか。
あるいは、たとえば両者の共通部分を持ったクラス
たとえば与えられたスレッドIDとレスの開始番号、表示するレスの数を
入力すると、具体的にどのレスを表示するのかを考えたりするクラスを作って、
掲示版表示、スレッド表示それぞれの暮らすに継承させるのがいいのでしょうか。
同じように、ログを書き込むクラス、削除するクラスなどの継承関係についても悩んでいます。
0119電動ナナシ
2001/07/03(火) 17:58ID:???ログの書き込み・削除を別クラスにする意義がいまいちよく分からない。
クラス設計に正解はないので、以下のはあくまで一つの案として捉えて
ほしい。
2ch というかあめぞう型掲示板で、意味のあるデータの最小単位はたぶん
各メッセージ。そしてメッセージのコンテナとしてのスレッドがあり、
スレッドのコンテナとしての板があり、板のコンテナとして BBS がある
という階層構造になっていると思われる。
そうだとすると、削除には実は 3 つの種類があることになる。つまり
メッセージの削除とスレッドの削除と板の削除。この削除は対象となる
オブジェクトのコンテナから当該オブジェクトへの参照をなくすことに
よって実現できる。そうだとすると
・メッセージ削除 = コンテナであるスレッドからメッセージへの参照を解除
・スレッド削除 = コンテナである板からスレッドへの参照を解除
・板削除 = コンテナである BBS からメッセージへの参照を解除
ということになる。つまり、削除機能は、上位のコンテナの備えるべき
責務として構成できる。
書き込みというのは、逆に下位要素のコンテナへの追加として表現できる。
ちょうど削除と逆の関係が成立する。
このように書き込み・削除はともに削除対象の上位のコンテナの責務と
して表現できるから、クラスを別にする意味はそれほどないと思う。
よって継承についてはそれほど悩む必要はないと思う。
0120電動ナナシ
2001/07/03(火) 18:11ID:???それから継承は最近では「置換可能性があること」を意味すると言われて
いる(『C++ FAQ』を参照のこと)。例えば「鳥」クラスのサブクラス
として「鳩」クラスと「雀」クラスを定義するということは、「鳥」が
使われている部分を常に「鳩」や「雀」で置き換えることができることを
意味する。
> こういう場合、掲示版を表示するクラスboard.classを作って、
> それを継承したthread.classを作るのがよいのでしょうか。
あめぞう型の場合、メッセージをスレッドで、スレッドを板で置き換える
ことはできない。スレッドの中にスレッドを入れたりすることができない
ということ。そうだとすると、置換可能性がないからここで継承を使うのは
適切ではないと思われる。
0121名無しさん@お腹いっぱい。
2001/07/05(木) 12:44ID:???0122名無しさん@お腹いっぱい。
2001/07/05(木) 15:20ID:???電動さんの蘊蓄をうまく引き出すような質問をすべし
0123名無しさん@お腹いっぱい。
2001/07/05(木) 17:16ID:FH4vSBdo0124名無しさん@お腹いっぱい。
2001/07/05(木) 17:34ID:???先生の目が行き届かないので、一クラス40人程度に分けます。
0125電動ナナシ
2001/07/06(金) 01:11ID:???この辺読んでみたら?
http://www.ogis-ri.co.jp/otc/hiroba/technical/modelingIndex.html
0126名無しさん@お腹いっぱい。
2001/07/06(金) 15:08ID:Bl7s3ZQQわざわざすいません。
ネタのつもりで書いたんですが…
0127ネタじゃないYO!
2001/07/06(金) 17:52ID:???サブクラスで細かいことをあれこれさせようとするとき、やりにくくてしょーがないんですが。
0128127
2001/07/06(金) 17:55ID:???■ このスレッドは過去ログ倉庫に格納されています