連日のアップデートで申し訳ないですが、投稿エラー時の処理方法を改善したNP_Paint v1.3βをリリースします。このバージョンから、EUC版*1も平行リリースしたいと思います。
ダウンロードはこちら [NP_Paint v1.3 beta (UTF-8)][97clicks]
ダウンロードはこちら [NP_Paint v1.3 beta (EUC)][77clicks]
機能を追加したNP_Paint v1.4をリリースしています。
バージョンアップは、同梱されているファイルを全て上書きするだけです。僕の環境ではどちらも動作確認できています。これでバグがとれるといいんですが。
† 変更点
[Fixed] 投稿エラー時に500 Internal Server Errorを返すようにした
これまで、投稿エラー時にアプレットへエラー通知を行う方法として、正常なステータスコード(200)を返しながら、出力を"error\n msg..."とする方法*2を使っていたのですが、この処理が上手く行われていない場合が見受けられるため、エラーがあった場合にはステータスコードを500を使うように処理を変更しました。
ドキュメントには
PaintBBSは一行目がerrorと小文字でぴったり一致する時のみHTTP的には正常であってもエラーと認識します。
こう記載されているので、おそらく1行目がこれ以外になっているものと考えられます。Nucleusの場合には他のプラグインの行末に余計な改行があったりすると、それが出力されてしまったりしていることがありますからね。僕は昔、その余計な改行のせいでRSSがどうしてもValidにならずにしばらく悩んでいた時期がありました。
[Fixed] エラーチェックを厳密にした
ファイルが書き込みできるかどうかのチェックとか、PHPのバージョンチェックがかなりいい加減だったので、チェックを少し厳しくしてみました。エラーがあった場合にはログに出力が行われるので、少しはバグの解明が進むかもしれません。
今回は特にエラーは出ず、投稿時にきちんと本文部分へ
タグが挿入されるようになりました!
が、私の環境ではjpg/pngファイルの保存が
されませんでした。
http://www.mercuriuslab.com...
pchファイルは保存出来たのですが、mediaフォルダ内に画像が保存されず、埋め込みタグも
<%image(1/|300|300|)%>
こんな感じになっています。
また、二回目に画像を投稿しようとしたところ、
「postimgErr:同じ名前のファイルが既に存在します アップロードする前に名前を変更してください」
とのエラーが発生しました。
と思ったら、もしかするとうちの環境が
基準満たしていない気が…。
管理履歴を確認してみたところ、
「NP_PaintにはPHP 4.3.2以降が必要です ver:4.3.11」
とのログが…。失礼しました…。
ごめんなさい。判定条件のバグのようです。
# "4.3.2" > "4.3.11"なので条件は満たしていると思います。
条件判定を削ったバージョンにファイルをアップデートしましたので、
ファイルを上書きしてもらって、もう一度お試しいただけますか?
v1.2β→v1.3βにアップしてみましたが、500は出ませんでした。相変わらず投稿画面がでます。管理操作履歴のエラーメッセージも前回と変わりませんでした。
画像が保存すらされないことは、XREAとNucleusは相性がいまいちなこともあるので、他にXREAを利用している方の報告も聞いてみたいところです…。
実はすごく初歩的な事だと思うので、聞くのもはばかられるんですが、、、
後から追加したDynPaletteとPalette-Selfyは表示されるんですが、肝心のお絵描きアプレットがnot foundになってしまいます。
OSX 10.39+Safari(1.3)とIE(5.23)で試してみましたが、IEで以下のような表示がでます。
java.lang.ClassNotFoundException:c.ShiPainter.class
パーミッションは、paintとappletとresフォルダを755にして、jsとかjarはバイナリ転送して666にしてもダメでした。(そもそもこれが間違いなのか?)
ソースの呼び出しアドレスとインスト位置は一致してますし、管理操作履歴には何も表示されないので、途方に暮れてます。。。
Terasawaさん
レポートどうもです。エラーがでるのはIEもSafariも同様ですか?
できたらAppletがNot foundになるページのソースを下記のフォームから送っていただけますでしょうか。
http://blog.cles.jp/member/1
Terasawaさん
私が調べた限り、結論から言えばこれはTerasawaさんの使っているサーバ業者の事情によるもののようです。
お絵かきアプレットは起動するときにClassが入ったファイルを読み込むのですが、そのときに次のようなUser-Agent(ブラウザを識別するためのヘッダ)を送出するのですが、該当のサーバはこのようなヘッダを持つリクエストを拒否する設定になっているようです。
User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.4.2
これが解除されない限り、残念ながらNP_Paintに限らずお絵かきアプレット系のアプリケーションを設置することは不可能であると思います。ということで、以上の結果を添えて、ユーザーサポートに相談してみてはいかがでしょうか。
###以下、余談
ココからは僕の推測になりますが、これはサーバをわざとそのように設定しないと発生しない事象ですから、業者側にこのようなUser-Agentを拒否しなければならない何らかの理由(脅威)が存在しているのだと思います。そうであるとするならば、サポートの対応はあまり期待できないかもしれません。
sakagutiさん
XREAって、Nucleusいれるためはファイルを何かいじったりしないとダメなんでしたっけ?Nucleusの標準パッケージからいじってる部分とかあれば教えてもらえるとうれしいです。
http://nucleus.datoka.jp/in... の、CGIパスをmedia.phpに入れ、.htaccessを設置する方法でMEDIAアップロードを動かしています。
手持ちのXREAの他のアカウントにNucleusを入れてNP_Paint v1.3βをインストールしたところ、pngもpchも保存され、<%image%>も本文に追加され、正常に投稿することができました(EUC版)。二枚ほど投稿してみましたが、エラーはでませんでした。
メインのサイトの方はいまだ解決していませんが、運営してるNucleus側の問題だったようで、hsurさんにはとても申し訳なく思います。どうもありがとうございました。
すいません、Nucleus側の問題だと思っていたのですが、新規インストールした投稿に成功したNucleusには、まだセーフモード対策を施していませんでした。
メインのサイトはセーフモード対策を取らないと普通のMEDIAアップロードができないので、やっぱり鯖の問題かもしれません。
あと、書き忘れましたがブラウザにはIE6を使用しております。
sakagutiさん
情報ありがとうございます。
おそらく、sakagutiさんがやろうとしているmedia.phpのセーフモード対策をするとファイルがアップロードできなくなるのではないかと思います。
### ここからは僕の推測
NP_Paintはファイルを保存するときに改造前のmedia.phpのような動作をするようになっています。なので、media.phpに改造を加えない状態で動作可能な環境になっていないとNP_Paintを動かすのは難しいということです。
両方を共存させるには、だとかさんで紹介されている「方法2」にするしかないかもしれません。
遅くなりましたが、方法2のフォルダを作り直す方法で上手く行きました。こちら側の事情で長々とお付き合いいただいて申し訳ありませんでした。これでようやくv1.4にアップできます。ありがとうございました。
sakagutiさん
よかったです。最後まで動作確認に付き合っていただいてありがとうございました。こちらの配慮不足もあり、いろいろご迷惑おかけしました。
セーフモードの問題についてはNP_Moblogも含めて対応を考えていきたいと思っています。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。