スレッドフロート型掲示板スクリプト(PHP・UTF-8・スマホ対応)

2021年10月18日 12時00分 正午の月齢:12.0  月名:十三夜  潮汐:中潮 月齢:12.0[十三夜] 潮汐:中潮
(最終更新日:2021年10月19日)
2か月前に投稿 | ウェブ・IT関係 | コメントはありません

5分ぐらいで読めます。

2ちゃんねる(現5ちゃんねる)タイプのスレッドフロート型(あめぞう型)掲示板PHPスクリプトです。

スレッドフロート型掲示板

昔は「ぜろちゃんねるスクリプト」など他にもいろいろあったんですけどね…いつのまにかほとんど見かけなくなってしまいました。本家はなくなったけれど、「ぜろちゃんねるスクリプト倉庫(ミラー)」があるみたい。他にはCGI工房の「スレッドフロート式マルチ掲示板」とか。なんかめっちゃ多機能なんですけど。Perl派の人はぜひ試してみてネ。(ただ使うだけならPerlでいいんだケド、改造しようと思ったらPHPしか触れない…)

さてさて、今回の素材は鏡の国さんがPerlからPHPに移植した「2chみたいな掲示板」のスクリプトをもとに、文字コードをShift-JISからUTF-8へ変更し、さらにスマートフォンでも快適に読み書きができるようにしています。ほかにもちょこちょこと手を入れて2021年のインターネット環境においても普通に使えるようにしてみました。

ということで、

ダウンロードはここからネ。ほとんど文字ファイルなのでかなり軽い。

設置方法は中に書いているけれどそんなに難しくはないと思います。ファイル転送ツールでごっそりとアップロードしてください。パーミッションの変更を忘れずにネ。

いくつか既知の問題、改造点などあるので、言い訳がましく書いておきますよ。

  • PHP7ではたぶん正常に動きません。PHP5で動かしてください。PHP5.6.40での動作を確認しています。…とおもったけど、PHP7.4.13でも動いたっぽいので、何とも言えません。ざくっと使えない関数がないかは調べました。んーたぶん大丈夫なんだろな。
  • SSL(https)では正常に動きません。read.phpの45行目「$URL = 'http://'.$_SERVER['HTTP_HOST'].$match[1];」が当たっている気がするけれど検証していません。どうしても「https://~」とする必要があれば、改造に挑戦してみてください。→その後実験してみたら、「$URL = 'https://'.$_SERVER['HTTP_HOST'].$match[1];」にしたらSSL(https)いけました。両方に対応する書き方がよくわからないのでそのままね。→その後なんとなく「$URL = empty($_SERVER['HTTPS']) ? 'http://' : 'https://'.$_SERVER['HTTP_HOST'].$match[1];」にしたんだけど、これで両方いけるかな。
  • かなり綺麗なhtmlに書き直しました。無駄にHTML4.01のDOCTYPE宣言まで書いています。ソースのインデントは嫌いなのでできる限り排除。管理ページは手つかずの部分があるかも(間違いなくあります)。デザイン的な部分はCSSに書き出したかったんですけど、結局やっていません。XHTML1.0strictやHTML5に洗脳されたこの身にHTML4.01は結構悶々するものがあるんですけど…
  • 管理画面からの掲示板プレビューは、実際の画面と異なる部分があります。調整する気力がなかったので。「あまり影響ないしいいか」と思っていますが、ほかにも管理画面には気になるところがいくつかありますが黙っておくことにしました。
  • 文中のあちこちに大嫌いな全角英数字が使われていたので、だいたいほとんど全部半角英数字にしました。mb_convert_kanaで変換しているわけではないので、投稿欄では全角英数字が使えるはずです。
  • 2ちゃんねるくさい警告文を少し緩和しました。でも「ERROR:リファラぐらい送ってちょ。」とか残っているものもあると思います。
  • 特殊機能(VIP)についてはほとんど確認していません。画像(.jpg .gif .png)アップロードができるっていうのは確認しました。もともと.tif .bmp .webpには対応していませんが、まぁ実害はないと思うのでそのままにしています。
  • 元ファイルが改造再配布のものなので、このスクリプトも好きなように改造・再配布してくれたらいいと思いますが、代償としてサポートを求められても塩対応になることをご了承ください。プログラミングの本質を理解することなく触っているので実に怪しいんだなこれが。
  • bbs.phpの「$_POST['subject'] = str_replace('"', "&quot;", $_POST['subject']);」「$_POST['subject'] = str_replace("<", "&lt;", $_POST['subject']);」「$_POST['subject'] = str_replace(">", "&gt;", $_POST['subject']);」「$_POST['subject'] = str_replace("'", "&#039;", $_POST['subject']);」とタイトル部分(['subject'])と本文(['MESSAGE'])に4つの置換があったのを「$_POST['subject'] = htmlspecialchars($_POST['subject'], ENT_QUOTES);」にしました。なぜこういう仕様になっていたのかわからないけれど、スレ立てのときに何かやられそうな気がしたので。変更した影響についてはよくわかりません。
  • もともとのスクリプトが最新のものではないので、脆弱性はあるかもしれません。いや、あるんだろうなきっと。

もちろんフリーですが、お金を払いたくてどうしようもないときはNEMで支払ってください。喜んでいただきますー。

古い記事・新しい記事

古い記事
新しい記事

コメントはありません »

[RSS on this post] [TrackBack URI]

コメントをどうぞ

Translate »