[Tep-j-develop] Re: 半角英数字が必要な入力フィールドの処理

Back to archive index

Mineaki Gotoh gij****@peak*****
2002年 12月 13日 (金) 14:05:10 JST


西村さん、こんにちは。後藤です。

西村さんみたいに積極的にご自身で試していただける方だと、レスをつける
私としても非常にやりがいがあります。


> 》という関数の、3番目の引数に、'style="ime-mode:disabled"' を与えます。
> 詳細なわかりやすい解説、ありがとうございます。さっそく試してみました。
> IMEが自動的に無効になると、スムースに入力ができて、とても使いやすくなり
> ました。初心者が登録を迷わないようにするという意味では、この方法は非常に
> 有効ですね。

そうですね。最初から半角でしか入力できないのですから、迷いようがない
と思います。


> なお、Netscape6.1とOpera6でもやってみましたが、両ブラウザは上記CSS非対応
> のようでした。

確認ありがとうございます。私もOpera6で試してみましたが、確かにこの
CSSは無視されているようでした。

日本語のフォーム入力において、IMEコントロールって意外に重要な要素だと
思うだけに、ちょっと残念ですね。


> 》もちろん、バイト数の制限はあるので、最初から、各カラムのサイズを大き
> 》くしておけば、データを落とすことはなくなると思います。(郵便番号が全
> 》角で入力されていても、7桁すべてが読めれば、それを管理者が半角に修正
> 》することは簡単ですので)
> これは、例えば、郵便番号を全角入力してもデータが切れないようにするには
> 
> /catalog/address_book_process.php(name="postcode")
> /admin/customers.php(entry_postcode)
> の、maxlength="8"を"16"に書き換え、
> 
> SQLサーバーの以下の値の長さを16にするということでよろしいのでしょうか?
> 
> entry_postcode varchar(10) →(16)
> customers_postcode varchar(10) →(16)
> delivery_postcode varchar(10) →(16)
> 
> いまのところ、全角で入力してもデータが切れることは無く、問題なく動いてい
> るようですが、間違いがありましたら、ご指摘いただけたらありがたいです。

恥ずかしながら、input='text' における maxlength という属性を、今はじ
めて知りました。(おかげさまで勉強になりました)

ただ、IE5およびOpera6で試した限りにおいては、maxlength は、全角でも半
角でも1字という解釈なので、ここが問題になることはないでしょう。

そんなわけで、修正はMySQL側だけで済むと思います。(ソースをいろいろい
じると、後が大変ですし)


少なくとも、現時点では、西村さんがご指摘なされているように各postcode
は10キャラクターしか用意してないので、全角文字で入力されると、お尻が
切れます。(実際に切れました)

〒100−0000

といった形式で入力されてしまうことも考えると16キャラクターではちょっ
と足りず、20キャラクターくらいを用意しておけば良いと思います。(とい
うか、varchar型については、あえてデータを打ち切るという目的さえなけれ
ば、無条件で255キャラクター用意しても良いような気もするのですが)

運営しているショップだと、すでにデータが存在しているでしょうから、
mysqlコマンドラインから入って、

alter table address_book modify entry_postcode varchar(20) NOT NULL default '';
alter table orders modify customers_postcode varchar(20) NOT NULL default '';
alter table orders modify delivery_postcode varchar(20) NOT NULL default '';

とやるのがベストでしょうか。

mysqlコマンドラインが使えないのであれば、一度、バックアップという形で
データをダンプして、ダンプしたファイルの該当部分を書き換え、リストア
するしかないでしょう。この場合、お客さんが来ないタイミングを見図る必
要があります。

-- 
株式会社PEAK  ネットワーク技術担当 後藤 <gij****@peak*****>




Tep-j-develop メーリングリストの案内
Back to archive index