POTI-board EVO v5.26.8 リリース v3.09.x以下の古いバージョンには重大なバグがあります。
古いバージョンに存在する重大なバグ
-
v2.26.0以前のPOTI-boardにはXSSの脆弱性があります。
悪意のあるJavaScriptが実行される可能性があります。 -
v3.09.5以前のPOTI-boardのすべてのバージョンには重大な欠陥があります。
すべてのログファイルを失う可能性があります。
また、v3.x系統のPOTI-boardはPHP8.1環境下で非推奨のエラーが発生します。
現時点では警告ですがPHP9で動作が停止します。
そのためのv5.xの開発です。v5.xの利用をおすすめします。
POTI-board EVO v5.26.8 リリース
[2022/10/03] v5.26.8
ChickenPaintを最新版に更新
Chromeのバグを回避
- ChickenPaintのカラーピッカーで色を選択する操作をすると、表示されていた色が消え、真っ白になる問題がChromeのバグによって発生しました。
このGoogle Chromeのバグを回避して動作するChickenPaintの最新版に更新しました。
klecksを最新版に更新
- グラデーションツールに消しゴム化オプションが追加されました。
- 集中線を描写する機能が追加されました。
luminousでポップアップ表示
- サムネイルをクリックすると別タブで開く従来の表示方式を見直し。同じタブにポップアップ表示するライトボックス「luminous」を使用して表示します。
searchにスクロールするとでてくる上に戻るボタンを追加。
検索画面にもスクロールするとでてくる上に戻るボタンを追加しました。
変更があったディレクトリ
- chickenpaint/
- klecks/
- lib/luminous/
変更があったファイル
- potiboard.php
- search.php
変更があったテンプレート
テンプレートのカスタマイズをしている方がテンプレートを変更するのは大変な作業ですので、
luminousによるポップアップ表示など新機能に対応させたい方だけテンプレートを更新していただければ幸いです。
BASIC
- templates/basic/
ディレクトリ以下の全て
MONO
- templates/mono/
ディレクトリ以下の全て
[2022/09/20] v5.26.3
更新
- Klecksを最新版に更新しました。
グラデーションツールとパターンフィルタが追加されました。 - BladeOneをv4.6に更新しました。
バグ修正
- 返信画面の記事番号に親以外の記事番号を指定すると、E-WARNINGレベルのPHPのエラーが発生するバグを修正しました。
この問題は、v5.18.12で発生し、v5.26.3で修正されました。
正しい記事番号が指定されている時には発生しない上、軽微なエラーですがサーバのエラーログにエラーが記録され続ける可能性がありますのでアップデートをよろしくお願いします。
potiboard.php
をアップデートするだけでもこの問題に対応できます。
改善
- コンティニュー認証と
.pch
、.chi
、.psd
ダウンロード認証時も、パス欄が空白の時はCookieのパスを代入するようにしました。
編集画面ではパスワード入力欄が空白で、パスワードのCookieがあるときはCookieのパスワードがパスワードとして使用されていましたが、コンティニュー認証やダウンロード認証の時には、パスワードの入力が必要でした。
これらの仕様を統一しました。 - パスワード照合のための関数
check_password()
を修正。パスワードの入力がなく、Cookieのパスワードも存在しない時には鍵が開かないようにしました。 - メール通知機能の多国語対応が不十分だったのを修正しました。
メールのヘッダのハングル文字またはそのほかの文字が文字化けしていたのを修正しました。 - テンプレート MONOのページ番号の間隔を広げました。
- テンプレートMONOのmayoのボタンの背景色を変更しました。
- NEOのペイント画面の時計のJavaScriptを修正しました。
- 管理画面のファイルサイズの単位をバイトからKBに変更しました。
変更があったファイル
- noticemail/noticemail.inc
- potiboard.php
変更があったディレクトリ
- klecks/
- BladeOne/
変更があったファイル
- potiboard.php
- picpost.php
変更があったテンプレート
テンプレートはv5.xのBladeOne対応ものであれば更新しなくても大丈夫です。
この間の変更はスマホ操作に適していいないというGoogleのテストの結果をうけて調整している側面が強いため、現状困っていないのであればそのままで。
テンプレート BASIC
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
- templates/basic/template_ini.php
テンプレート MONO
- templates/mono/css/mono_dark.css
- templates/mono/css/mono_deep.css
- templates/mono/css/mono_main.css
- templates/mono/css/mono_mayo.css
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/parts/mono_mainte_form.blade.php
- templates/mono/template_ini.php
[2022/08/17] v5.23.8.1
更新
- Klecksを最新版へ。
ノイズフィルタが追加されました。
- v5.23.8.1でv5.23.8の透明化フィルタの輝度反転が動作しない問題を修正しました。
- BladeOneをv4.5.5に更新。
- jQueryを3.6.0に更新。
ファイルの存在チェックをしていますので、同梱のjQueryが存在しない時はプログラムが動きません。
ファイルが存在しない事を伝えるエラーメッセージがでます。
改善
- クリックジャッキングの脆弱性を修正しました。
フレームまたはインラインフレームでの表示ができなくなります。
セキュリティは向上しますが、フレーム内に表示したい方がいる事も知っています。
そのため、config.phpに新規設定項目を追加して、フレーム内に表示するしないを選択できるようにしました。
フレーム内に表示する必要がない方は、設定項目を追加する必要はありません。
//iframe内での表示を 拒否する:1 許可する:0
//セキュリティリスクを回避するため "拒否する:1" を強く推奨。
define('X_FRAME_OPTIONS_DENY', '1');
新しくconfig.phpを1から書き直すのは大変だと思いますので、上記設定項目をどこでもいいので追加していただければ、フレーム内への表示ができるようになります。
-
モバイルユーザービリティを改善しました。
タップターゲットのサイズ、間隔を最適化しました。 -
ページの読み込み速度の改善
jQueryや、loadcookie.jsといった外部読み込みのJavaScriptを先読みして、レンダリングをブロックしないようにしました。 -
JavaScript実行のタイミングを
DOMContentLoaded
へ。 -
注意深く記述しないと致命的エラーになる箇所を修正しました。error()関数を組み込み関数die()へ。
-
テンプレートを直接いじらなくても、jQueryのバージョンを変更できるようにしました。
-
検索画面の画像の幅と高さを追加しました。
-
読み込み速度高速化のため最初から表示されれる範囲にloading="lazy"を適用しないようにしました。
-
PaintBBS起動画面の下のタイマーのJavaScriptの記述が非推奨の記述方法になっていたため、修正しました。
コンテンツセキュリティポリシーを設定したらPOTI-boardのお絵かき画面の時計が動かなくなりました。|さとぴあ|note
追加されたファイル
- lib/jquery-3.6.0.min.js
変更があったファイル
- thumbnail_gd.php
- potiboard.php
- config.php
- search.php
変更があったディレクトリ
- klecks/
- BladeOne/
変更があったテンプレート
- templates/basic/
- templates/mono/
テンプレートは、CSSも含めてすべて変更になりました。
BASICには、スクロールすると出てくる上に戻るボタンを追加しています。
サイトの高速化や、スマホ操作のしやすさを改善し、jQueryのバージョンを管理できるようになりました。
しかし、すでにカスタマイズしている方は、テンプレートを変更しなくても大丈夫です。
その場合はjQueryのバージョンが、v3.5.1のままになりますので、ご留意ください。
[2022/07/11] v5.20.2
改善
- お絵かき画像の投稿時にファイル名の重複が発生する確率を1/1000に。
- 仮に重複しても投稿時刻に1秒追加。
- 投稿された画像の存在確認処理を追加し、お絵かき画像が確実にサーバに送信されてた事を確認してから画面を推移。
更新
- Klecksを更新しました。編集機能にグリッドが追加されました。
- BladeOneを更新しました。軽微なバグが修正されています。
変更があったファイル
- potiboard.php
- picpost.php
- save.php
- saveklecks.php
変更があったディレクトリ
- BladeOne/
- klecks/
[2022/06/30] v5.19.1
- PHP7.1では動作しなくなっている事が確認されたため、必要な動作環境をPHP7.2以上に変更しました。
PHP7.1環境では、起動せずPHPのバージョンが低い事を伝えるエラーメッセージを出します。 - 未投稿画像のリンクはコメント未記入で画面から離れてしまったあとでも、再度投稿できるようにするためにあります。
しかしながら、コメントの記入欄や画像のアップロード欄があり、未投稿画像がない時にも送信フォームが表示されていました。
未投稿画像が存在しない時はフォームを表示しないようにしました。 - PaintBBSの画像を受け取り処理している
picpost.php
に画像とユーザーデータのファイルの存在確認を追加しました。
それらの必要なファイルが存在しない時はお絵かき画面から推移せずエラーをアラートで表示します。
画面を推移してしまうと、投稿に失敗したまま投稿画面の画像も消えてしまうためアラートで知らせます。
変更があったファイル
- potiboard.php
- picpost.php
変更があったテンプレート
MONO
- templates/mono/mono_other.blade.php
- templates/mono/css/
(未投稿画像の箇所にフォームが表示されるこれまで通りの画面で構わければ更新の必要はありません)
BASIC
- templates/basic/other.blade.php
(未投稿画像の箇所にフォームが表示されるこれまで通りの画面で構わければ更新の必要はありません)
[2022/06/11] v5.18.25
バグ修正
- レス省略件数の区切りの横線のレイアウトが崩れていたのを修正しました。
(テンプレートMONO使用時)
改善
- ChickenPaintが全画面で起動するようになりました。
- futaba.phpのログファイルを読み込んで表示できるようになりました。
カンマの数が一致しない事が原因で発生していたエラーを修正しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
MONO
- templates/mono/mono_main.blade.php
レス省略件数の表示レイアウトが崩れていたのを修正しました。 - templates/mono/mono_paint.blade.php
ChickenPaintが全画面表示で起動するようになりました。
BASIC
- templates/basic/paint.blade.php
ChickenPaintを全画面表示で起動するようになりました。
[2022/05/25] v5.18.9
Klecks更新
Klecksを最新版にアップデートしました。
CheerpJをv2.3へ
しぃペインター使用時にJavaアプレットをJavaScriptに変換するCheerpJをv2.3に更新しました。
バグ修正
- テキストの編集時に、不要なスペースが入るバグを修正しました。
- スパム対策のための拒絶する文字列や拒絶するurlに、
/
(スラッシュ)が含まれていると正しく処理できなくなるバグを修正しました。 - テンポラリ不要ファイルの削除処理の経過日数の計算時に軽微なエラーが発生していたのを修正しました。
- 指定経過日数でレスフォームを閉じる時の日時の基準が親の投稿日時ではなく最新レスの投稿日時になっていたのを修正しました。
- Paintフォームの「Size」の文字の色指定が他の文字と異なっていたのを修正しました。
コード整理
- forで記述されていた箇所をforeachへ。file()で開いていたログファイルをfopen()に変更しました。
- PCHアップロードペイントの作業ファイルの削除処理を正規表現を使用する重い関数からstrpos()に変更しました。
改善
- トリップ機能を再実装。
隠し機能的な再実装になりますので、テンプレート「MONO」でのみ表示できます。
BASICは非対応。 - 空行が存在するログファイルを処理できるようになりました。
変更があったディレクトリ
- klecks/
変更があったファイル
- potiboard.php
- search.php
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
(見た目上の差異なので、気にならなければそのままでも) - templates/basic/parts/paint_form.blade.php
(見た目上の差異なので、気にならなければそのままでも) - templates/basic/other.blade.php
(記事の編集時に余分な空白が入ってしまう問題を修正しました) - templates/basic/paint_klecks.blade.php
(サーバからのエラーがぴったり400番だった時にもエラーのアラートが開くようになりました)
MONO
- templates/mono/paint_klecks.blade.php
(サーバからのエラーがぴったり400番だった時にもエラーのアラートが開くようになりました)
[2022/04/28] v5.16.8
Klecksを更新しました。
- iPadOSで発生するいくつかの問題が修正されました。
- 使用可能な言語に繁体字中文が追加されました。
テンプレートエンジンBladeOneを更新しました。
- BladeOneをv4.5.3に更新しました。
改善
-
klecksの送信失敗の原因がサーバーエラーの時はエラー番号をアラートで表示します。
例えば、Klecksのデータを受信するsaveklecks.php
が存在しない時は、「エラー404」というアラートを表示します。 -
ファイルサイズが指定サイズよりも大きなときに、PNGからJPEGに変換する処理の作業ディレクトリを
TEMP_DIR
に変更しました。
処理に失敗して作業ファイルが残ってしまっても、テンポラリの自動削除機能で一定時間経過後に削除されるようになります。
バグ修正
- 動画(PCH)保存ディレクトリ
define('PCH_DIR', 'src/');
に、'src/'
以外のディレクトリが指定されている時にディレクトリの自動作成が機能せず、NEOの動画、ChickenPaintの.chi
ファイル、klecksの.psd
ファイルが保存できなくなっていたのを修正しました。ディレクトリが存在しない時は自動的に作成するようになりました。
変更があったディレクトリ
- BladeOne/ (BladeOne/ ディレクトリを上書きアップデート)
- klecks/ (klecks/ ディレクトリを上書きアップデート)
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
[2022/04/02] v5.16.5.1
Klecks更新
- レイヤーの最大枚数が8枚から16枚に増えました。
バグ修正
- テンプレートBASICのバグを修正しました。
search画面の画像の一覧のリンクが機能していなかったのを修正しました。
原因はHTMLの文法のミスでした。 - search画面のHTMLの文法エラーを修正しました。
checked="checked"
のクオートがエスケープされて文法エラーになっていたのを修正しました。
変更があったファイル
- search.php
変更があったディレクトリ
- klecks/
ディレクトリ単位で上書きアップデート。
変更があったテンプレート
BASIC
- templates/basic/search.blade.php
MONO
- templates/mono/search.blade.php
[2022/03/25] v5.16.5
改善
Klecksの日本語訳
- Klecksを日本語に翻訳しました。
POTI-boardにも、日本語対応版を同梱する事ができました。
この新しいバージョンのKlecksは、ブラウザの言語の優先順位を自動検出して言語を切り替えてくれます。
また、ブラウザの言語の設定にかかわらず使用する言語を指定する事もできます。
英語、ドイツ語、日本語が選択できます。
中文は簡体字のみで細部はまだ英語のままです。
日本語訳のリソースはすでに開発元に統合されています。
アプリ固有ファイルのダウンロードボタンができました。
アプリ固有形式一覧
.pch
ファイル(PaintBBS).chi
ファイル(ChickenPaint).psd
ファイル(Klecks)
Klecksのレイヤー情報を含むファイルはPhotoshop形式の.psd
ファイルです。
ダウンロードした.psd
ファイルはクリスタやSAIそのほか多くのアプリで開く事ができます。
.pch
と、.chi
は、それぞれNEOとChickenPaintで開く事ができます。
管理者投稿過画面から.pch
、.chi
、.psd
を添付してペイントボタンを押せば、キャンバスに読み込んで投稿できます。
透過PNG、透過GIFのサムネイルの透明部分を白に変更
- 透過PNGの透明部分がJPEG化する時に、真っ黒になっていたのを修正しました。
透明色が黒も間違いではないのですが、意図しない結果になる事が多いため、透過GIF、透過PNGからJPEGに変換する時は、透明色を白に変換します。
バグ修正
- 管理者ログイン時に使うアップロードペイントアプリ固有形式、pch、chi、psdなどの不要になったファイルの自動削除機能の動作時に軽微なエラーが発生するケースがあったのを修正しました。
BladeOne更新
テンプレートエンジンBladeOneをv4.5に更新しました。
変更があったファイル
- potiboard.php
- thumbnail_gd.php
変更があったディレクトリ
- BladeOne/
- klecks/
ディレクトリ単位で上書きアップデート。
変更があったテンプレート
BASIC
- templates/basic/basic.css
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/template_ini.php
MONO
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/template_ini.php
[2022/03/12] v5.12.0
バグ修正
- Apple Pencilでメニューが操作できなくなっていたのを修正しました。
ChickenPaintやKlecksのメニュー操作がで操作できなくなっていたのを修正しました。
v3.19.5でペイント関連のテンプレートに追加したJavascriptが原因でした。
該当のJavascriptを削除して正常に動作することを確認しました。
Klecksを更新
- Klecksを最新版にアップデート。
新しいブラシが追加されました。ミラーペインティングができるようになりました。
変更があったディレクトリ
- klecks/
変更があったファイル
- potiboard.php
テンプレート BASIC
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
テンプレート MONO
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
POTI-board EVO v5.10.0 もご確認ください。
多くのファイルが更新されています。
[2022/03/8] v5.10.0
機能追加
- 新しいペイントアプリKlecksに対応しました。
わかりやすいUIと強力なブラシが使えるアプリです。
レイヤーは8枚使えます。
数多くのフィルタが使えます。輝度を透明に変換、明るさ/コントラスト、色調補正など。
このアプリの追加にともない、管理画面からアップロードできるファイル形式に「PSD」が追加されました。
PSDファイルを選択してペイントボタンを押すとKlecksのキャンバスにPSD画像が読み込まれます。
改善
- 複数の未投稿画像がある時は、一番新しい画像が選択されるようになりました。
これまでは、コメント欄のすぐ上の画像は投稿されず画面の一番上の画像が選択されていました。
バグ修正
- 強制sageが機能しなくなっていたのを修正しました。
- 未定義エラーを含む多くのマイナーなバグが修正されました。
レガシーなコードを整理
- 古いコードを整理ました。投稿するまえにJPEG/PNGを切り替える機能やペイント画面から新しい設定でお絵かきする機能は削除されました。
- 同梱テンプレートには存在しないものの、機能としては残っているのは文字色の選択機能だけになりました。
上書きアップデートするディレクトリ
BladeOne/
klecks/
テンプレートBASIC
templates/basic/
テンプレートMONO
templates/mono/
上書きアップデートするファイル
potiboard.php
save.php
追加するファイル
saveklecks.php
[2022/02/10] v5.05.0
バグ修正
テンプレートBASIC
- テンプレートBASICで管理者モードの時に「投稿フォーム」という文字列が「投稿フォーム」以外の時にも表示されていたバグを修正しました。
- img.logとtree.logの内容が一致しない時にレス画面に前後の画像を表示する機能で未定義エラーが発生する問題を修正しました。
しかし、img.logとtree.logの内容が一致しないという時点でそのログファイルは壊れています。
ログファイルが壊れるようなテストを行った過程でみつけた問題です。通常の使用ではログファイルは壊れないと思います。
機能追加
拒絶するURL
拒絶する文字列で指定された文字列がURLに存在する時は拒絶するようになりました。
また、拒絶する文字列とは別に使用できないURLの設定項目も追加しました。
//拒絶するurl
$badurl = array("example.com","www.example.com");
これまでは、URLのスパムワードチェックは何も行われていませんでした。
改善
日記モード
日記モードに設定しても、ペイントボタン下に表示される説明文が表示されたままになっていたのを改善しました。
しかし、追加の説明文 $addinfo
は表示する必要があるため、$addinfo
が存在するときは表示するように工夫しました。
古いスレッドでは続きを描くのリンクを表示しない。続きを描くを許可しない。
指定日数を超えた記事の編集をロックするだけでなく、続きを描く(画像の編集)もロックするようにしました。
これらの設定項目を作ったのはパスワードが第三者によって侵害されて記事が改変されるのを防ぐためです。
記事の編集はロックされますがユーザーによる削除はできます。
また管理者は指定日数を過ぎていてもテキストの編集ができます。
しかし、一定の指定日数でロックがかかると困る方もいらっしゃると思います。
define('ELAPSED_DAYS','365');
365
で1年以上経過したスレッドはロックされますが、
define('ELAPSED_DAYS','0');
0
に設定するとロックされません。
- 描いている最中に指定日数を過ぎてしまった時は新規投稿になります。
また描いている最中にスレッドが削除されていた時も新規投稿になるようにしました。
変更があったファイル
-
potiboard.php
-
config.php
新しい設定項目が必要ではない場合はすでに設定ずみの5.0系統のconfig.phpをそのまま使ってください。
テンプレートBASIC
日記モード時の表示の改善と管理画面の表示のバグ修正を行いました。
テンプレートMONO
日記モード時の表示の改善を行いました。
ダウンロード
下記ソースコードリンクからダウンロードできます。