お仕事: 2009年6月アーカイブ

mterror.jpg

いやあ、なんか、MovableType も、熱烈な信者がいそうなので、批判的なことを口にするのは、僕のような気弱なブロガーはすげえ気を遣うんですが(大嘘)、MovableType・・・駄目駄目じゃねえ。

ま、ブログツール・・・というか、MT4 は既に CMS の領域に入ってるけど、そういう機能はよく作り込まれているソフトだと思うよ。Perl ベースというのも信頼出来るし。

しかし、このエラーメッセージの出し方はいかんでしょう。

Can't call method "name" on an undefined value

・・・って・・・途中で切れてるじゃん。

一番大切な、どのモジュールのどこでエラーが発生したかという情報が出てませんけど?

ログの方に全文出てんのかな・・・と思ったけど、ログにも一切出てないし。

あのお、本当に MovableType ユーザの皆さんは、こういう部分に何の不満も感じられないのでありましょうか?盲信者ばっかり?

それとも、これは MovableType へメッセージを渡してる側(プラグインモジュールとか)が悪いの?

何はともあれ、突然プラグインの設定画面に行けなくなったんだけど、これじゃエラー原因が全然わからんつうの!キー!

某会員管理システム(うちで作ったものではない)の話。

金融機関からのデータとの連係を始めたところ、更新画面でカナ氏名やカナ住所がエラーチェックに引っかかってしまってデータの更新が出来ないとのこと。

どうも、金融機関のデータというのが、ホストマシン上の半角カナデータを単純に全角に変換しただけで、例えば「ダ」が「タ」+「゛」、「ポ」が「ホ」+「゜」で送られてきている。で、この「゛」や「゜」が「全角カタカナではない」と判断されてエラーになっているようだ。

ソースを見てみると、

if ($kana_name !~ /^(([\xA3][\xB0-\xB9])|([\xA5][\xA1-\xF6])|([\xA3][\xC1-\xDA])|([\xA3][\xE1-\xFA])|([\xA1][\xA1])|([\xA1][\xA6])|([\xA1][\xBC])|([\xA1][\xDD]))*$/) {
 &error_proc('全角カナ以外の文字有り'); # エラー処理へ
}

ってなってる。

EUC コードで、

[\xA3][\xB0-\xB9] 1~9
[\xA5][\xA1-\xF6] ァアィイ~ヵヶ
[\xA3][\xC1-\xDA] A~Z
[\xA3][\xE1-\xFA] a~z
[\xA1][\xA1] <全角スペース>
[\xA1][\xA6] ・(中点)
[\xA1][\xBC] ー(長音符号(音びき符号))
[\xA1][\xDD] -(マイナス(ハイフン))

なので、これに、

[\xA1][\xAB-\xAC] ゛(濁音)、゜(半濁音)

を追加する必要があるね。

if ($kana_name !~ /^(([\xA3][\xB0-\xB9])|([\xA5][\xA1-\xF6])|([\xA3][\xC1-\xDA])|([\xA3][\xE1-\xFA])|([\xA1][\xA1])|([\xA1][\xA6])|([\xA1][\xBC])|([\xA1][\xDD])|([\xA1][\xAB-\xAC]))*$/) {
 &error_proc('全角カナ以外の文字有り'); # エラー処理へ
}

にすればOKだ。

まあ、会員情報をカナで検索することを考えると、登録時に「タ゛」は「ダ」に、「ホ゜」は「ポ」に変換してしまった方がきれいだと思うが・・・

このアーカイブについて

このページには、2009年6月以降に書かれたブログ記事のうちお仕事カテゴリに属しているものが含まれています。

前のアーカイブはお仕事: 2009年5月です。

次のアーカイブはお仕事: 2009年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら