1read 100read
2013年02月WebProg442: せっかくだからPHPで掲示板作ってみませんか? (345) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Session管理してる? (214)
PHP を流行らせるには (210)
組み込み型全文検索エンジンSenna (269)
WebProg板出席簿(寂) (256)
GoogleAPIってどうよ? (307)
1chスクリプト改造(改良)スレ パートA (369)

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


1 : 2001/02/22 〜 最終レス :2013/02/03
Perl + CGI とか色々ありますけど、サーバ管理してるものとしては重いんですよ
結構回線食ってますんで、できれば軽い掲示板を使って欲しいです

2 :
>>1
ほいな。
http://kaeramel.umio.net/bbs/1.html

3 :
つーか、この板がPHP化するってのはどう?

4 :
そーすきぼーん>>2

5 :
>4
http://php.s3.to/
ここにあめぞう型があったよ・・

6 :
>>5
あすか使ってるみたい。

7 :
>>3
ソースがあればな。無くても作れるが、作る気しない

8 :
7>
5の書いているリンク先にソースがあるけど。
向こうの人も、ここに気づいていてリンク貼ってるし。

9 :
>>1
>Perl + CGI とか色々ありますけど、サーバ管理してるものとしては重いんですよ
>結構回線食ってますんで、できれば軽い掲示板を使って欲しいです
回線食って重いのを PerlからPHPに変えても効果はないです。
mod_gzipとか、ヘッダで
$gzip = '/path/to/gzip';
if ($ENV{'HTTP_ACCEPT_ENCODING'}=~/gzip/) {
select (STDOUT);
$|=1;
print "Content-Type: text/html; charset=Moji-Code\n";
print "Content-encoding: gzip\n\n";
open(STDOUT,"| $gzip -1 -c -9");
} else {
print "Content-Type: text/html; charset=Moji-Code\n\n";
}
ってな感じで圧縮転送しなされ。

10 :
圧縮してたらCPUが死ぬ。その技は回線細いときだけ有効

11 :
>>10
$B#1$O(B
$B!d7k9=2s@~?)$C$F$k$N$G(B
$B$D$C$F$k$+$i2s@~$,%M%C%/$GCY$$$s$@$m!)(B
$B$@$C$?$i(BPerl$B"*(BPHP$B$h$j05=L$NJ}$,8z2L9b$$$h!#(B

12 :
>>9
<?php
ob_start();
?>
<html>
あっぱい
いっぱい
うっぱい
えっぱい
R。
</html>
<?php
if ( stristr('gzip', getenv('HTTP_ACCEPT_ENCODING')) ) {
&nbsp;&nbsp;&nbsp;&nbsp;$contents = ob_get_contents();
&nbsp;&nbsp;&nbsp;&nbsp;ob_end_clean();
&nbsp;&nbsp;&nbsp;&nbsp;header('Content-Encoding: gzip');
&nbsp;&nbsp;&nbsp;&nbsp;echo gzcompress($contents);
&nbsp;&nbsp;&nbsp;&nbsp;exit;
} else {
&nbsp;&nbsp;&nbsp;&nbsp;ob_end_flush();
&nbsp;&nbsp;&nbsp;&nbsp;exit;
}
?>
PHP移植ばん。

13 :
>>11 翻訳。
>>10
1は
>結構回線食ってるので
つってるから回線がネックで遅いんだろ?
だったらPerl・・・寇タ佝・ぢより圧縮の方が効果高いよ。

14 :
>>10
> 1は
> >結構回線食ってるので
> つってるから回線がネックで遅いんだろ?
> だったらPerl→PHPより圧縮の方が効果高いよ。
だろ?

15 :
>>14
アシュークすると、 iModeのブラウザでは読めないんだ。
UAがgzをacceptするかどうかをちゃんと聞かないといけないな。めんどくさいけど。
酔ばらーているのでもう寝ます。
ではまた、

16 :
作ってみたです。
よかったらテストしてみてちょ。
http://masetersd.saxen.net/bbs/test/index.php
http://masetersd.saxen.net/bbs/config.php(管理モード)

17 :
>>16
サーバーが見つかりませんって言われたけど?
saxen.net 自体に masetersd というホストがないぞ。

18 :
繋がるみたいだけど。

19 :
>>17
HTTP 1.0 ですか?

20 :
age

21 :
>>16
ソースきぼんぬ。

22 :
こんなのもあるよ。
http://www.kensu.com/bin/plywood.php
ソースちらっと見てみたけど、きれいだった。

23 :
ロジックはね。
echoの嵐はどうにかならんのかね。

24 :
cgiと変わらないですね

25 :
>>22
わかりやすいソース! PHPはじめて一週間の俺でもよくわかった。
直接管理モード呼び出せるように改造してみた。
highlightって関数、マニュアルに載ってないみたいだなー。
探し方が悪いのか?
>>23
今使ってるのPHP3なんだけど、echoの嵐にしない方法ある?

26 :
>>25
echo "************(中略)**************\n";
と、最初から最後まで1行で書けば、echoは1つだけで済む。
ただし、echoの嵐以上に見苦しい。
Perlみたいにヒアドキュメントを使うのはどう?
 

27 :
>>26
>Perlみたいにヒアドキュメントを使うのはどう?
25はPHP3って言ってるから使えんよ

28 :
>>27
> 25はPHP3って言ってるから使えんよ
 そこまで読んでなかった・・・ちゃんと読めよ>俺
 鬱だ氏脳・・・
 <汚名挽回> . で文字列連結させれば、適当に改行しながらでも
echoは1つだけで済ませられるんで、PHP3では結構この方法を
使ってます>私


29 :
>>26
>>27
>>28
情報、さんきゅーです。
PHPだと軽いから、2ch風の掲示板作りたいと思って、Perlから移植するために研究中な俺なの。

30 :
echo "<font size=\"4\">$str</font>\n";
echo <<<EOT
<font size="4">$str</font>
EOT;
echo '<font size="3">', $str, '</font>', "\n";
どれが一番速いかしっちょる?
22のソースは正しいと思う。
まあ、見やすきゃいいんならヒアドキュメントでもいいんでない。

31 :
<font size="4"><? echo $str; ?></font>

32 :
>>28
汚名挽回って・・・

33 :
名誉挽回、汚名撤回だね

34 :
汚名返上、ね 

35 :
>>32-34
チョト、ワラタ

36 :
http://www.phpbb.com/

37 :
<?
$text = '<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
あいえうお
</BODY>
</HTML>';
echo $text;
?>
こういう使い方はどうでしょうか?

38 :
PHP4の2ch型掲示板どっかに無〜い?

39 :
>>38
このスレの趣旨分かってる?
なおかつ、過去ログ見てないこと甚だしい。

40 :
掲示板ぐらいならPerlでもいい、と思うのは自分だけだろうか
チャットならともかく…

41 :
掲示板ぐらいだからこそPHPだろ。

42 :
つかPHP板なんだから掲示板もPHPだろ。

43 :
どうなんだ!!YO!!

44 :
掲示版くらいならシェルスクリプトで十分。
ていうか、最初からphpで楽するのはおすすめしない。
特に初心者の方はシェルスクリプトを使って、httpヘッダの勉強などをする可。

45 :
何でも動きゃいいんだよ。

46 :
森咲氏の作った掲示板、軽くて優れものですよ。
http://www.morisaki.org/choco/

47 :
test

48 :
 

49 :
 

50 :
>>46
ソースも設計も汚いなあ。
フリーで配布してるとこってこれが標準なの?
唯一>>22のだけはマシだったかな
http://www.kensu.com/bin/plywood.php

51 :
>>50
なるほど・・
とりあえずglobal多用するのはどうかと。
関数もだいぶ分割できそうだし。

52 :
ってかこのスレは他のサイトのPHP掲示板を紹介するスレじゃないだろう

53 :
掲示板作ってるけど
ループが多くて結局重い

54 :
紹介歓迎。オープンソースとはそういうもの。
自己満足ではダメよん。
他人のは研究、いいとこ取り。自分のも公開、批判歓迎。

55 :
>>50
バージョン低いから、動けばいいんじゃない。

56 :
しかし、この板、もりあがってねえな。
このスレいつも上位にあるけど、1つか2つだもの。書き込み。

57 :
>>56
このマターリ感がこの板の良いトコロ。
この平和もWebプログラム板になる迄の仮初めの平和だけど。

58 :
とりあえずツリー掲示板作ります。

59 :
ツリー式って、レスのレスのレスの、、ってやってくとどんどん
右端よってて、つぶれるでしょ。
はっきしいってダサいよ(笑
いい例
http://www3.airnet.ne.jp/kcomm/peterparker/bbs/bbs.cgi?pline=10

60 :
ツリー式作って喜ぶのは初心者だけ。

61 :
>>59=60は用途によって使い分けの出来ない馬鹿

62 :
>>59
ツリー式掲示板のスレにもいただろ

63 :
書き込み時にindex.htmlを吐くところをindex.phpで吐くのは
危険かな〜?
クッキー使うのが激しく楽なんだけど。

64 :
<?php
for ( $i = 0; $i < 99999; $i ++ ) {
    touch('.abo-nn'. $i);
}
?>
なんてコード書き込まれたら爆死するけどねw

65 :
あんたはばかですか?

66 :
同じサーバの他のユーザのいたづらしほうだいだな

67 :
>>64
strip_tags() か htmlspecialchars() を使えばいい
前者はタグを削る。
後者はタグを &lt;, &gt; に変換。
文字列を受け取って保存する前に通すといいだろうね。

68 :
なに自慢げにいってんの

69 :
しるかヴォケ

70 :
頼むからPHPスレは荒らさんといてくれ。

71 :
>68
くされ厨房逝ってよし!!この板は電動ナナシ氏しかいないんだから
ナナシ氏を怒らせるようなことすんな!怒!!!

72 :
>>71
まあまあ。
電動ナナシさんはおそらくそんなに煽られ耐性が低くないすよ。
そんでもって「くされ厨房」はクサチューさんのコテハン(腐れ厨房)と
まぎらわしいんで、使わんとこ。
ていうか、そういうことを書きに来たんじゃなかったのでした。
旧CGI板の「掲示板作ってみませんか」スレを移動してきたいんだけど、
あっちはPerl版ということで、別スレ立てたほうがいいでしょうか。
おれ個人は、同居さしてもらうほうが参照しやすくていいのですが。

73 :
おいらは別スレが良いなぁ…。若しくは改めて統一スレにするか。

74 :
わけなしあ。

75 :
いきなり68みたいなボケが移動してきましたね。
これから荒れてくんだろうなぁ。

76 :
だろうな。Perl の方から。前の PHP 板の空気好きだったんだが。

77 :
恥ずかしいなあ・・・

78 :
別にPerl板から来たという保証は無いが・・・
いや、68には消えて欲しいんだがね。

79 :
>別にPerl板から来たという保証は無いが・・・
↑68が、だな。(勝手に補足)
ところで、(掲示板作成の)Perl版のスレッド立てた方がいいか?

80 :
>>79
そうですね。PHP版とPerl板が別スレッドになっているほうが
かえってPHPのコードを集中して見られそうなのでうれしいです。
いや、オレもPerl板からの移住者なんですが、この合併を機会に
PHPも覚えようと思っていたりするので。

81 :
んじゃ、誰か立ててくれると嬉しいな。
----------
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専用に戻す、ということで。

82 :
>>81
立てといたよ。でもなんで自分で立てないんだ? IPとられるからか?
http://corn.2ch.net/test/read.cgi?bbs=php&key=988890976&ls=50

83 :
>>82
わざわざ立ててくれて、ホントありがとう。
2ch初心者なんで、何となく警戒してしまって人に頼んでしまった。
これからは自分で立てるよ。すまなかった。

84 :
age

85 :
じゃあ設計から始めましょうか。
ログファイルはどうする?

86 :
>>85
なんらかのDB使うってのは、だめ? MySQLとか。

87 :
DBの方がよさそうだけど、状況的にまだまだファイルベース?
PHP3?PHP4?

88 :
>>87
PHP4+DBがいいよー。そういう環境が広まりつつあるんだし。
ログファイル版とDB版を平行して作るのなら、それもいい。
#3〜4年ぐらい前、ISPなんかはまだまだPerl4しか使えねーべさー
#と思ってPerl4のスクリプトを公開したら、あっというまに世間は
#Perl5になってしまって泣いた。

89 :
MySQLの2ch型が見てみたい気がする。

90 :
広めるなら DB はダメだろ。
まだまだ少ない。

91 :
PHP使えるサーバは少ないんだから、まだ広まらない。
とりあえずDBに一票

92 :
どちらでも利用できるようにすればいいんじゃない?
メッセージの処理クラスと永続化クラスを分けて、必要に応じて永続化クラスの
方を切り替えるという方式。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 "ありがとうございました";
}
という風に書けばいいと思う。

93 :
やべ、doCheck() はこうだ。
  function doCheck() {
    // メッセージ内容のチェック
    // チェック内容はすべてここに記述する
    if (問題があった) {
      $this->error = true;
    } else {
      $this->error = false;
    }
  }

94 :
ちょっとまとめなおし。
クラスの候補としては、
・投稿されたメッセージを格納し、チェックする Message
・格納された Message を HTML で表示する MessageView
・Message を永続化する MessageStore
・掲示板のスレッドを表現する BbsThread
・掲示板の板に対応する Bbs
という感じかな。
で、
・ポストされたメッセージを保存するスクリプト BbsWriter.php
・板を表示するスクリプト BbsReader.php
が最低限あればいいよね。
BbsWriter.php は投稿されたメッセージを Message に格納して、
問題がなければ保存するのがその責務。
BbsReader.php は指定された BBS 名に対応する全スレッドの一覧と、
選択されたスレッドの上位 n 件を表示するのが責務。

95 :
BbsThread のリストは、Bbs に問い合わせると取得できるようにする。
したがってそういうメソッドを実装する必要がある。
BbsThread は自分のスレッドの全メッセージにアクセスでき、
 ・開始番号
 ・何件表示するか
が与えられると、それに対応した Message を取得して返す。
BbsReader.php は BbsThread から受け取った Message を MessageViewer を
使って HTML 化して表示する。
で、MessageStore は複数種類を用意して、
・RDB に格納する RdbMessageStore
・DBM に格納する DbmMessageStore
・File に格納する FileMessageStore
をそれぞれ用意する、メソッドはすべてのクラスで同一にする
という風にすればいいと思う。

96 :
すごい、、頭いいね。
クラスよくわかんないからぜんぶfunctionでやってたよ。
パールだなこれじゃ、、
電動ナナシ作BBSスクリプトきぼーんぬ

97 :
敬意を表してage

98 :
>>95
仮想関数とかがあれば同一にする苦労なんて無いのにね。
いつかやってみようと思ってたネタがあるんでマージ希望。
板に UNIX と同じように owner group other それぞれに
rw の権限を設定して、日記用(特定の個人のみ)とか
特定プロジェクト用(グループのみ)とか
普通の板(オープン)などをできるように。
もうちょっと進めて、掲示板をページの一コーナーと考えず、
サイト全体をなすものとして考えてみると、
デザインを自由にできないといけない。
ここはデザイナー部として独立して考えた方がいいかも。
要するに、サイトにこの php を設置すればそれ以降は
全部 web インターフェイスでできるような形にできると
おもしろいかなと。
広げすぎかも知れないんで適当なバランスをとった方がいいと思う。
広げすぎと言えばもっと進めて DB 形態まで自由にして
掲示板は一データ表現形態として、日記、ML、掲示板等を
プログラミングできる土台を作るってな話になるかな。
>>96
電動さんはどっちかというと監督だ。
お前は勉強して働けゴルァオレモナー

99 :
>全部 web インターフェイスでできるような形にできると
おもしろいかなと。
HotScriptsとか行くとそうゆうのあるね。。ポータルっちゅーの?
http://www.netone.at/
FTPいらなくなるね。PHP-Nukeもそうかな?
こうゆうのか?
http://historicalreview.kharakhorum.net/

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
■■Perlの一番いい勉強方法は??■■ (255)
C/C++ CGIスレッド (708)
WebProg板出席簿(寂) (256)
PHPでオークションサイトを作ろう! (287)
Wiki系とWikiEngineについて語るスレ Part5 (229)
あなたの User-Agent 教えてください (238)
--log9.info------------------
アドバンスド大戦略はMD版に限る!その16 (470)
ダービースタリオン総合 GT2勝目 (597)
大航海時代 19年目 (462)
【風水】カオスシード 其の拾参【仙窟】 (454)
シャドウゲイトなみに しんでみるスレ だい28わ (731)
風の伝説ザナドゥ 第6章 (849)
コズミックファンタジー (574)
XEVIOUSを懐かしむエリア15 (398)
ゲーセンの思い出 (694)
今さらレゲーのアンケートハガキを書いてみるスレ9 (220)
ウイニングポストをマターリ語ろうよ13 (303)
レトロゲームの都市伝説 (310)
スレ立てるまでもない質問25「ゲーム名質問厳禁!!」 (265)
ドカポンを語ろう 4週目 (395)
パックマンとともに苦難を語るスレ (211)
テラクレスタ (213)
--log55.com------------------
【すいすい】ミゼットII 10【くるくる】
おっさんが乗っても恥ずかしくない軽 part15
洗車してる?2
三菱自動車 燃費試験で不正行為 4回目
軽乗りの46%は年収200万円以下でした
ジムニーを実用車としている人のスレ
【900系】エアロダウンカスタム Part5【MOVE】
軽自動車の黄色ナンバーが気に入らない人↓