X



せっかくだからPHPで掲示板作ってみませんか?
0001⊂(´ー`⊂⌒ヽつ
垢版 |
NGNG
Perl + CGI とか色々ありますけど、サーバ管理してるものとしては重いんですよ
結構回線食ってますんで、できれば軽い掲示板を使って欲しいです
0003名無しさん@お腹いっぱい。
垢版 |
NGNG
つーか、この板がPHP化するってのはどう?
0004名無しさん@お腹いっぱい。
垢版 |
NGNG
そーすきぼーん>>2
0007名無しさん@お腹いっぱい。
垢版 |
NGNG
>>3
ソースがあればな。無くても作れるが、作る気しない
000822世紀を目指す名無しさん
垢版 |
NGNG
7>
5の書いているリンク先にソースがあるけど。
向こうの人も、ここに気づいていてリンク貼ってるし。
0009名無しさん@お腹いっぱい。
垢版 |
NGNG
>>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";
}
ってな感じで圧縮転送しなされ。
0010名無しさん@お腹いっぱい。
垢版 |
NGNG
圧縮してたらCPUが死ぬ。その技は回線細いときだけ有効
0012けんす
垢版 |
NGNG
>>9

<?php
ob_start();
?>
<html>
あっぱい
いっぱい
うっぱい
えっぱい
おっぱい。
</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移植ばん。
0013名無しさん@お腹いっぱい。
垢版 |
NGNG
>>11 翻訳。

>>10
1は
>結構回線食ってるので
つってるから回線がネックで遅いんだろ?
だったらPerl・・・寇タ佝・ぢより圧縮の方が効果高いよ。
0014⊂(´ー`⊂⌒ヽつ
垢版 |
NGNG
>>10
> 1は
> >結構回線食ってるので
> つってるから回線がネックで遅いんだろ?
> だったらPerl→PHPより圧縮の方が効果高いよ。
だろ?
0015ねたろ
垢版 |
NGNG
>>14
アシュークすると、 iModeのブラウザでは読めないんだ。
UAがgzをacceptするかどうかをちゃんと聞かないといけないな。めんどくさいけど。

酔ばらーているのでもう寝ます。
ではまた、
0017電動ナナシ
垢版 |
NGNG
>>16
サーバーが見つかりませんって言われたけど?
saxen.net 自体に masetersd というホストがないぞ。
0020名無しさん@お腹いっぱい。
垢版 |
NGNG
age
0021名無しさん@お腹いっぱい。
垢版 |
NGNG
>>16
ソースきぼんぬ。
0023>22
垢版 |
NGNG
ロジックはね。
echoの嵐はどうにかならんのかね。
0025名無しさん@お腹いっぱい。
垢版 |
NGNG
>>22
わかりやすいソース! PHPはじめて一週間の俺でもよくわかった。
直接管理モード呼び出せるように改造してみた。
highlightって関数、マニュアルに載ってないみたいだなー。
探し方が悪いのか?

>>23
今使ってるのPHP3なんだけど、echoの嵐にしない方法ある?
0026名無しさん@お腹いっぱい。
垢版 |
NGNG
>>25

echo "************(中略)**************\n";

と、最初から最後まで1行で書けば、echoは1つだけで済む。
ただし、echoの嵐以上に見苦しい。

Perlみたいにヒアドキュメントを使うのはどう?
 
0028名無しさん@お腹いっぱい。
垢版 |
NGNG
>>27

> 25はPHP3って言ってるから使えんよ

 そこまで読んでなかった・・・ちゃんと読めよ>俺
 鬱だ氏脳・・・

 <汚名挽回> . で文字列連結させれば、適当に改行しながらでも
echoは1つだけで済ませられるんで、PHP3では結構この方法を
使ってます>私


002925
垢版 |
NGNG
>>26
>>27
>>28
情報、さんきゅーです。
PHPだと軽いから、2ch風の掲示板作りたいと思って、Perlから移植するために研究中な俺なの。
0030名無しさん@お腹いっぱい。
垢版 |
NGNG
echo "<font size=\"4\">$str</font>\n";

echo <<<EOT
<font size="4">$str</font>
EOT;

echo '<font size="3">', $str, '</font>', "\n";

どれが一番速いかしっちょる?
22のソースは正しいと思う。

まあ、見やすきゃいいんならヒアドキュメントでもいいんでない。
0031名無しさん@お腹いっぱい。
垢版 |
NGNG
<font size="4"><? echo $str; ?></font>
0033名無しさん@お腹いっぱい。
垢版 |
NGNG
名誉挽回、汚名撤回だね
0037名無しさん@お腹いっぱい。
垢版 |
NGNG
<?
$text = '<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
あいえうお
</BODY>
</HTML>';

echo $text;
?>
こういう使い方はどうでしょうか?
0038名無しさん@お腹いっぱい。
垢版 |
NGNG
PHP4の2ch型掲示板どっかに無〜い?
0044名無しさん@お腹いっぱい。
垢版 |
2001/04/20(金) 23:27ID:p9JEEL2s
掲示版くらいならシェルスクリプトで十分。
ていうか、最初からphpで楽するのはおすすめしない。
特に初心者の方はシェルスクリプトを使って、httpヘッダの勉強などをする可。
0045sage
垢版 |
2001/04/20(金) 23:52ID:rfubKdZU
何でも動きゃいいんだよ。
0047名無しさん@お腹いっぱい。
垢版 |
2001/04/23(月) 00:11ID:eI1h1M6I
test
0049名無しさん@お腹いっぱい。
垢版 |
2001/04/23(月) 00:13ID:eI1h1M6I
 
0050名無しさん@お腹いっぱい。
垢版 |
2001/04/24(火) 17:57ID:yAAxYZy.
>>46
ソースも設計も汚いなあ。
フリーで配布してるとこってこれが標準なの?

唯一>>22のだけはマシだったかな
http://www.kensu.com/bin/plywood.php
0051名無しさん@お腹いっぱい。
垢版 |
2001/04/25(水) 17:35ID:hVoyXTgU
>>50
なるほど・・

とりあえずglobal多用するのはどうかと。
関数もだいぶ分割できそうだし。
0053名無しさん@お腹いっぱい。
垢版 |
2001/04/27(金) 07:19ID:/BzsGtBc
掲示板作ってるけど
ループが多くて結局重い
0054名無しさん@お腹いっぱい。
垢版 |
2001/04/27(金) 13:22ID:Pv4sjYHk
紹介歓迎。オープンソースとはそういうもの。
自己満足ではダメよん。
他人のは研究、いいとこ取り。自分のも公開、批判歓迎。
0055名無しさん
垢版 |
2001/04/27(金) 15:12ID:RI1RQwtA
>>50
バージョン低いから、動けばいいんじゃない。
0056がんがん
垢版 |
2001/04/27(金) 15:44ID:vZWj/rt6
しかし、この板、もりあがってねえな。
このスレいつも上位にあるけど、1つか2つだもの。書き込み。
0057名無しさん@お腹いっぱい。
垢版 |
2001/04/27(金) 16:01ID:E0deabDE
>>56
このマターリ感がこの板の良いトコロ。
この平和もWebプログラム板になる迄の仮初めの平和だけど。
0060名無しさん@お腹いっぱい。
垢版 |
2001/04/29(日) 10:32ID:s6rkuYg6
ツリー式作って喜ぶのは初心者だけ。
0063名無しさん@お腹いっぱい。
垢版 |
2001/04/29(日) 23:34ID:xA4hpZaw
書き込み時にindex.htmlを吐くところをindex.phpで吐くのは
危険かな〜?
クッキー使うのが激しく楽なんだけど。
0064>>63
垢版 |
2001/04/30(月) 01:42ID:Xt2FGp8U
<?php
for ( $i = 0; $i < 99999; $i ++ ) {
    touch('.abo-nn'. $i);
}
?>

なんてコード書き込まれたら爆死するけどねw
0066名無しさん@お腹いっぱい。
垢版 |
2001/05/01(火) 04:02ID:p4rbxe8.
同じサーバの他のユーザのいたづらしほうだいだな
0067電動ナナシ
垢版 |
2001/05/01(火) 06:06ID:???
>>64
strip_tags() か htmlspecialchars() を使えばいい
前者はタグを削る。
後者はタグを &lt;, &gt; に変換。
文字列を受け取って保存する前に通すといいだろうね。
0068名無しさん@お腹いっぱい。
垢版 |
2001/05/02(水) 17:11ID:DzSvB.hQ
なに自慢げにいってんの
0071ななしファン
垢版 |
2001/05/02(水) 18:35ID:yYb4NLK6
>68
くされ厨房逝ってよし!!この板は電動ナナシ氏しかいないんだから
ナナシ氏を怒らせるようなことすんな!怒!!!
0072名無しさん@お腹いっぱい。
垢版 |
2001/05/02(水) 18:52ID:fIfpzIl.
>>71
まあまあ。
電動ナナシさんはおそらくそんなに煽られ耐性が低くないすよ。
そんでもって「くされ厨房」はクサチューさんのコテハン(腐れ厨房)と
まぎらわしいんで、使わんとこ。

ていうか、そういうことを書きに来たんじゃなかったのでした。
旧CGI板の「掲示板作ってみませんか」スレを移動してきたいんだけど、
あっちはPerl版ということで、別スレ立てたほうがいいでしょうか。
おれ個人は、同居さしてもらうほうが参照しやすくていいのですが。
0074名無し
垢版 |
2001/05/02(水) 21:30ID:Tv040A/6
わけなしあ。
0076名無し
垢版 |
2001/05/03(木) 02:57ID:???
だろうな。Perl の方から。前の PHP 板の空気好きだったんだが。
0079名無しさん@お腹いっぱい。
垢版 |
2001/05/03(木) 19:06ID:???
>別にPerl板から来たという保証は無いが・・・
↑68が、だな。(勝手に補足)
ところで、(掲示板作成の)Perl版のスレッド立てた方がいいか?
0080名無しさん@お腹いっぱい。
垢版 |
2001/05/03(木) 19:20ID:???
>>79
そうですね。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専用に戻す、ということで。
008381
垢版 |
2001/05/03(木) 23:14ID:???
>>82
わざわざ立ててくれて、ホントありがとう。
2ch初心者なんで、何となく警戒してしまって人に頼んでしまった。
これからは自分で立てるよ。すまなかった。
0085ねたろ
垢版 |
2001/05/10(木) 02:37ID:???
じゃあ設計から始めましょうか。

ログファイルはどうする?
0086名無しさん@お腹いっぱい。
垢版 |
2001/05/10(木) 03:09ID:vZNmJnlQ
>>85
なんらかのDB使うってのは、だめ? MySQLとか。
0087名無しさん@お腹いっぱい。
垢版 |
2001/05/10(木) 14:04ID:L0oK0kgU
DBの方がよさそうだけど、状況的にまだまだファイルベース?

PHP3?PHP4?
0088名無しさん@お腹いっぱい。
垢版 |
2001/05/10(木) 14:51ID:q8f1TK2I
>>87
PHP4+DBがいいよー。そういう環境が広まりつつあるんだし。
ログファイル版とDB版を平行して作るのなら、それもいい。

#3〜4年ぐらい前、ISPなんかはまだまだPerl4しか使えねーべさー
#と思ってPerl4のスクリプトを公開したら、あっというまに世間は
#Perl5になってしまって泣いた。
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:???
やべ、doCheck() はこうだ。
  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 のリストは、Bbs に問い合わせると取得できるようにする。
したがってそういうメソッドを実装する必要がある。

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.E9Y
敬意を表してage
0098初期不良
垢版 |
2001/05/13(日) 06:22ID:tjO6DiEU
>>95
仮想関数とかがあれば同一にする苦労なんて無いのにね。

いつかやってみようと思ってたネタがあるんでマージ希望。
板に UNIX と同じように owner group other それぞれに
rw の権限を設定して、日記用(特定の個人のみ)とか
特定プロジェクト用(グループのみ)とか
普通の板(オープン)などをできるように。

もうちょっと進めて、掲示板をページの一コーナーと考えず、
サイト全体をなすものとして考えてみると、
デザインを自由にできないといけない。
ここはデザイナー部として独立して考えた方がいいかも。

要するに、サイトにこの php を設置すればそれ以降は
全部 web インターフェイスでできるような形にできると
おもしろいかなと。

広げすぎかも知れないんで適当なバランスをとった方がいいと思う。

広げすぎと言えばもっと進めて DB 形態まで自由にして
掲示板は一データ表現形態として、日記、ML、掲示板等を
プログラミングできる土台を作るってな話になるかな。

>>96
電動さんはどっちかというと監督だ。
お前は勉強して働けゴルァオレモナー
0099松下
垢版 |
2001/05/13(日) 14:08ID:FJ4XPUMM
>全部 web インターフェイスでできるような形にできると
おもしろいかなと。

HotScriptsとか行くとそうゆうのあるね。。ポータルっちゅーの?
http://www.netone.at/
FTPいらなくなるね。PHP-Nukeもそうかな?

こうゆうのか?
http://historicalreview.kharakhorum.net/
0100初期不良
垢版 |
2001/05/13(日) 22:23ID:tjO6DiEU
>>99
あとの方はサイトの中心に据えているという点では方向性は同じだね。

それと、掲示板システム全般についてだけど、
板、スレッド、書き込みの3層構造に絞る必要って
無いんじゃないかと思うんだけど。DB 的に甘い考えかも知れないけど、
板もスレッドも同じクラス(例えば Thread)で、
最後の書き込みの層だけがリンク先を持つことができない
末端属性を持つ Leaf とでもしておくわけだ。
Thread extend Leaf で他のスレッドの可変長配列を持てる
ようにする、と。

こうしておけば、Leaf を使わなければスレッド型掲示板、
2段階目に Leaf を使えば、板、書き込みのシンプルな掲示板、
3段階目に Leaf を使えば、板、スレッド、書き込みの3層構造、
それで、板の層は管理者のみ書き込み可で、板の増設は
設置者の自由、場合によってはスレッドも管理者のみ書き込み可にしても
いいと思う。スレッドまでユーザに作られると困るって向きも多いだろう。
レスを投稿する


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