かむりさんにNP_Paintがスネていると教えていただいた*1ので、素直になるように修正をしてみました(笑)
ダウンロードはこちら [NP_Paint v1.14 (UTF-8&EUC対応)][209clicks]
セキュリティfix版のNP_Paint v1.15をリリースしています。
旧バージョンからのアップグレードの際には、管理画面から旧バージョンをアンインストールし、新バージョンをインストールする必要があります。そうしないと画像が投稿できません。
動作確認はNucleus 3.23(UTF-8)、PHP 4.4.4環境で行っています。
動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。
† 事情説明という名の作者の言い訳
NP_Paintで画像投稿時に「postimg Err: ログインが必要です」というエラーが出るという話はほかの方からもよくいただいていたんですが、実はこの動作はNP_Paintの不具合というよりも、Nucleusのコアのログイン実装を流用していることによって起きる仕様でした。
ちょっと話がややこしくなりますが、Nucleusでは1人のユーザーは1つのブラウザからしかログインできないようになっています。たとえば、IEでNucleusにログインした後に、Firefoxで同じページを開いてログインを行うと、IEの方はログアウトされた状態になることでこの挙動は確認できます。これまでのNP_Paintは認証を流用していたためこの挙動に縛られていました。そのため、IEでお絵かき画面を開いてから、Firefoxの方からログインを行うと「postimg Err: ログインが必要です」というエラーが表示されます。
しかしながら、僕は「お絵かきをする多くの方がアプレットの挙動、安定度などを考慮して複数のブラウザを使い分けている」という現状があることについて自覚しておらず、このような状況が頻発しているとは夢にも思いませんでした。さらに悪いことに「postimg Err: ログインが必要です」が発生した場合に対する救済措置を用意していませんでした。
このため、プログラムの見直しを行い、認証方法を変更すると共に、簡単ではありますが救済する方法を実装してみました。
† [Changed] 画像投稿時の認証方法を変更
これまでは画像投稿時の認証についてはNucleusの標準の機構を使っていましたが、いろいろと不具合があるようなので独自の認証方法を実装しました。
† [Added] 投稿エラーを回避するための機能を追加
上記の対応で画像が投稿できないという状況はおおむね回避できると思うのですが、それでもpostimg Err: チケットが有効ではありませんと出る場合対応するための機能をつけてみました。投稿ページの下部に追加された「チケットを更新する」というボタンになります。うまく投稿できない際には試してみてください。
必要に迫られて付けたというよりも、どちらかというと個人的にAjaxの練習がしたかっただけです。
† [Changed] 投稿画像に付くプレフィックスを日付にした
投稿画像に付与される文字列をuniqid()から日付(YYYYmmddHHiiss形式)に変更しました。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。